v2.1.260
Claude CodeSummary
This release introduces a new diff panel for viewing uncommitted changes in fullscreen mode and adds several new commands and configurations for headless sessions and advanced IdP scenarios. Numerous bug fixes address permission issues, model handling, prompt caching, and session management, alongside improvements to structured output and resource utilization.
New Features
- Added a diff panel in fullscreen mode that displays uncommitted changes alongside Claude's edits, toggled with `/diff`.
- Added a likely cause for prompt-cache misses to `/cost` and the status line, including tool definitions, system prompt changes, or exceeding TTL.
- Added `/reload-plugins` to headless sessions for Claude Code Desktop and SDK command lists.
- Added a text form of `/advisor` (`/advisor`, `/advisor <model>`, `/advisor off`) for desktop, Remote Control, and headless sessions.
- Added `oidc.scope_on_refresh` to the Claude apps gateway for IdPs that return an id_token on refresh only when `openid` is requested again.
- Added Claude apps gateway support for newer Claude Desktop keys in `desktop` policy blocks, including `userPluginMarketplacesEnabled` and `userUploadsEnabled`.
- Improved structured output: Workflow `agent({schema})` now rejects unsatisfiable JSON Schemas upfront, and retry-cap errors include the last validation failure.
- Changed `ctrl+l` / `cmd+k` in fullscreen mode to clear the transcript view, similar to a terminal `clear`, allowing users to scroll up for earlier messages.
Bug Fixes
- Fixed `Edit`/`Write`/`Read` permission rules with parentheses in their paths from being dropped by the Bash sandbox, which previously left 'read-only' folders writable.
- Fixed a file permission rule with an uncompilable pattern (e.g., an unclosed `[`) that caused all file edits to fail with 'Invalid regular expression'; such rules now guard the literal path.
- Fixed Bash permission checks that auto-approved zsh commands hiding command substitutions in assignments like REPORTTIME, REPORTMEMORY, or DIRSTACKSIZE; these now prompt for approval.
- Fixed Bedrock model discovery, token counting, and AWS SSO/STS credential calls failing with 'unable to get local issuer certificate' when the corporate root CA is only in the OS certificate store.
- Fixed `permissions.blockReadsOutsideWorkingDirectories` on macOS from hiding the user's git config from sandboxed git and a worktree-isolated sub-agent's checkout.
- Fixed managed settings not loading for claude.ai Enterprise/Team users who also had a leftover API key from an earlier `/login`.
- Fixed `/status` incorrectly listing a signed-in claude.ai account and a configured API key as both active; the inactive credential is now marked.
- Fixed managed `skillOverrides` entries keyed on a bundled skill's alias (e.g., `checkup` for `/doctor`) not applying, and `Skill(name)` deny rules not covering nested skills listed as `<dir>:name`.
- Fixed `model: fable` agents ignoring the `[1m]` tag on an `ANTHROPIC_DEFAULT_FABLE_MODEL` pin, causing them to silently run with a 200K context window.
- Fixed the `/model` picker not showing Fable 5.1 for eligible organizations, which was only accepted when typed as `/model claude-fable-5-1`.
- Fixed prompt caching on Claude Fable 5.1 not covering context after tool results, leading to it being resent as uncached input on every tool-call turn.
- Fixed model switching remaining blocked for the session after a plugin hook load failure; switches now re-check and the refusal names the cause.
- Fixed model switching being blocked for the session when an organization-managed plugin's marketplace could not be loaded.
- Fixed SDK-provided MCP servers (e.g., Desktop connectors) sometimes missing on the first turn and only appearing on the next.
- Fixed Claude in Chrome tools failing with 'Not connected' mid-task in cloud-hosted claude.ai sessions when a connector was added or removed.
- Fixed flags, joined emoji, and accented letters splitting across wrapped lines, and stale text remaining on screen when a flag or joined emoji fell in the terminal's last two columns.
- Fixed Remote Control accepting an invalid model pick, which now results in an error instead of failing on the next message.
- Fixed `/rewind` and `--rewind-files` reporting success when checkpoint backup files were missing and no restoration occurred.
- Fixed `/rewind` leaving stale file-read tracking from rewound turns, causing 'File unchanged since last read' stubs and re-injection after external edits.
- Fixed `-p --resume`/`--continue` (used by the desktop app) failing on every retry once a session's worktree directory lost its git metadata; it now fails once and then resumes without the worktree.
- Fixed a subagent resuming another agent via SendMessage never being woken by that agent's completion, with notifications going to the main conversation instead.
- Fixed agent teams where an in-process teammate's transcript lost messages or went blank during long API retry waits due to retry notices evicting real messages.
- Fixed a session that moved to the background appearing twice in ListAgents (as a phantom 'interactive' twin) and receiving SendMessage deliveries in the viewer.
- Fixed intermittent 'task output swap refused' errors when many sessions share a project directory.
- Fixed Ctrl+Z in fullscreen leaving the shell on the alternate screen, drawn over the paused interface.
- Fixed Workflow tool subagents being restarted as stalled while a long context compaction was in progress.
- Fixed plugins from a URL marketplace failing to install with 'marketplace entry path does not stay inside the marketplace directory' when a host app stores it as a directory.
- Fixed an extra browser tab opening when an artifact is published in a session driven from claude.ai, the desktop app, or mobile (Remote Control).
- Fixed the Artifact tool's first call failing with an 'Invalid tool parameters' validation error in some Cowork sessions.
- Fixed IDE line selections being dropped when running a skill or slash command; the 'N lines selected' context now reaches Claude.
- Fixed repository detection for GitLab projects in nested subgroups (e.g., `gitlab.com/group/subgroup/project`).
- Fixed `owner/repo#123` issue references in rendered output linking to github.com when working in a GitLab repository; they now link to the gitlab.com issue.
- Glob/Grep: Fixed the search path being probed on disk before the permission check; missing paths are now reported after permission is decided, similar to Read.
- Reverted the 2.1.259 change applying `Read()` deny rules to Bash arguments, which incorrectly denied `npm run build` under a `Read(./**/build/**)` rule and caused `cd … && grep` to prompt even in auto mode.
Improvements
- Added a likely cause for prompt-cache misses (e.g. tool definitions or system prompt changed, idle past the TTL) to `/cost` and the status line's `prompt_cache` field.
- Improved deleting a background session whose worktree has unpushed commits: the message now names the branch and commit count, and deleting again discards the worktree.
- Improved the Claude apps gateway's refresh-failure log to name the step that failed.
- Improved idle CPU usage of non-interactive (`-p` / SDK) sessions.
- Improved the Claude apps gateway on Amazon Bedrock: input tokens for an aborted request are now counted with AWS's free CountTokens API (grant `bedrock:CountTokens`) instead of a one-token request.
- Improved the settings error for rules such as `Edit(C:\dir\(name)\**)`, where `\(` is read as an escaped parenthesis rather than a path separator, to suggest an unambiguous spelling.
- Improved auto-compact for 1M-context models: Opus and Fable sessions now compact shortly before the 1M-token limit, and recovery compaction on very large contexts no longer times out at 10 minutes.
- Improved `/ultrareview` and `claude ultrareview` to wait up to 45 minutes (previously 30) for long-running cloud reviews.
- Improved `/effort` on Claude Fable 5.1 so changing effort mid-session no longer invalidates the prompt cache.
- Updated the bundled `claude-api` skill so its Go, Java, and C# samples use current-generation model IDs, and clarified that cheaper worker or sub-agent models should be current-generation too.
- Improved the Claude apps gateway support for newer Claude Desktop keys in `desktop` policy blocks, including `userPluginMarketplacesEnabled` and `userPluginUploadsEnabled`.