Skip to main content

Claude Code v2.1.260: Fullscreen Diff Panel, Prompt-Cache Miss Causes, and a Bash Deny-Rule Revert

Claude Code v2.1.260 adds a fullscreen diff panel (/diff), likely causes for prompt-cache misses in /cost, and headless /advisor and /reload-plugins, and reverts the 2.1.259 Bash Read() deny-rule change.

Claude Code v2.1.260 is a large release with 66 changelog entries. It adds a diff panel for fullscreen mode, likely causes for prompt-cache misses, and headless versions of /reload-plugins and /advisor, and it reverts the 2.1.259 change that applied Read() deny rules to Bash arguments. Many of the fixes cover permission rules, Claude Fable 5.1 model selection and caching, /rewind, and Claude apps gateway deployments.

What’s New

Diff Panel in Fullscreen Mode

In fullscreen mode, a diff panel now opens beside the conversation and shows your uncommitted changes as Claude edits. Toggle it with /diff.

Likely Causes for Prompt-Cache Misses

/cost and the status line’s prompt_cache field now include a likely cause for prompt-cache misses, such as changed tool definitions or system prompt, or a session left idle past the TTL.

/reload-plugins and /advisor in Headless Sessions

/reload-plugins now works in headless sessions, so it appears in the Claude Code Desktop and SDK command lists. A text form of /advisor (/advisor, /advisor <model>, /advisor off) is also available for the desktop app, Remote Control, and other headless (-p/Agent SDK) sessions.

Bash Read() Deny-Rule Change Reverted

The 2.1.259 change that applied Read() deny rules to Bash arguments has been reverted. According to the changelog, it denied npm run build under a Read(./**/build/**) rule in every mode and made cd … && grep prompt even in auto mode.

Auto-Compact Near the 1M-Token Limit

For 1M-context models, Opus and Fable sessions now auto-compact shortly before the 1M-token limit, and recovery compaction on very large contexts no longer times out at 10 minutes.

Permission, Sandbox, and Admin Changes

  • Commands typed at the ! bash-mode prompt now run outside the sandbox even when strict sandbox mode (sandbox.allowUnsandboxedCommands: false) is on, like typing into your own terminal.
  • Permission rules with text after the closing parenthesis (e.g. Bash(ls) x), which never matched anything, are now reported as invalid settings instead of being silently ignored.
  • A managed CLAUDE.md (claudeMd) in server-managed settings no longer triggers the security approval dialog; hooks, shell-command, sandbox, and unsafe env settings still require approval.
  • Claude in Chrome now follows your organization’s Claude in Chrome admin setting; when an admin turns it off, --chrome, /chrome, and the browser tools are unavailable.

Fullscreen and Background Command Changes

  • ctrl+l / cmd+k in fullscreen mode now clear the transcript view like a terminal clear; scroll up to see earlier messages.
  • Background commands started by subagents no longer have a one-hour time limit; they now run until they exit or are stopped, matching the main session.
  • The self-hosted runner’s --kill-session-after-min now releases a session that is only waiting on its user (paused, resumable on the next message) instead of killing it and reporting a failure.

Claude Apps Gateway

  • New oidc.scope_on_refresh option for IdPs that return an id_token on refresh only when asked for openid again.
  • Support for newer Claude Desktop keys in desktop policy blocks, including userPluginMarketplacesEnabled and userPluginUploadsEnabled.
  • orgPluginSettings is now sent in the list form read by Claude Desktop 1.15200.0 and later; older desktops ignore it.

VS Code

  • The footer model pill now shows the selected effort level, a stale effort level after switching models is fixed, and the footer pills are back to their earlier compact size.
  • The session list’s status filter menu adds Open and Closed.

Fixes and Improvements

Permissions and sandbox

  • Edit/Write/Read permission rules whose path contains parentheses are no longer dropped as invalid or ignored by the Bash sandbox, which had left “read-only” folders writable.
  • One file permission rule with an uncompilable pattern (e.g. an unclosed [) no longer makes every file edit fail with Invalid regular expression; such a deny rule now guards the literal path it spells.
  • Bash permission checks no longer auto-approve zsh commands that hide a command substitution in a REPORTTIME, REPORTMEMORY, or DIRSTACKSIZE assignment; these now prompt for approval.
  • permissions.blockReadsOutsideWorkingDirectories on macOS no longer hides the user’s git config from sandboxed git or hides a worktree-isolated sub-agent’s own checkout.
  • Glob/Grep no longer probe the search path on disk before the permission check; a missing path is now reported after permission is decided, as Read does.

Claude Fable 5.1 and model switching

  • The /model picker now shows Fable 5.1 for organizations that can use it; before, it was only accepted when typed as /model claude-fable-5-1.
  • Prompt caching on Claude Fable 5.1 now covers the context attached after tool results, which had been re-sent as uncached input on every tool-call turn. Changing /effort mid-session on Fable 5.1 also no longer invalidates the prompt cache.
  • model: fable agents no longer ignore the [1m] tag on an ANTHROPIC_DEFAULT_FABLE_MODEL pin and silently run with a 200K context window.
  • Model switching no longer stays blocked for the rest of the session after a plugin hook load failure (each switch now re-checks, and the refusal names the cause) or when an organization-managed plugin’s marketplace cannot be loaded.

Credentials and managed settings

  • Bedrock model discovery, token counting, and AWS SSO/STS credential calls no longer fail with “unable to get local issuer certificate” when the corporate root CA is only in the OS certificate store.
  • Managed settings now load for claude.ai Enterprise/Team users who also have a leftover API key from an earlier /login, and /status now marks whichever of a signed-in claude.ai account and a configured API key is not in use.

Rewind and resume

  • /rewind and --rewind-files no longer report success when checkpoint backup files are missing and nothing was actually restored.
  • /rewind no longer leaves stale file-read tracking from the rewound-away turns, which had caused “File unchanged since last read” stubs and full-file re-injection after external edits.
  • -p --resume/--continue (as used by the desktop app) no longer fail on every retry once a session’s worktree directory loses its git metadata; they now fail once, then resume without the worktree.

Agents and sessions

  • A subagent that resumed another agent via SendMessage is now woken by that agent’s completion; the notification previously went to the main conversation instead.
  • Intermittent “task output swap refused” errors when many sessions share a project directory are fixed.

GitLab

  • Repository detection now works for GitLab projects in nested subgroups (e.g. gitlab.com/group/subgroup/project), and owner/repo#123 issue references in a GitLab repository now link to the gitlab.com issue instead of github.com.

Performance and limits

  • Idle CPU usage of non-interactive (-p / SDK) sessions is improved.
  • /ultrareview and claude ultrareview now wait up to 45 minutes (previously 30) for long-running cloud reviews.

v2.1.260 contains 66 changes in total; see the full changelog for the complete list.

How to Update

  1. Check your installed version: claude --version
  2. Update in place: claude update
  3. Permission rules with text after the closing parenthesis (e.g. Bash(ls) x) are now reported as invalid settings, so fix any such rules if you see new settings errors. Also note that commands typed at the ! bash-mode prompt now run outside the sandbox even with sandbox.allowUnsandboxedCommands: false.