What's changed
- Added interactive Google Vertex AI setup wizard accessible from the login screen when selecting "3rd-party platform", guiding you through GCP authentication, project and region configuration, credential verification, and model pinning
- Added
CLAUDE_CODE_PERFORCE_MODEenv var: when set, Edit/Write/NotebookEdit fail on read-only files with ap4 edithint instead of silently overwriting them - Added Monitor tool for streaming events from background scripts
- Added subprocess sandboxing with PID namespace isolation on Linux when
CLAUDE_CODE_SUBPROCESS_ENV_SCRUBis set, andCLAUDE_CODE_SCRIPT_CAPSenv var to limit per-session script invocations - Added
--exclude-dynamic-system-prompt-sectionsflag to print mode for improved cross-user prompt caching - Added
workspace.git_worktreeto the status line JSON input, set whenever the current directory is inside a linked git worktree - Added W3C
TRACEPARENTenv var to Bash tool subprocesses when OTEL tracing is enabled, so child-process spans correctly parent to Claude Code's trace tree - LSP: Claude Code now identifies itself to language servers via
clientInfoin the initialize request - Fixed a Bash tool permission bypass where a backslash-escaped flag could be auto-allowed as read-only and lead to arbitrary code execution
- Fixed compound Bash commands bypassing forced permission prompts for safety checks and explicit ask rules in auto and bypass-permissions modes
- Fixed read-only commands with env-var prefixes not prompting unless the var is known-safe (
LANG,TZ,NO_COLOR, etc.) - Fixed redirects to
/dev/tcp/...or/dev/udp/...not prompting instead of auto-allowing - Fixed stalled streaming responses timing out instead of falling back to non-streaming mode
- Fixed 429 retries burning all attempts in ~13s when the server returns a small
Retry-After— exponential backoff now applies as a minimum - Fixed MCP OAuth
oauth.authServerMetadataUrlconfig override not being honored on token refresh after restart, affecting ADFS and similar IdPs - Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active
- Fixed macOS text replacements deleting the trigger word instead of inserting the substitution
- Fixed
--dangerously-skip-permissionsbeing silently downgraded to accept-edits mode after approving a write to a protected path via Bash - Fixed managed-settings allow rules remaining active after an admin removed them, until process restart
- Fixed
permissions.additionalDirectorieschanges not applying mid-session — removed directories lose access immediately and added ones work without restart - Fixed removing a directory from
additionalDirectoriesrevoking access to the same directory passed via--add-dir - Fixed
Bash(cmd:*)andBash(git commit *)wildcard permission rules failing to match commands with extra spaces or tabs - Fixed
Bash(...)deny rules being downgraded to a prompt for piped commands that mixcdwith other segments - Fixed false Bash permission prompts for
cut -d /,paste -d /,column -s /,awk '{print $1}' file, and filenames containing% - Fixed permission rules with names matching JavaScript prototype properties (e.g.
toString) causingsettings.jsonto be silently ignored - Fixed agent team members not inheriting the leader's permission mode when using
--dangerously-skip-permissions - Fixed a crash in fullscreen mode when hovering over MCP tool results
- Fixed copying wrapped URLs in fullscreen mode inserting spaces at line breaks
- Fixed file-edit diffs disappearing from the UI on
--resumewhen the edited file was larger than 10KB - Fixed several
/resumepicker issues:--resume <name>opening uneditable, filter reload wiping search state, empty list swallowing arrow keys, cross-project staleness, and transient task-status text replacing conversation summaries - Fixed
/exportnot honoring absolute paths and~, and silently rewriting user-supplied extensions to.txt - Fixed
/effort maxbeing denied for unknown or future model IDs - Fixed slash command picker breaking when a plugin's frontmatter
nameis a YAML boolean keyword - Fixed rate-limit upsell text being hidden after message remounts
- Fixed MCP tools with
_meta["anthropic/maxResultSizeChars"]not bypassing the token-based persist layer - Fixed voice mode leaking dozens of space characters into the input when re-holding the push-to-talk key while the previous transcript is still processing
- Fixed
DISABLE_AUTOUPDATERnot fully suppressing the npm registry version check and symlink modification on npm-based installs - Fixed a memory leak where Remote Control permission handler entries were retained for the lifetime of the session
- Fixed background subagents that fail with an error not reporting partial progress to the parent agent
- Fixed prompt-type Stop/SubagentStop hooks failing on long sessions, and hook evaluator API errors showing "JSON validation failed" instead of the real message
- Fixed feedback survey rendering when dismissed
- Fixed Bash
grep -f FILE/rg -f FILEnot prompting when reading a pattern file outside the working directory - Fixed stale subagent worktree cleanup removing worktrees that contain untracked files
- Fixed
sandbox.network.allowMachLookupnot taking effect on macOS - Improved
/resumefilter hint labels and added project/worktree/branch names in the filter indicator - Improved footer indicators (Focus, notifications) to stay on the mode-indicator row instead of wrapping at narrow terminal widths
- Improved
/agentswith a tabbed layout: a Running tab shows live subagents, and the Library tab adds Run agent and View running instance actions - Improved
/reload-pluginsto pick up plugin-provided skills without requiring a restart - Improved Accept Edits mode to auto-approve filesystem commands prefixed with safe env vars or process wrappers
- Improved Vim mode:
j/kin NORMAL mode now navigate history and select the footer pill at the input boundary - Improved hook errors in the transcript to include the first line of stderr for self-diagnosis without
--debug - Improved OTEL tracing: interaction spans now correctly wrap full turns under concurrent SDK calls, and headless turns end spans per-turn
- Improved transcript entries to carry final token usage instead of streaming placeholders
- Updated the
/claude-apiskill to cover Managed Agents alongside Claude API - [VSCode] Fixed false-positive "requires git-bash" error on Windows when
CLAUDE_CODE_GIT_BASH_PATHis set or Git is installed at a default location - Fixed
CLAUDE_CODE_MAX_CONTEXT_TOKENSto honorDISABLE_COMPACTwhen it is set. - Dropped
/compacthints whenDISABLE_COMPACTis set.