Small changes to the plugin disable dialog, masked input and image text checks#
The plugin disable dialog can replace its 'disable for me' option with a message, and some text is now rejected in Markdown images
Claude Code can now use the claude.ai sign-in passed over by the desktop app that started it. That lent sign-in works like CLAUDE_CODE_OAUTH_TOKEN, but plugins cannot use it. You can turn it off by setting CLAUDE_CODE_DISABLE_LAUNCHER_SIGN_IN in the environment or in managed settings. On native Windows, the new claude sandbox uninstall command removes the sandbox account, group, stored password and network filters. Programs using the SDK can now list cloud sessions, fetch one and read its transcript. In VS Code, Team and Enterprise members who hit their spend limit can get a "Request more" button that notifies their admins.
Several features are in the build but not switched on yet. A list of subagents that ran earlier in a session appears only when CLAUDE_CODE_SUBAGENT_HISTORY is set or it is switched on remotely. Resuming an interrupted remote turn with CLAUDE_CODE_RESUME_INTERRUPTED_TURN can now queue an urgent reminder for Claude when something was left unresolved. A check for whether the macOS sandbox allows local test servers exists, but nothing uses it yet. A few new remote switches are registered with no visible purpose so far.
Among the fixes, MCP tool calls are no longer retried after a session expires unless they surely did not run or are safe to repeat. Through an HTTPS proxy, Claude Code now checks the certificate of the site it is reaching, not the proxy. Sandbox setup without a terminal now gives up 150 seconds after Claude Code started instead of waiting forever. A resumed subagent that the main conversation is waiting on now shows its permission prompts. CLAUDE_CODE_ADOPT_UNDERIVABLE_PARKED_PERMISSION is removed and no longer has any effect.
Written by our agent from the shipped bundle, not by Anthropic.
[1m] handling was removedSessions & agentsSelf-hosted runners get a --diff-finds-nested-repository mode, --runner-declares, CLAUDE_CODE_IGNORE_PERSISTED_TRUST and options to update the binary they launch
New SDK requests list cloud sessions and fetch one session or its transcript, with clear refusals when they are not allowed
Sessions & agentsThe bundled Claude Test plugin adds an author agent with a claude_test_write tool, limits its explorer and adds new helper messages
With CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, a supplied OAuth token now wins over host management, and a new path accepts a sign-in token from the desktop app
Permissions & safetyAuto mode gains a held variant of compact mode, chosen when CLAUDE_CODE_AUTO_MODE_THREAD_ASK_HELD is set or a server flag is on
Want the reasoning? Read walks the 31 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →10 more of these are in What probably matters to you, on page 1.
The plugin disable dialog can replace its 'disable for me' option with a message, and some text is now rejected in Markdown images
Claude Code now asks for approval when it cannot fully check nested parts of a command for a dangerous rm
An "ask" permission decision now counts as asking a person when it comes from a plugin, not when it is marked as made by a person
When Claude Code cannot read stored MCP credentials, the error now says the login keychain may be locked
On Windows, /sandbox install waits up to 150 seconds for the sandbox user to sign in and reports logon problems
In some cases a 403 sign-in failure now shows a shortened explanation from the server instead of a fixed message
Unclear Which setups get the detailed message is not known, though it may be gateway sign-in.
If Claude Code is running on Node or Deno, workflow scripts are not started and a message says to use the native binary
BUN_OPTIONS value is now passed on to child processes from more places#Processes Claude Code starts now keep your BUN_OPTIONS value from the process, settings or system environment, still after --install=disable
Unclear Which value wins when BUN_OPTIONS is set in more than one of these places is not known.
The step that sets up the sandbox user on Windows now waits up to 5 minutes instead of 1 minute before giving up
When fetching managed settings fails but saved restrictions still apply, Claude Code now says so and tells you to run claude auth logout to clear them
A tool you approved for the session now reports the same as one that ran, and shell commands' variables and extglob are checked more strictly
On Windows, Claude Code now tells you when the sandbox can't start because the Secondary Logon service is disabled or missing
Disabling all plugins now leaves policy-enforced plugins alone and says when --settings keeps plugins on for this session
Bash and PowerShell results now say whether a command ran in the sandbox and list any sandbox violations
The sandbox's default list of excluded network addresses now also covers common private and carrier address ranges
Unclear Whether these addresses are now allowed to bypass the sandbox's network handling or are now blocked is not settled.
When an MCP server rejects Claude Code's automatic sign-in registration, Claude Code now suggests concrete next steps instead of a bare error
Unclear It is not clear whether this advice is shown to every user or only under certain conditions.
The reply to a host's request to change model now names the model the next turn will use, even when the change is refused
When Claude controls your computer, key combinations with too many keys or more than one non-modifier key are now refused
The sandbox setup check prints a note in a terminal, and when run without one it now gives up about 150 seconds after start
SDK sessions now wait for each MCP server separately before the first query, and wait briefly for a pending tool list refresh before later ones
When the command sandbox is turned off during a session, Claude now gets a message saying its earlier sandbox instructions no longer apply
Claude Code now raises an error when a file changes while it is being read, warning that the lines read may not be its current lines
When Claude asks to run a command outside the sandbox, a command that would have prompted you anyway now shows the "Run outside of the sandbox" prompt with its reason
-p in an untrusted folder now names settings that belong elsewhere#Under -p in an untrusted folder, Claude Code now first says which settings must move to user or managed settings
Unclear Which settings trigger the new error is not stated.
When a program changes Claude Code's model, the reply now names the model in use, and the wait message mentions the PreModelSwitch hook
Claude Code now cleans up the proxy address before connecting, uses extra security options for HTTPS proxies, and adjusts one sign-in refresh path
When the model sends a badly formed tool call, Claude Code now counts its retries instead of allowing just one
On Windows, Claude Code prints a notice that sandbox setup can take minutes, and another while it removes the session's file permissions on exit
Turning a plugin on or off now treats a plugin enabled through command-line flag settings as already on, and the disable message carries extra text
A status hint now says the sandbox is starting and that setting file permissions can take a few minutes, mostly the first time in a large project
Claude now knows that some Windows programs cannot use HTTPS in the sandbox, how to stop a pytest hang, and where PowerShell keeps temp files
Changing a plugin your organization's policy turns on is now refused, and a plugin kept on by --settings is shown as still enabled this session
In headless and SDK use, an interrupt without cancelQueued now puts the message being handled back in the queue instead of dropping it
ANTHROPIC_AUTH_TOKEN is sent to a custom address#Claude Code dropped one check that could stop ANTHROPIC_AUTH_TOKEN from being sent to a matching ANTHROPIC_BASE_URL
Unclear It is not stated which setups the removed check used to exclude.
On a self-hosted runner, the checkout hook now runs with a time limit, using a built-in default when none is set
Unclear It is unclear whether you can set the checkout hook timeout yourself through a flag, setting or environment variable.
When fetching remote policy settings fails but a cached copy exists, the status now says the cached policy's restrictions still apply
The error saying environment-management endpoints need a claude login session, and that ANTHROPIC_API_KEY will not work, has been reworked
Messages Claude Code adds after a turn, like 'Permission granted for:', now carry an origin tag, and text input gains a maskWhole option
Permission decisions now carry which deny rule matched, where the rule came from, the grant scope, a reason code and more
When an MCP connection closes or expires mid-call, the error now says whether the tool may have run before suggesting mcp_reconnect
The sandbox now has its own diagnostic message for when recording the result of its after-command cleanup fails
When several file paths in a Bash command fail checks, Claude Code now reports the first safety-check problem instead of the first disallowed path
A Windows sandbox message now warns that programs started some other way may keep running without network blocks and says to restart
The warning about plugin skills that were loaded but never used now names each plugin by its key instead of where it came from
When an agent definition is not trusted, the error can now suggest moving it to your user or managed agents folder
Plugin lists show a fixed label for one marketplace, and the /plugin disable message now says which settings scope it wrote to
When copying a git repository nested inside your project to compare changes, Claude Code now checks the copy harder and refuses mismatched work trees
The startup announcement and organisation message boxes are now centred in some layouts, not always aligned left
The workspace diff now also looks for nested repositories without an interface, and stops with a warning if the working folder has moved
The error for trying to install a built-in plugin can now show a message specific to that plugin
Permission explanations now tell an ask from a host apart from an ask cap, and expand when a sandbox override caused the decision
When the runner cannot write its certificate bundle or find system certificates, the error now mentions a deny-list check and suggests --log-level debug
Claude Code's shell command analysis now flags quoted text containing backticks, certain $ forms or escaped quotes, which zsh may read differently
When managed settings fail to load because of a sign-in problem, the message tells you to run claude auth login to sign in again
Unclear It is not known what condition decides whether this hint is shown, so some users may see a different hint.
NODE_USE_ENV_PROXY#In the sandbox, NODE_USE_ENV_PROXY is no longer hidden, and proxy variables are added unless it is set to something other than 1
Arguments passed to plugin hooks are now copied with toJSON methods kept, typed arrays cloned, and endless toJSON chains rejected
When a plugin is enabled for the whole project and you try to disable it, the explanation can now come from elsewhere in Claude Code
When the sandbox blocks a network host, Claude is now told to name that host to you rather than leave the sandbox, for Bash and PowerShell alike
Claude Code now inspects every entry in .git/objects and rejects symlinked or oversized ones, and its Git config allowlist varies by platform
Claude Code now filters the Java truststore, requires every needed certificate, and cleans up leftover files when setting it up for remote sessions
Oversized project uploads with no extracted text now get their own error, which tells Claude to say the file cannot be opened here
On Windows, each denyRead path and each credentials file path in sandbox settings is now also blocked under a second, alternate path form
The rate-limit message now shows its extra credits and limit line in more situations than the spend-limit case alone
In the compaction prompt, the Agent tool's description now tells Claude you pay for unneeded subagents and again for work redone after skipping one
In the command-init prompt, the Agent tool's description now warns that subagent mistakes sound as confident as their findings
The instructions telling Claude when to hand work to a helper agent were reworded in the security review prompt, including a warning about token cost
The instructions on when Claude hands work to a helper agent were reworded in the team onboarding prompt, noting you can only wait or cancel
Claude's instructions for when to use a helper agent were reworded in the blocked-tool reminder prompt, now mentioning side quests
Claude's helper-agent instructions were rewritten in the repeated-read reminder prompt, telling it to do small jobs itself and not spawn when in doubt
In the empty-file reminder prompt, Claude's helper-agent instructions now say to do short tasks and known lookups itself
In the file-offset reminder prompt, Claude's helper-agent instructions now say to delegate reviews only for an independent view, giving code, not conclusions
In the skill-run reminder prompt, Claude's helper-agent instructions now say to wait for delegated work instead of also doing it
In the to-do reminder prompt, Claude's helper-agent instructions now end with a default: when in doubt, don't start a helper
In the general-purpose subagent prompt, the Agent tool text now tells Claude how to brief a helper: goal, what's ruled out, files to read, narrow scope
On the recent tab of the Permissions dialog, the footer now reads "Esc to close" instead of "Esc to cancel"
With DISABLE_LOGIN_COMMAND set, the expired claude.ai sign-in message now builds its opening sentence instead of always saying "Run /exit"
Unclear What the opening sentence now says is not stated.
Through an HTTPS proxy, Claude Code checks the certificate against the site it is reaching, not against the proxy
A resumed subagent that the main conversation is waiting on no longer counts as a background agent, so its permission prompts are shown
If you interrupt Claude shortly after it picks up a message you queued, the message goes back to the front of the queue
Timeouts when connecting to MCP servers now use a clock that keeps track of time the computer spends awake, not plain wall-clock time
Sandbox setup shows a start notice in a terminal, and when run without one it now gives up 150 seconds after Claude Code started
When measuring how wide text is in the terminal, Claude Code now skips hidden marks that the kitty and iTerm terminals use for inline images
For MCP servers supplied by the SDK, Claude Code now falls back on a tool-list refresh when its usual lookup returns nothing
Unclear What this changes for a user of SDK-provided MCP servers is not clear.
A read of artifacts that fails because the server already closed an old connection is now retried once on a fresh connection; writes are not retried
Session titles drawn from a first line now drop leading spaces and the hidden marks the Kitty terminal uses to place images
Claude Code now sets up its error handling for an MCP server connection only once, instead of adding it again each time
Leaving a named worktree session still asks you to keep the worktree to resume later or remove it, with the code behind it rebuilt
When Claude reads a file of the document kind, Claude Code now handles it as a document only if its content is not empty
Unclear It is not stated what Claude receives when it reads an empty document.
1 more of these is in What probably matters to you, on page 1.
Claude Code has a remotely switched check that is true only when the latest turn is a plain prompt from you or an SDK program
Unclear What this check turns on or off is not known.
Claude Code registers a new remote switch whose purpose is not yet visible
Unclear What this switch controls is not known.
Two new feature switch names were added to an existing list of switch names
Claude Code now checks a new remotely controlled switch that is off by default, and it is not yet clear what it controls
Unclear Nothing shows what this switch turns on or off.
The "Keep worktree and tmux session" option still shows the worktree path; a variant without it is built in but switched off
2 more of these are in What probably matters to you, on page 1.
Two new host-controlled environment variables, CLAUDE_CODE_DIFF_COPY_ROOT and CLAUDE_CODE_FOUND_REPOSITORY_GIT, are added to Claude Code's protected set
Unclear Whether setting these variables yourself is blocked, allowed or passed through is not clear.
Conversation compaction now passes a new keepNoRound option and checks the tengu_sleepy_ripple flag before one compaction call
Unclear What the step before compaction does, and so what the switch changes for a user, is not established.
The server-sent policy that decides when a remote session's events and delivery receipts are held or sent gains many new settings and hold rules
Claude Code now accepts "organization" as a scope value, alongside service, channel and group_pool
Unclear It is not clear what an "organization" scope applies to.
Claude Code now treats CLAUDE_RUNNER_UPDATE_BIN and CLAUDE_RUNNER_ACTIVITY_FD like its other remote session variables
Claude Code now registers a ReadChromeUpload handler next to the one for uploading task files
Unclear Nothing says how this handler is reached or whether it is available to anyone.
Published verbatim by Anthropic for v2.1.307. 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 43 bullets, 7 name something an entry on this page also names, 17 name something no entry here does, and 19 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.
/claude-api api-version to move Claude API code to API version 2026-10-21
No entry names this claude_code.safety_event OpenTelemetry event for each tool call a permission rule, auto mode, a safety check, a hook or the sandbox stopped, prompted or sent back
No entry names this CLAUDE_CODE_DISABLE_1M_CONTEXT is set and the model is an alias with the [1m] suffix, such as opus[1m]
Probably model-context-window-logic-reworked-removing-the-1m-beta-as prompt-caching-scope beta header being sent behind custom ANTHROPIC_BASE_URL gateways and on Foundry, where it has no effect
Probably auth-token-forwarding-to-custom-anthropic-base-url-simplifie claude -p on macOS while the login keychain was locked; they now say why, and the next run after an unlock connects without a new sign-in
No entry names this /autocompact in cloud sessions going back to the default window after the session restarted
No entry names this /clear sometimes coming back when a cloud or self-hosted runner session restarted
Probably clear-can-withdraw-a-resume-checkpoint-from-the-transcript #100474[BUG] Self-hosted runner: resumed session comes back in plan mode although the session wrapper passes --permission-mode auto Open
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS being ignored in Claude apps gateway sessions
No entry names this OTEL_EXPORTER_OTLP_HEADERS is set
Probably otlp-exporters-can-strip-header-env-vars-during-construction #98873[BUG] Claude Desktop Code-tab sessions send an invalid bearer on OTLP exports to the Claude apps gateway (invalid_token), while Cowork from the same Desktop succeeds Closed
/permissions > Recently denied not showing the denied shell command, and auto mode's local classifier ignoring an approval from there when it checks a retried command; approving a row now names the command, not its description
No entry names this #101912[BUG] Read-only Bash search denied as Self-Modification again after native /permissions retry approval Open
#98834[Bug] Permission approval not applied: migration remains denied despite explicit approval Open
/help and the / command menu showing long model-facing descriptions for bundled skills such as /claude-api instead of their short descriptions
No entry names this setModel(), and apps built on it, being refused when the API took more than 5 seconds to confirm the model; Claude Code now waits up to 15 seconds
No entry names this --use-anthropic-git-proxy committing a .claude/settings.local.json left in the clone by an earlier session
Probably plugin-ui-labels-a-built-in-marketplace-and-plugin-disable, runner-git-proxy-sanitize-writes-an-ignore-rule-for-settings axScreenReader setting and CLAUDE_AX_SCREEN_READER in a settings env block to apply only from user, managed or --settings settings (since 2.1.305)
Probably plugin-disable-all-now-accounts-for-policy-managed-plugins-a, plugins-policy-enabled-plugins-dependency-closure-and-se --checkout-hook-timeout-min or set it to 0
Probably self-hosted-runner-gains-diff-finds-nested-repository-supp, checkout-hook-runner-process-tree-stop-timeout-and-pipe-ho [runner:warn] line gives the number left out
No entry names this NODE_EXTRA_CA_CERTS is set only in ~/.claude/settings.json; it now also follows CLAUDE_CODE_CERT_STORE
No entry names this NODE_EXTRA_CA_CERTS file named in the environment or in user settings
No entry names this @claude review stop (also off and pause) to Code Review, ending an @claude review always subscription on a pull request without starting a new review
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
1 of 29 tool descriptions changed.
Claude Code, interactive mode
1267 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 52 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?