Claude Code 2.1.257
104changes- Add Fable 5.1 with 1M context; gateway fable/best aliases still use Fable 5.
- Apply a shared model to every subagent.
- Add controls for reads outside the working directories.
- Fix dismissed Remote Control consent prompts being treated as consent.
New features
12Claude Fable 5.1
Fable 5.1 becomes the default Fable model with 1M context; gateway fable/best aliases still use Fable 5.
Force a consistent subagent model
Force every subagent to use the configured subagent model, or the main model, overriding spawn and definition choices.
▤ In the docsApproval for reads outside working directories
Auto mode asks once before reading outside working directories and offers an option to block those reads.
▤ In the docsContainment Escape checks in auto mode
Auto mode no longer auto-approves metadata-credential fetches, egress evasion or cross-tenant reach unless marked expected by the environment.
More changes (8) Fewer changes
Time format and time zone settings
Added "Time format" (timeFormat) and timeZone settings: 12-hour, 24-hour, 24-hour UTC, or a strftime pattern for the turn-end clock and transcript-view timestamps
▤ In the docsSession-only effort changes
Added s in /effort to change effort for the current session only, matching /model
Stale sandbox file warnings
Added a /doctor warning for stale sandbox mask files left by a killed session
Gateway model descriptions
Added support for a gateway-supplied description on discovered /model picker entries (CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY); entries without one still read "From gateway"
[VSCode] Account and session section headers
Added collapsible ACCOUNT & USAGE and SESSION MANAGER section headers to the session list panel, with the account email, the usage meter, and a View details link opening the usage dialog
[VSCode] Model picker in the footer
Added a model pill to the input footer that shows the current model and opens the model picker, with an Effort row and a "More models" page
[VSCode] Collapse ungrouped sessions
Added a collapse toggle to the Ungrouped section of the session list
[VSCode] Output style selection
Added output style selection to the command menu, including custom styles
Improvements
24Faster conversation rendering
Long conversations and growing replies render faster, and background-agent updates stop redrawing the whole screen.
Preserve the prompt cache when forking
Forked background sessions preserve the original prompt cache by receiving worktree context as a message.
Gateway Fable model aliases
Gateway fable and best aliases keep using Fable 5; select Fable 5.1 explicitly in /model.
More changes (21) Fewer changes
More responsive prompt input
Improved prompt input responsiveness by reducing per-keystroke rendering work
Clearer policy helper diagnostics
Improved policy helper diagnostics — refresh failures now show in /status, declining the managed-settings dialog prints why Claude Code exited, and helper timeouts are reported as timeouts
GitLab comments from code review
Post /code-review --comment findings to GitLab merge requests through glab mr note.
Notifications for queued approvals
Improved notifications: an MCP elicitation or permission ask queued under another dialog now sends its idle desktop notification at the same delay as a visible ask
Group hook completion notices
Improved verbose/transcript output: async hook completion notices that arrive together now appear on one line instead of one line per hook
Git push negotiation for runners
Improved claude self-hosted-runner --configure-git to also enable git push negotiation, so the first push of a new branch from a stale clone uploads only the new commits instead of the whole tree
SDK session liveness reporting
Improved liveness reporting to SDK hosts while a response is held open by gateway keep-alives, so long waits under a raised CLAUDE_STREAM_IDLE_TIMEOUT_MS are not mistaken for a hung session
Redact credentials in MCP logs
Improved MCP connection and OAuth debug/error logs so credentials carried in a server's URL or request headers are redacted
More emoji shortcode aliases
Improved emoji autocomplete to accept the remaining GitHub/Slack shortcode aliases (:satisfied:, :telephone:, :collision:, …)
Session-only effort override
Changed --effort to lift a new model's default-effort hold for that session only rather than permanently; an effort picked on claude.ai for a Remote Control session now applies during the hold
Refresh shadowed policy helpers
Changed a policyHelper in MDM or managed-settings.json shadowed at launch by cached server-managed settings to run (or exit) as soon as the fetch reports them removed, not at the next launch
Managed settings merge behavior
Changed managedSourcesBehavior: "merge" to take sandbox.credentials.awsPairs and sandbox.ripgrep whole from the highest managed source that sets them instead of combining the sources' values
Gateway discovery with reduced traffic
Changed gateway model discovery (CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1) to run even when CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set, since it only queries your gateway
Resume background sessions under their own ID
Changed claude --resume <session-id> --bg to continue that session under its own ID when nothing is running it, instead of silently starting a copy; a copy is now announced
New /btw history shortcuts
Changed /btw history browsing from ←/→ to Shift+←/Shift+→ (or [/]), stepping through your recent side questions and back to the live answer
Project-level bypassPermissions handling
Changed defaultMode: "bypassPermissions" in .claude/settings.json or .claude/settings.local.json to be ignored, like "auto"; set it in user or managed settings, or pass --permission-mode
Reject network directory paths
Changed --add-dir, /add-dir, and additionalDirectories to refuse network paths (UNC shares, /net/<host> automounts) with a message before touching them; on Windows use a mapped drive letter
Verify pinned gateway TLS certificates
Changed Claude apps gateway sign-in and token refresh requests to verify the gateway's pinned TLS certificate, as the managed settings fetch already does
Approval before reading others' artifacts
Changed Cowork and claude.ai cloud sessions: reading an artifact that isn't yours now always asks you first, even in auto mode
[VSCode] Searchable command dialogs
Changed the action menu to list slash commands in a filterable "Slash commands" dialog instead of inline; picking one runs it; the MCP servers dialog gained the same filter box
[VSCode] Archive and restore sessions
Changed "Delete session" to "Archive session": archived sessions move to a collapsible "Archived sessions" group at the bottom of the list with an Unarchive action
Bug fixes
67Declined Remote Control consent
Fixes dismissed Remote Control consent prompts being treated as consent and allowing the next connection without asking.
Ask rules for compound commands
Fixed a permissions.ask rule being skipped in auto mode when the matching command ran inside a compound command or subshell, letting it run without the confirmation prompt
Deny rules for redirected files
Fixed Bash Read()/Edit() deny rules not applying to < file redirects and reader commands like tac and egrep; a deny rule on any argument or redirect target now refuses the command
Approval checks for zsh conditionals
Fixed Bash permission checks auto-approving certain [[ ]] conditionals that zsh parses differently from bash; these commands now prompt for approval
Managed MCP reconnect lists
Fixed /mcp reconnect and enable still connecting a settings-file MCP server that a managed MCP allow/deny list or strictPluginOnlyCustomization loaded after startup should block
Hosts with trailing dots
Fixed sandbox network hosts written with a trailing dot (example.com.): a deniedDomains entry didn't block the host inside the sandbox, and "don't ask again" for such a host kept prompting
Preserve --disallowedTools
Fixed --disallowedTools and session deny rules being dropped after the first settings reload when allowManagedPermissionRulesOnly is enabled
Managed settings for Console sign-in
Fixed the keyless Console sign-in ("Sign in with your Console account") not applying your organization's server-managed settings, and /status not showing the Organization for that sign-in
More changes (59) Fewer changes
Load settings created after startup
Fixed settings in a .claude/ folder created after startup not being picked up until restart
Permission modes for dispatched sessions
Fixed sessions dispatched from an agent view opened with ← always starting in the original session's permission mode, overriding the target directory's defaultMode and the agent's permissionMode
Custom keybindings in claude agents
Fixed keybindings.json rebinds of Ctrl+G being ignored in claude agents; its Ctrl+S / Ctrl+T are now rebindable via the new Agents context
Background session startup
Fixed background sessions failing to start on macOS npm installs during a self-update, and on Windows when a stale daemon lock file pointed at a reused process id
Keep streaming spinners active behind panels
Fixed the working spinner stopping while a response streams behind a slash-command panel
Duplicate details in state.json
Fixed a background session's state.json detail repeating its own dispatch prompt after a scheduled wake-up
Completed session ordering
Fixed claude agents keeping a background session you re-prompted buried in Completed after it finished again; Completed now orders by the latest finish
Background sessions in deleted directories
Fixed claude --bg from a directory that was just deleted reporting "backgrounded" and leaving a crashed session row; it now prints the reason and exits 1
Remote Control prompt cache
Fixed Remote Control connecting mid-session re-sending the Bash tool definition, causing a prompt-cache miss
Duplicate Authorization headers
Fixed a doubly-listed custom Authorization header overriding the configured credential on Bedrock, Mantle, Vertex, and WIF, and the Vertex setup wizard picking up a leftover Anthropic profile from ~/.config/anthropic
Unnecessary gateway headers
Fixed Claude apps gateway sending stray host Authorization or profile headers to Foundry, Vertex, and Bedrock, and Foundry Entra ID upstreams not starting when ANTHROPIC_FOUNDRY_API_KEY is set
Leftover API keys on Foundry
Fixed a leftover Anthropic API key or auth token being sent alongside your Foundry subscription key in API-key mode
Message roles in /schedule
Fixed /schedule routines whose prompt was saved without a message role and then ran with nothing to do
Pending approval indicators
Fixed claude agents not saying that a background session is waiting for you to approve a message from another session, or who sent it
Preserve stashed prompts
Fixed a prompt stashed with Ctrl+S inside an opened background session being lost when the session went idle or was stopped and then reopened
Managed OpenTelemetry settings
Fixed telemetry (OTEL) settings pushed through server-managed settings being ignored on warm starts, including desktop-app Code sessions
Duplicate teammate permission responses
Fixed a teammate permission request being answered twice when the leader's mailbox write was briefly locked
Duplicate slash command lines
Fixed a phantom duplicate slash-command row rendering below the in-flight turn while a command's auto-continued response streamed
Policy helper timer limits
Fixed policyHelper timeoutMs and refreshIntervalMs values above the timer maximum (2147483647) causing failures or re-runs every millisecond; they are now clamped
Token counter freezes
Fixed the token counter freezing or crawling after switching to another subagent's transcript, and made background subagents' and teammates' counters update live while a response streams
Remove stored MCP OAuth credentials
Fixed claude mcp remove leaving a remote server's stored OAuth credentials behind when strictPluginOnlyCustomization locks MCP to plugin-only servers
Remote Control model selection
Fixed Remote Control (claude remote-control) sessions started from the Claude app ignoring the selected model and running on the machine's default instead
Duplicate resume entries and --continue
Fixed --resume listing a backgrounded conversation twice and --continue reopening its stalled pre-background copy; --continue now also opens finished background sessions
Fullscreen Bash output
Fixed fullscreen mode not letting you click ! shell command output to expand it
Sessions left behind by old binaries
Fixed background sessions left running an older Claude Code binary piling up across auto-updates instead of being retired
JSON agent listings outside raw mode
Fixed claude agents --json briefly switching the terminal to raw mode and undoing another program's terminal settings on exit
Proactive output style busy loops
Fixed Proactive output style sessions busy-looping with filler messages and repeated log reads instead of idling while a background command or Monitor they started is still running
Resume subagents after interrupted streams
Fixed subagents stopping when a response was cut off mid-stream by a computer sleep, dropped connection, or server error; they now automatically continue instead of ending with an incomplete response
Left arrow in the /btw panel
Fixed ← doing nothing in the /btw panel inside a claude agents session: it now returns to the agents list (even mid-answer), and the panel comes back when you reopen the session
Advisor model prompt cache
Fixed sessions with an advisor model set missing the prompt cache on background requests (compaction, /recap, prompt suggestions) and re-sending the full conversation uncached each time
Monitor waits in headless sessions
Fixed claude -p exiting about 5 seconds after its final result while a Monitor the model armed was still running; it now waits for the watch to fire or time out
Reject symlinked plugin components
Fixed plugins being able to read files outside their own directory through a declared command, agent, skill, hooks or other component path that is a symlink; such paths are now refused with an error
Add directories inside the working directory
Fixed /add-dir rejecting a directory inside the current working directory; it now loads that directory's skills, commands, and agents like --add-dir does at startup
Notifications when subagents resume
Fixed the main agent not being told when you resume a subagent you had stopped from its transcript view
Pasting ANSI-colored text
Fixed a crash when pasting ANSI-colored text (e.g. a CI log) into dialogs like /feedback
Reject FIFO MCP configuration files
Fixed claude mcp add/remove hanging or exhausting memory when the project's .mcp.json is a FIFO or a device-file symlink; it now fails fast with an actionable message
Invalid stream-json input memory use
Fixed unbounded memory growth when non-JSONL data is piped into claude -p --input-format stream-json; it now fails fast with a clear error
Backgrounding during tool execution
Fixed backgrounding a turn (← or Ctrl+B) while a subagent or other tool was running occasionally making the background session treat that tool as rejected instead of re-running it
Resume large subagent transcripts
Fixed resuming or messaging a subagent whose transcript had grown past 5 MB (for example after reading many images) failing with "No transcript found"
Bash commands in isolated worktrees
Fixed worktree-isolated sessions refusing Bash loops, $VAR reads, "$(…)" and heredocs that never touch git as "too complex to verify that it stays inside the worktree"
Cache warnings after rewinding
Fixed /model and /effort showing a prompt-cache warning after rewinding a conversation back to empty
Prompt cache in image-heavy sessions
Fixed prompt-cache misses on every turn in long screenshot-heavy sessions once images exceeded the per-request size cap
Emoji widths in edit diffs
Fixed the Edit permission prompt's diff view rendering emoji and multi-code-point characters with incorrect widths
WebSocket MCP error details
Fixed WebSocket MCP server connection failures being logged as "[object ErrorEvent]" instead of the underlying error
Background startup during npm updates
Fixed background sessions failing to open with "Couldn't start the background service" while another Claude Code process was downloading an npm update; the start now waits for it
Stop detached background commands
Fixed background commands that detach from their shell (for example under timeout or setsid) surviving a task stop or Claude Code exit
Notify Claude when commands stop
Fixed Claude not being told when you stop a background command from the tasks panel or a connected client
Stop monitors with their subagents
Fixed stopping a background subagent leaving its monitors running
Sandboxed git in linked worktrees
Fixed sandboxed git commands in a linked worktree losing write access to the repository's common .git directory after cd into a subdirectory
Bedrock progress during hidden thinking
Fixed Bedrock and Bedrock Mantle requests going silent during long hidden-thinking phases on Opus 4.7 and later, which let idle timeouts cut the connection; the stream now carries progress events
Expired gateway session messages
Fixed launching Claude Code after a Claude apps gateway expired or revoked your session: it now says the session ended and offers /login instead of reporting a network error
Recover cloud git credentials
Fixed cloud sessions losing git/GitHub credentials for the rest of the session when the session's network proxy failed to start at launch; it now retries in the background and recovers
Clean up abandoned daemon folders
Fixed leftover cc-daemon-* folders in the system temp directory after an interrupted background daemon start; the cleanupPeriodDays retention sweep now removes them
Managed telemetry approval wording
Fixed the managed-settings approval prompt showing the generic warning instead of its telemetry wording when the settings also turn detailed tracing or raw API body logging off, or trace export on
Close agent-team terminal panes
Fixed agent-team teammates in tmux/iTerm2 panes sometimes staying open after acknowledging a shutdown request
[VSCode] Third-party provider features
Fixed third-party provider deployments (Bedrock, Vertex, and others) still showing claude.ai-only features (remote sessions, dictation, usage) and calling claude.ai with a leftover login
[VSCode] Restore the usage meter
Fixed the session list panel's usage meter staying blank after the panel loads; it now shows the last known usage immediately
[VSCode] Apply Remote Control to open sessions
Fixed the "Enable Remote Control for all sessions" toggle so turning it on or off applies to sessions that are already open, not only to new ones
[VSCode] Screen reader announcements
Fixed screen reader announcements: a control character before a fence or heading no longer drops visible lines from speech, and bold markers spanning a heading are no longer mis-paired