Auto mode classifier tab in permissions, with scaled timeout for long sessions
Managing the boundaries of auto mode is now much more straightforward. Running /permissions introduces a dedicated Auto mode tab for viewing and editing classifier rules. Furthermore, tool calls during very large sessions are no longer denied with a "temporarily unavailable" error; the safety-check deadline now scales dynamically with prompt size, giving extensive sessions ample time to complete validation.
FEATURE
Startup warnings for Bash wildcard rules, with faster snapshot replay
Security checks and execution latency for Bash commands are significantly improved. When defining Bash allow rules with a wildcard placed before the subcommand (such as Bash(git * main)), Claude Code now displays a startup warning because that pattern also inadvertently matches options inserted before the subcommand. Malformed commands that leave a trailing && or || operator dangling will now strictly require explicit user approval. Furthermore, executing the Bash tool in bash environments now replays snapshot functions without spawning an extra base64 subshell per function, speeding up command startup.
BUGFIX
Resilient background session startup, surviving sleep and npm reinstalls
Launching background sessions is now significantly more dependable across edge cases. Previously, if the starting directory was removed, the computer slept, or the host was slow to spawn processes, background sessions would fail to open after 45 seconds; these delays are now handled smoothly. Background service startup no longer crashes with an EACCES error when another Claude Code instance is reinstalling npm packages at that exact moment. On Windows and other platforms, opening a freshly spawned session in claude agents while its worker boots no longer halts it prematurely with an in-flight respawn error.
BUGFIX
Numbered duplicate background tasks, safe worktrees, and headless cleanup
Managing multiple background tasks in the terminal is cleaner and safer. When viewing claude agents, backgrounding a conversation that shares a name with an existing session no longer prints identical duplicate rows; instead, it automatically appends an incremental number (such as my-session (2)). The background retention cleanup sweep will no longer remove git worktrees (a Git feature for opening parallel working copies of a project) located under .claude/worktrees/ that you created manually, even if an older session points toward them. Additionally, on Windows and macOS, headless sessions cleanly purge stale records in ~/.claude/sessions left behind after unexpected terminations.
FEATURE
Protected finished subagents and capped idle check-ins for /goal
Subagent workflows are much more cooperative. Pressing the left arrow key or running /background during a dynamic workflow no longer silently restarts already-finished subagents; it asks for confirmation first and displays how many subagents would restart. When a subagent hits its maxTurns limit, it returns output marked as partial with a hint to resume via SendMessage, rather than masquerading as fully finished. For /goal tasks, idle sessions now start at most three check-ins on long-running background jobs, with your next message allowing three more.
BUGFIX
Explicit MCP tool interruption errors and real parameter types
Tool invocations and permission prompts over MCP (Model Context Protocol, an open standard connecting AI to external tools) are far more reliable. In headless or remote sessions, if an MCP tool call is interrupted by an incoming message, Claude now receives an explicit interrupted error instead of an empty successful output. Tool parameters with empty schemas ({}) receive arguments matching their real data types rather than raw JSON strings. Under --strict-mcp-config, Claude Code skips permission prompts for .mcp.json servers that will never load, preventing background sessions from hanging at startup. Interactive tools marked requiresUserInteraction also no longer show the non-functional "Yes, and don't ask again" choice.
BUGFIX
Smooth fullscreen resizing and navigation, with reduced transcript memory
Fullscreen and transcript view interactions are noticeably smoother. Resizing the terminal in fullscreen mode no longer renders a blank transcript or snaps to the bottom until the next keystroke. Scrolling through older messages and jumping to the bottom no longer stutters mid-transcript. Clicking the terminal window simply to restore window focus won't shift keyboard focus onto the UI control sitting under the cursor. Additionally, message rows in fullscreen and Ctrl+O views no longer hold copies of tool lookup tables, stopping memory growth on long sessions.
FEATURE
Completion timestamps per turn, with truncated long diff lines
Terminal output and status formatting are much more informative. The duration line at the end of each turn now appends the exact completion timestamp (such as ✻ Sautéed for 23s · done 6:05 PM). When a code diff contains a massive single line (like a base64 string), Claude Code truncates it with a marker to prevent terminal slowdowns. Markdown parsing no longer disables rendering across an entire response simply because the first 500 characters lacked formatting, and properly formats + and N) lists alongside setext headings. If a running shell command is aborted mid-run, the interface explicitly marks it as cut rather than printing a deceptive finished message.
BUGFIX
Special prompt comments preserved, with clean file pickers and null byte completion
Input parsing and path autocompletion handle edge cases gracefully. Prompts beginning with /-- (such as Lean doc comments) are cleanly forwarded to Claude rather than being rejected as nonexistent slash commands. The @ file picker automatically dismisses itself as soon as typed characters stop matching any filesystem path. Furthermore, path autocompletion no longer breaks when completion tokens or directory paths contain null bytes.
BUGFIX
Theme prompt border preservation on rename, with custom diff colors
Theme styling and keyboard customization are much more resilient. Running /rename to title a session now preserves your active theme prompt border color (including custom theme promptBorder definitions) instead of reverting to default cyan unless changed with /color. Custom theme diff highlights (diffAdded, diffRemoved, and their dimmed variants) correctly display in rendered diffs and within the /theme preview. Furthermore, binding an unrecognized action name in keybindings.json no longer deadens that key; Claude Code now skips the invalid action, keeps the default keybinding alive, and logs a descriptive warning when launched with --debug.
BUGFIX
Status line persistence across views, with accurate timezone heatmaps
Status metrics and usage charts now report accurate figures. Navigating between the main conversation and the agent task view no longer clears the status line's accumulated cost and session duration back to zero. Additionally, running /stats in timezones east of UTC no longer shifts daily activity heatmap cells by one day (which previously plotted Sunday counts under Monday), ensuring daily totals match your actual calendar schedule.
FEATURE
Instant /cd workspace updates, with preserved fork history and plan mode
Switching directories and continuing workflows is much smoother. When running /cd to navigate into another project directory, its project settings, hooks (small automated scripts triggered by events), approvable .mcp.json servers, skills, and agents take effect immediately without requiring --resume. Running /fork from an already-forked or backgrounded session now brings along the active conversation history instead of opening a blank screen. Furthermore, sessions that ended in plan mode properly remain in plan mode when resumed within the VS Code extension or via claude -p --continue without explicit permission mode flags.
BUGFIX
Simplified plugin updates, UTF-8 BOM compatibility, and clean cache dirs
Plugin management and caching are much more polished. Running claude plugin update now accepts an installed plugin's bare name without requiring fully-qualified namespace identifiers. Installing plugins whose plugin.json files contain UTF-8 byte-order marks (BOM) no longer fails. If known_marketplaces.json is corrupted or empty, claude plugin install prints a helpful error rather than hanging or silently exiting. Furthermore, plugin caching stops creating duplicate SHA-named directories for the same package, and OpenTelemetry events for plugins synced from claude.ai correctly log authentic marketplace metadata and admin-installed status.
Plugin skills and hooks (automated scripts triggered by specific events) now resolve naming and directory paths accurately. When a plugin skill includes the <plugin>: prefix in its frontmatter name, slash menus no longer render doubled prefixes like /plugin:plugin:skill. Running /reload-plugins correctly discovers skills organized under the skills/*/SKILL.md file pattern instead of mistakenly reporting zero skills. Furthermore, hook error messages print the fully-resolved local plugin path instead of displaying the unexpanded literal ${CLAUDE_PLUGIN_ROOT} template string.
BUGFIX
Compatibility with custom gateways, and strict telemetry key isolation
Using Anthropic-compatible third-party gateways and proxies is safer and more reliable. When a custom endpoint (ANTHROPIC_BASE_URL) streams a tool_use payload without an id, Claude Code no longer halts with a UI rendering error. Resuming sessions whose histories include proxy-generated tool blocks rejected by Anthropic APIs will no longer cause continuous 400 errors on each turn. Crucially, telemetry and metrics sent to Anthropic will no longer carry the API key designated for third-party gateways; credentials are sent strictly to their matching host.
FEATURE
Automatic JWT refresh on idle, with autonomous code reviews across platforms
Authentication handling and enterprise telemetry attribution have been updated. When using apiKeyHelper to fetch short-lived JWT tokens (authentication strings proving identity), sending a prompt after an idle period now refreshes expired cached tokens before transmission and quietly retries on 401 or 403 status codes. Usage metrics for workload identity federation sessions, startup helper scripts, and post-idle token refreshes are also accurately attributed to your organization. Furthermore, Claude can now autonomously trigger /code-review across Bedrock, Vertex AI, Foundry, the Claude apps gateway, and setups where non-essential traffic is disabled.
FEATURE
Parallel cloud session isolation, accurate task counts, and auto-resume on disconnect
Cloud workflows, Remote Control, and automated runners have received significant stability enhancements. Launching /ultrareview and cloud sessions concurrently from different worktrees in the same repository no longer incorporates uncommitted changes from another launch. Cloud background workflows like /autofix-pr reliably track task progress (e.g. 3/5) without skipping tasks. Remote Control sessions show auto-generated conversation titles across claude.ai and mobile apps right after the first prompt. Self-hosted runners retry upon receiving malformed responses (such as proxy error pages) instead of quitting. Furthermore, non-interactive sessions (-p, SDK, and cloud runs) automatically resume stream cutoffs caused by network loss or server stalls.
BUGFIX
Safe large file overwrites in Write tool, with deferred managed settings prompts
File operations, sandbox boundaries, and enterprise installation flows have been reinforced. Overwriting a large existing file with the Write tool no longer freezes the session or incorrectly claims out-of-memory errors after a successful write. The Notification hook (an automated script triggered by system events) now fires properly while the sandbox waits on user permission for external network requests. Command sandbox filesystem restrictions strictly honor the --setting-sources flag. Furthermore, Team and Enterprise installations via curl scripts no longer fail with "Raw mode is not supported" errors, and running claude install or claude update defers managed-settings consent prompts to your next interactive session instead of interrupting command execution.
Original changelog
Original changelogAuto mode classifier tab in permissions, with scaled timeout for long sessions
Added an Auto mode tab to `/permissions` for viewing and editing auto mode classifier rules
Fixed auto mode tool calls being denied as "temporarily unavailable" on very large sessions by scaling the safety-check deadline with prompt size
Original changelogStartup warnings for Bash wildcard rules, with faster snapshot replay
Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. `Bash(git * main)`), since they also match options inserted before the subcommand
Fixed Bash permission checks to always require approval for malformed commands with a dangling `&&` or `||` operator
Improved Bash tool latency on bash shells by replaying snapshot functions without a base64 subshell per function
Original changelogResilient background session startup, surviving sleep and npm reinstalls
Fixed background sessions failing to open after 45 seconds when Claude Code's starting directory had been deleted, the machine had slept, or the host is slow to start processes
Fixed background sessions failing to open with "Couldn't start the background service … EACCES" when another Claude Code process was re-installing the npm package at that moment
Fixed opening a just-started session in `claude agents` while its worker was still booting (common on Windows) stopping it with "was stopped while the respawn was in flight"
Original changelogNumbered duplicate background tasks, safe worktrees, and headless cleanup
Fixed `claude agents` listing a backgrounded named session twice; backgrounding the same conversation again now numbers the new row (e.g. `my-session (2)`)
Fixed the background retention sweep removing git worktrees under `.claude/worktrees/` that you created yourself when an old background-session record pointed at them
Windows/macOS: Fixed headless sessions not cleaning up stale entries in `~/.claude/sessions` left by sessions that exited uncleanly
Original changelogProtected finished subagents and capped idle check-ins for /goal
Fixed pressing ← or running `/background` during a dynamic workflow restarting its finished subagents; it now asks first and says how many subagents would restart
Improved subagent results: a subagent that stops at its `maxTurns` limit now returns its output marked as partial, with a hint to continue it via `SendMessage`, instead of appearing finished
`/goal`: Changed idle sessions to start at most three check-ins on long-running background work per goal; your next message allows three more
Original changelogExplicit MCP tool interruption errors and real parameter types
Fixed MCP tool calls interrupted by an incoming message in headless/remote sessions being reported to the model as "completed with no output" instead of an explicit interrupted error
Fixed MCP tool arguments being sent as JSON strings when the parameter's schema is empty (`{}`), instead of their real type
Fixed `--strict-mcp-config` sessions prompting to approve `.mcp.json` servers they would never load, which left background sessions waiting at startup
Fixed MCP tools marked `requiresUserInteraction` still offering "Yes, and don't ask again" in their permission prompt; the option wrote an allow rule the tool then ignored
Original changelogSmooth fullscreen resizing and navigation, with reduced transcript memory
Fixed fullscreen mode showing a blank transcript after resizing the terminal and jumping to the bottom until the next keypress
Fixed erratic fullscreen scrolling when positioned at an earlier message, including jump-to-bottom getting stuck mid-transcript
Fixed fullscreen mode moving keyboard focus onto the control under the pointer when you clicked the terminal window only to bring it back into focus
Fixed memory growing with session length in the fullscreen and Ctrl+O transcript views: each rendered message row no longer retains a full copy of the transcript-wide tool lookups
Original changelogCompletion timestamps per turn, with truncated long diff lines
Added the turn's completion time to the end-of-turn duration line, e.g. `✻ Sautéed for 23s · done 6:05 PM`
Fixed a severe transcript slowdown when a diff contained a very long single line (e.g. a base64 string); such lines now render truncated with a marker
Fixed markdown rendering being disabled for a whole message when its first 500 characters contained no markdown, and for `+`/`N)` lists and setext headings
Fixed a command interrupted mid-run showing as "Ran 1 shell command" with no sign it was cut
Original changelogSpecial prompt comments preserved, with clean file pickers and null byte completion
Fixed prompts beginning with `/--` (e.g. Lean doc comments) being rejected as an unknown slash command instead of being sent to Claude
Fixed the `@` file picker staying open after the typed text stopped matching a real path
Fixed path completion failing when the completion token or working directory contained a null byte
Original changelogTheme prompt border preservation on rename, with custom diff colors
Fixed `/rename` replacing the theme's prompt border color (including a custom theme's `promptBorder`) with the default cyan; the border now keeps your theme's color unless you pick one with `/color`
Fixed custom theme diff colors (`diffAdded`/`diffRemoved` and their dimmed variants) being ignored in diffs and the `/theme` preview
Fixed a `keybindings.json` binding with an unknown action name silently deadening that key; it is now skipped so the default binding keeps working, and a warning is logged under `--debug`
Original changelogStatus line persistence across views, with accurate timezone heatmaps
Fixed `/stats` activity heatmap showing each day's activity one cell off (Sunday's count under Monday) in timezones east of UTC
Fixed the status line's cost and duration resetting to zero after navigating to the agents view and back
Original changelogInstant /cd workspace updates, with preserved fork history and plan mode
Fixed `/fork` from an already-forked or backgrounded session starting the new session with an empty conversation
Fixed sessions that ended in plan mode resuming outside plan mode in the VS Code extension, and in `claude -p --continue`/`--resume` with a permission prompt tool, when no permission mode was set
Improved `/cd`: the new directory's project settings, hooks, `.mcp.json` servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on `--resume`
Original changelogSimplified plugin updates, UTF-8 BOM compatibility, and clean cache dirs
Fixed the plugin cache creating duplicate SHA-named directories for the same plugin
Fixed `claude plugin update` failing for an installed plugin given its bare name (only the fully-qualified name worked)
Fixed plugin installation failing when `plugin.json` was saved with a UTF-8 byte-order mark (BOM)
Fixed `claude plugin install <name>` exiting silently (or hanging in a terminal) instead of reporting an error when `~/.claude/plugins/known_marketplaces.json` is empty or corrupted
Changed OpenTelemetry plugin events for plugins synced from claude.ai: `plugin_id_hash` now reflects the plugin's real marketplace, and `enabled_via` is `admin-install` for admin-installed plugins
Original changelogClean plugin skill prefixes, nested skill reloading, and hook error paths
Fixed plugin skills whose frontmatter `name` already includes the `<plugin>:` prefix showing it doubled in the slash menu (e.g. `/plugin:plugin:skill`)
Fixed `/reload-plugins` reporting 0 skills for plugins that define skills under `skills/*/SKILL.md`
Fixed hook error messages showing a literal `${CLAUDE_PLUGIN_ROOT}` instead of the resolved plugin path
Original changelogCompatibility with custom gateways, and strict telemetry key isolation
Fixed the UI stopping with a render error on the first tool call when a third-party Anthropic-compatible endpoint (`ANTHROPIC_BASE_URL`) streams a `tool_use` block without an `id`
Fixed resumed sessions failing every turn with a 400 when the saved history contains tool blocks the Anthropic API does not accept (typically written by a third-party API proxy)
Fixed telemetry and metrics requests to Anthropic carrying the API key configured for a third-party gateway (`ANTHROPIC_BASE_URL`); a credential is now only sent to its own host
Original changelogAutomatic JWT refresh on idle, with autonomous code reviews across platforms
Fixed a visible API error on the first prompt after idle when `apiKeyHelper` returns short-lived JWTs: an expired cached token is now refreshed before sending, and 401/403 auth errors retry quietly
Improved attribution of usage telemetry to your organization for workload identity federation sessions, events sent while `apiKeyHelper` runs at startup, and after a login token expired while idle
Changed `/code-review` so Claude can also start it on its own on Bedrock, Vertex AI, and Foundry, through the Claude apps gateway, and when telemetry or non-essential traffic is disabled
Original changelogParallel cloud session isolation, accurate task counts, and auto-resume on disconnect
Fixed `/ultrareview` runs and cloud sessions launched at the same time from one repository (e.g. from several worktrees) sometimes starting with another launch's uncommitted changes
Fixed the task progress count (e.g. `3/5`) shown for background cloud sessions such as `/autofix-pr` occasionally missing a task
Fixed Remote Control sessions keeping their placeholder name in claude.ai and the Claude app until the second prompt; the auto-generated title now appears after the first prompt
Fixed the self-hosted runner ending its live sessions or exiting when a work-poll response is malformed (e.g. an intercepting proxy's HTML page); it now retries the poll
Improved non-interactive sessions (`-p`, SDK, cloud sessions) to automatically continue a response cut off mid-stream by a server error, connection loss, or stall instead of ending with an error
Original changelogSafe large file overwrites in Write tool, with deferred managed settings prompts
Fixed the Write tool reporting "Out of memory" or freezing for a long time after overwriting a very large existing file, even though the file had been written
Fixed the `Notification` hook not firing while the sandbox "Network request outside of sandbox" permission prompt is waiting
Fixed the command sandbox's filesystem configuration not respecting `--setting-sources`
Fixed `curl -fsSL https://claude.ai/install.sh | bash` failing with "Raw mode is not supported" for some Team/Enterprise users with server-managed settings
Changed `claude install` and `claude update` to defer a pending managed-settings consent prompt to the next interactive session instead of prompting mid-command