"Use auto mode during plan" saves first and reports a failed save#
Changing "Use auto mode during plan" now saves the setting before it takes effect, and shows an error if the save fails
Claude Code's bundled default model is now Opus 5.5 at medium effort, replacing Opus 5 at high effort. You can set CLAUDE_CODE_SKIP_PLUGIN_LOCAL_MCP_SERVERS to keep only the remote MCP servers that plugins bring. A program that runs claude mcp serve can pick which plugins load with CLAUDE_CODE_MCP_SERVE_ENABLED_PLUGINS. A new allowNestedUserNamespaces sandbox setting lets browsers or rootless podman run inside the sandbox on Linux. It is off by default because it weakens the sandbox. Plugin modules can now read and override the settings in effect through a new settings.read event.
Some work in this build is not switched on yet. In-app surveys for enterprise organizations stay off unless turned on remotely. Setting CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY skips them. Groundwork for showing skills as plugins has landed but cannot be reached. Leaving a worktree now checks whether to keep it, but that check always says no in this build. A launch option to turn off plan or auto mode is partly built, with no visible setting yet.
Creating a worktree no longer resets an existing branch with the same name. Claude Code now stops with an error instead. Your cached remote settings are no longer cleared when a proxy answers with a 204 or 404 reply. Very long timeouts are now capped instead of firing immediately. Removing one skill's hooks no longer removes matching hooks added by another skill. Claude Code no longer fetches skills from MCP servers when it connects to them.
Written by our agent from the shipped bundle, not by Anthropic.
New environment variables add low disk and memory warnings, limit plugin MCP servers, and pass startup and project details to child sessions
ExtensionsA new settings.read event lets plugin hooks see and override your effective settings, re-checked whenever settings or plugins change
ExtensionsA new carry_across_restarts option lets post-turn memory extraction save and restore its progress when its worker restarts
Sessions & agentsprompt.fill and suggest-prompt requests now carry answersPress, plugins get press_drawn and press_fill hook events, plus two new defaults
ExtensionsCLAUDE_CODE_ATTRIBUTION_PROJECT setting checked against claude.ai Project IDsClaude Code now recognises CLAUDE_CODE_ATTRIBUTION_PROJECT and drops a value that is not a valid claude.ai Project ID from saved jobs
Want the reasoning? Read walks the 43 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →Changing "Use auto mode during plan" now saves the setting before it takes effect, and shows an error if the save fails
Skill placeholders are now filled in before an extra block is added, and the design preview notes box now fits the window and shows up to 5 lines
Claude Code now waits for unfinished writes before it reads subagent transcripts, so it does not read a half-written one
If the server rejects a remote session's status update that carried other information too, Claude Code now resends the status part instead of dropping it
2 more of these are in What probably matters to you, on page 1.
Claude Code now stores state about skills converted into plugins, plus a new flag for keeping something across restarts
Claude Code's settings screens now receive a way to turn off a plan or auto mode choice at launch, but no visible option uses it yet
Unclear It is not clear what this launch setting will do or whether it can be reached from any visible option.
The server config for the remote-control entitlement gate adds hostTokens and refuseNotEntitled options and is checked more strictly
When tools added later in a session are withdrawn because they were denied, Claude Code marks this, behind a switch that is off by default
Unclear It is not clear what the marker changes in what the model is told.
A new remote switch name appears once in Claude Code with nothing visibly reading it, and it falls back to off
Unclear It is not known what this switch controls.
13 more of these are in What probably matters to you, on page 1.
In a new mode, Monitor and Bash guidance tells Claude that background events only arrive while it is still working on the turn
Unclear It is not clear what turns this mode on, so which sessions get the new wording is unknown.
Scheduled tasks, monitor notices and hook handbacks now carry the name of the plugin behind them
Usage-limit records now carry a reset type, a weekly give-back flag and an unavailable reason, with new messages for each case
Unclear It is not stated whether limit resets are available to all accounts or only some.
When a diskless option is set, Claude Code skips reading settings files, including project and local settings
Unclear It is not clear what marks a session as diskless, so whether any reader's sessions run this way is unknown.
Under a new condition, file checkpointing, settings-file and plugin sync readers, marketplace fetching and some local storage are turned off
Unclear It is not clear what puts a session into this mode, or whether an ordinary session can be in it.
Claude Code now tells Claude which remote machines stopped serving tools and that it should not keep checking or waiting for them
A low resource status note has been added behind a feature check, and notifications can now take screen-reader context
Unclear What the low resource status reports, and when the checks that switch these on pass, is not known.
A new instruction tells Claude that background commands are likely stopped minutes after a reply ends, so it should run important ones in the foreground
Unclear When this instruction is given to Claude is not known.
Instruction files such as CLAUDE.md are now flagged unverified when a hook adds them or their path was marked
Session tab details can now say the tabs are cloud tabs, and a remote session whose machine went away is now reported as signed off
Unclear It is not clear what turns the cloud-tabs option on.
The line in Claude Code's system prompt that mentions the EndConversation tool has changed
Unclear It is not clear what the line now says or how it affects the model.
Claude Code's stored device MCP state now supports deleting entries, and its errors say "state" instead of "consent"
Claude Code now throws away its saved copy of loaded settings when an internal hold token changes
Saved sign-ins now record whether the plan came from sign-in or the profile, and when it was verified, and refuse downgrades
One dialog in Claude Code now shows a different, simpler version when a certain condition is met
Unclear Which dialog this is, and what condition makes the alternate version appear, is not stated.
Claude Code now always passes a CLAUDE_CODE_ATTRIBUTION_PROJECT environment variable along, empty when it is not set
Unclear What reads CLAUDE_CODE_ATTRIBUTION_PROJECT once it is passed on, and so what setting it changes for a reader, is not known.
The cloud session client now strips __proto__ members from incoming messages and counts them; a matching reserved-tag filter does nothing yet
The disk space monitor now labels warnings as "low" or "drain" without overwriting another value, which looks like a bug fix
Sessions started by autofix for a pull request are now launched with tags, so they can be told apart from other sessions
In some sessions Claude Code now skips finding PowerShell and skips identity-token sign-in even when a token file is set
Unclear Which sessions meet the condition that switches these two things off is not known.
The reminder Claude gets about unavailable tools can now put denied tools first under their own line, and unverified memory is presented differently
The built-in explorer agent now declares its name, and two git trace variables join Claude Code's list
A helper that shut down telemetry is replaced by one that reports how many tokens have been spent so far
Claude Code re-checks permission before retrying a git fetch and now refuses if the repository's git config changed after its safety checks
In headless sessions, Claude Code now records a marker when start-of-turn processing is still running after its time limit
Updates announcing available agents now track which agent types come from a plugin itself and leave them out of the new-agent count
Claude Code checks once whether git is a launcher for another program and can run the real git directly
When a loop's keepalive sets up its next wake-up again, Claude Code now records which loop the wake-up was set up for
Claude Code's check for prompt cache changes now builds its fingerprint one piece at a time instead of all at once
Whether Claude Code sets up plugins by default now also checks for a Pro or Max plan and an empty remote settings response
Unclear Which plugins are affected, and what a Pro, Max, Team or Enterprise user now sees differently, is not shown.
A plugin whose hook was skipped because an earlier plugin sent the event on past it can now be told so
A plugin and hook check now treats its remote switch as on unless the server says otherwise, so the check fails by default
Unclear It is not clear what you see when this check fails.
A button press in a plugin's interface can now carry a press_id and return the redrawn interface in its reply
Saving the known-marketplaces list no longer always locks the file; depending on mode it skips the save or writes without a lock
Unclear It is not clear which mode changes how the marketplace list is saved, so it is unclear whose setups are affected.
When Claude Code refreshes its plugins, it now carries over its record of which plugins it has already asked about
Unclear It is not clear whether this stops Claude Code from asking about the same plugin again after a refresh.
Plugin sync now saves which plugin lists it has already asked about, and keeps plugins in the order they arrive
Unclear It is not clear whether this changes which plugin questions a user is shown.
When a plugin hook is passed over for a higher-priority one, the debug log now notes it once and later gives a count of repeats
The watcher for local plugin folders can now give plainer messages and logs each change it notices
When a remote connection starts, Claude Code's usage reporting now includes a field about a tool host running without git
Unclear It is not settled whether a tool host can actually be offered from a folder without git in this release, or only reported on.
An analytics event about usage limits or grants now includes a field saying what kind it is, with no change to how Claude Code behaves
Claude Code's usage statistics for each successful request now include how many streamed events the reply arrived in
Claude Code records several more kinds of activity in its usage reports, and skills can now be marked as coming from user settings
Usage data about answered permission prompts no longer has a separate value for a tool that was not loaded
When Claude reads a skill resource from an MCP server, Claude Code now checks the server listed that skill and errors if it did not
Unclear Whether this check is switched on for everyone and what a reader sees differently is not stated.
Claude Code can now block file uploads to a specific first-party MCP server and gives the reason uploads_off when it does
Unclear It is not clear which servers use this switch or whether any feature you can reach relies on it yet.
Tools from MCP servers are now looked up for a more specific name, with the generic mcp_tool label used only when none is found
Unclear It is not clear what the more specific name is, or whether it appears anywhere a user sees or only in usage reporting.
When an MCP tool is moved to the background automatically, the notice that it has finished can now be delayed instead of always being sent at once
Unclear Nothing shows what, if anything, supplies the delay, so it is unclear whether any user's notices are actually held back.
The step that saves the MCP skill cache file was replaced, and its old "meta.json write failed" error is gone
Unclear It is unclear whether the MCP skill cache still exists or how this replacement changes its behaviour.
Attaching to a remote session gained an option to end Claude Code when the attached screen closes, and a way to swap screens for another tab
Unclear Nothing shown here turns on endProcessOnExit or the tab handoff, so it is unclear whether a reader ever meets them.
Remote sessions now report their working folder once, follow it differently, and track workflow runs until you disconnect
When Claude Code replays a session transcript, it can now start from a saved starting position, which it discards after use
Claude Code now builds each request's fingerprint gradually and reuses each message's fingerprint, instead of re-encoding every message whole each time
A state update that is being resent is now kept apart from newer updates, and stops retrying once a newer worker status arrives
When you exit while attached to another session, Claude Code now handles the exit separately
Unclear What the separate exit path does differently for an attached session is not clear.
In one running mode Claude Code skips its shell staleness check, and background shell commands can now be held
Unclear It is not clear which mode skips the staleness check, or what holding a background shell command changes for the user.
When a Bash command fails, Claude may now get an extra note under some conditions, added to the error output it already received
Unclear What the extra note says and when it is added is not shown.
The tracker for programs that commands leave running in the background can now count them, not only record them
The check for a background shell left running at exit no longer requires a turn to be being recorded
Timing details for shell commands now include programs left running after the command, and served remote tool calls are counted
The code upload for cloud sessions now marks whether it is for /ultrareview or a normal session, and can be refused before it is built
The error shown when attached files upload too slowly is no longer fixed text, and its wording can now differ depending on where it appears
When a cloud launch is set to end on its startup result, Claude Code now drops all other output except control responses and startup failures
When a cloud session fails to start for a stated reason, Claude Code can now send a startup result and end it as start_refused
Unclear The condition that decides between start_refused and open_failed is not stated.
The debug log now says when a folder is offered to cloud sessions even though it is not the top folder of a git repository
Unclear It is not clear whether offering cloud sessions for such folders is switched on for everyone or only in some cases.
A response sent through remote control is now refused when the waiting dialog is a kind only the SDK host may answer
Unclear Which kind of dialog is reserved for the SDK host is not stated.
In some cases Remote Control no longer requires a full-scope login token or passes the organization check before it can be used
Unclear Which sessions qualify to skip these checks is not known.
Request-replay capture now fingerprints requests differently, and a new check links a host-supplied login token to a server-side identity
Remote Control register and reconnect requests now use an enroll-and-retry mode, while deregister and archive pass straight through
Unclear Whether these modes change what happens when a Remote Control connection fails to sign in is not stated.
A check that already reacted to accelerated retries and successful API responses now also reacts to API refusals
Unclear It is not clear what this check controls, so what a refusal now changes for a user is unknown.
When a request to count tokens fails, Claude Code now reports the failure before trying its fallback for gateways that do not support it
Artifact-related commands and skills, including the appifact REPL, are now unavailable when one extra condition is true
Unclear Which mode or condition switches these commands off is not stated.
Pressing Enter on an item in the Artifacts list now runs an extra step first, and the delete confirmation appears only under a certain condition
Unclear It is not clear what the new check before Enter does, or when the delete confirmation is shown.
Claude Code changed the text it sends when starting a design Artifact and can build a command that creates an Artifact from a named published type
Unclear It is not clear which commands use the new create-from-published-type request, or whether they are available to users.
If Claude Code's saved login has no organization ID, it now fetches the organization info instead of carrying on without it
When fetching your account profile, Claude Code now reads it from a nested profile field and records where it came from
On logout, Claude Code now clears its saved account data through one shared routine instead of a list written into the logout step
Claude Code can now record which tools were used before a conversation was compacted, and write that list into the summary
When Claude Code compacts a conversation in response to an error, it now passes an extra value worked out from the messages to the summary step
Unclear It is not clear what the extra value changes about the summary.
When it reads a saved session, Claude Code now records where the most recent compaction point is
In a session with no disk, Claude Code now refuses to resume a teammate, ignores the main agent's MCP servers and turns off gateway model discovery
Unclear It is not clear what makes a session count as having no disk, so a reader cannot tell when these limits apply to them.
In a diskless mode, Claude Code skips saving org consent, some file reads, and the official marketplace download
Unclear It is not clear what switches the diskless mode on.
In sessions that have no disk, Claude Code now skips saving credentials to disk
The hint telling Claude where attached files are now names each tool's own text field instead of always saying task_description
When checking added paths, Claude Code now separates paths that are not folders from special files such as sockets
When uploaded files expire before approval, the message names the tool to call again instead of always saying start_task
Claude Code now reads saved feature flags from its own copy when it has one, and falls back to the shared global config
Claude Code adds a new server-controlled switch and a new way to fetch switch values from the server
Claude Code adds two new switches the server can turn on or off, one of them on unless switched off remotely
Unclear What either switch controls is not stated.
New instructions tell Claude that in some sessions a monitor only works while Claude is busy, so it should wait directly or tell you what to check
Unclear Which sessions get these instructions is not known.
Claude can now be told that a monitor stopping after its reply is reported only with your next message
Unclear The condition that selects the new wording is not stated.
Published verbatim by Anthropic for v2.1.304. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.
Of these 76 bullets, 13 name something an entry on this page also names, 24 name something no entry here does, and 39 name nothing specific enough to line up either way. The pairings are made on names both sides wrote down, a flag or a setting or a slash command, so read one as probably the same thing rather than as a fact, and read the middle number as candidates rather than as a miss count.
decider: "person" to a mod's tool.check answer: only the permission dialog or a host's callback can approve the ask, and it is refused with the mod's reason where nobody can be asked
No entry names this e.isReadOnly to a mod's tool.check event, set when the tool call is read-only
No entry names this /auto-mode-setup: a guided setup that reads your project and recent sessions to teach auto mode about your environment, now also available on Bedrock, Vertex, Foundry, Claude apps gateway and telemetry-disabled sessions
No entry names this /claude-api managed-agents-secure, which compares a Managed Agents agent's settings with Anthropic's published security guide, without changing anything
Probably claude-api-managed-agents-secure-guard-on-ant-commands ANTHROPIC_API_KEY at startup or switching "Use custom API key" in /config
Probably policy-limits-re-fetch-after-an-api-refusal-anthropic-api-k, auto-compact-window-dialog-shows-an-extra-warning-line sandbox.filesystem.denyRead glob contains brackets that are not a character class, such as a [user-id] route folder
No entry names this rm -r of a mounted drive or a folder at its top level (/Volumes, /media, WSL's /mnt/c) not getting the safety prompt that rm -rf /Applications gets
Probably dangerous-rm-detection-for-mounted-drive-paths CLAUDE_CODE_TRANSCRIPT_LOCAL_GC dropping messages from the saved transcript when the disk filled up while the file was being trimmed
No entry names this --max-turns, Stop, or ended input by spawning subagents or re-running a finished one
No entry names this key were redrawn unchanged
Nothing to match on plugin-authoring skill stopping at the secret scan on machines with managed settings and on Team and Enterprise plans
No entry names this ../../…; they now show ~/… or the full path
No entry names this context_management: Extra inputs are not permitted errors behind LLM gateways; Claude Code now resends the request without that field
No entry names this /privacy-settings offering choices that may not apply to you after a network or server error
No entry names this claude --help text for --tools, --resume, --debug, --json-schema, --disable-slash-commands, --system-prompt-snapshot and claude update to match actual behavior
Probably usage-rate-limit-message-shows-hold-time, tools-help-text-default-now-means-the-default-set, json-schema-help-says-it-only-works-with-print, sandbox-runtime-probes-bwrap-style-binary-for-disable-user, misc-ui-custom-api-key-prompt-disable-slash-commands-tex, claude-update-description-mentions-package-manager-installs, await-claim-now-rejected-with-sdk-url, resume-help-text-now-says-session-id-or-name, system-prompt-snapshot-now-defaults-off-under-bare-outside claude --worktree removing the worktree and its branch without asking at exit when HEAD was detached or on another branch, which could lose commits
No entry names this /effort status, /effort ultracode and the prompt's effort indicator showing a guessed effort level when CLAUDE_CODE_EFFORT_LEVEL is auto or unset and no level is sent
No entry names this /loop wakeups scheduled at the 1-hour maximum firing just after the 1-hour prompt cache expired, so those wakeups no longer re-read the conversation uncached
Probably dynamic-loop-wakeups-carry-an-owner-and-plugin, schedulewakeup-and-loop-plugin-aware-scheduling-and-missed once hook also removing another skill's identical hook after it ran
Nothing to match on { and } landing the prompt on an inconsistent row, or off screen, instead of the transcript's first row
Nothing to match on CLAUDE_CODE_AUTO_COMPACT_WINDOW=200k silently setting a 100K window: the variable now accepts k and M suffixes like --autocompact, and warns when a value is out of range or ignored
Probably auto-compact-window-setting-shows-a-note-about-the-env-var, claude-code-auto-compact-window-parsing-with-km-shorthand-a /usage to say when a rate limit on usage data ends instead of "try again in a moment"
Probably usage-rate-limit-message-shows-hold-time, usage-credit-purchase-flow-gains-offers-discount-tiers-and, usage-credit-promo-offer-starry-waterfall-read alwaysLoad: true
No entry names this claude -p invalid-settings warning: a file that did not load lists only what stopped it, and long lists are capped per file
Probably claude-test-plugin-checks-agents-and-renders-a-pane settings.read hooks to receive each settings layer and rewrite the merged settings, so a managed mod can make an organization's setting a ceiling, including the cleanupPeriodDays the retention sweep uses
Probably remote-settings-unknowable-pause-for-retention-cleanup-disk, hooks-module-settingsread-merge-is-re-raised-when-plugins-o, new-settingsread-plugin-event-mods-runtime, queue-and-plugin-input-hold-refactor-with-a-plugin-settings /artifacts delete confirmation to show numbered choices: 1 or Enter keeps the artifact, 2 deletes it, and y, n and Esc still work
No entry names this ANTHROPIC_BASE_URL; a 400 or 422 from the gateway is retried without it
Probably tool-search-refusal-by-a-custom-anthropic-base-url-endpoint /reload-skills now sends only new or changed skills
No entry names this allowed-tools
No entry names this ant CLI on Claude Platform on AWS instead of falling back to the SDK or curl
Probably claude-api-managed-agents-secure-guard-on-ant-commands claude plugin validate that predicted where a mod's hooks would run
No entry names this /fast dialog title on Opus 5.5
Probably fast-mode-label-drops-research-preview-conditionally claudeCode.claudeProcessWrapper is set
No entry names this @Claude !fork typed outside a thread getting no visible reply; Claude now shows you a private note saying to run it from inside a thread
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
4 of 29 tool descriptions changed. 2 of 27 tool schemas changed. The appended system-reminder blocks moved: 14 lines added, 1 line removed.
Claude Code, interactive mode
One prompt change in this release could not be quoted from the build, so no entry on this page describes it.
622 documentation changes were recorded within 24 hours either side of this release, nearest first. The closest 12 are below. They're here because they happened near this release in time. That's not a claim that this release caused the edit, or that the page documents anything in it.
The 47 literal strings found in the bundle, with the number of entries that name each one. Picking one searches for it. A name is here because this build's code mentions it, which is not the same as it working or being finished.
What's wrong with this entry?