Remote sessions record all task stops and can reconnect faster#
Remote task stops are now recorded whoever made them, the remote client calls itself "client", and some live connections retry without waiting
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 →2 more of these are in What probably matters to you, on page 1.
Remote task stops are now recorded whoever made them, the remote client calls itself "client", and some live connections retry without waiting
A settings object sent by the server can now include a maximum message size, which is ignored when the value is not valid
Unclear It is not clear what this limit applies to or whether anything uses it yet.
Sessions hosted by Anthropic can now send transcript rows and events together in one request, falling back to separate requests when refused
On /rewind, on resume and at the start of some turns, Claude Code can now add a held line to the conversation
Unclear It is not stated what the added line contains.
Claude Code now sends any waiting answers and delivery receipts before it flushes its outgoing data
The notice shown when automatic continue after a usage limit stops reads an extra status value; its messages are unchanged
After you change or remove your monthly spend limit, Claude Code updates its record of your usage status through one shared step
A new check looks in a repository's config and config.worktree files for an [include section
Unclear What Claude Code does when it finds an include section is not stated.
Under some conditions, Claude Code now works out file changes itself instead of running git, and ignores checkouts that are not local absolute paths
Unclear It is not known what conditions turn on the git-free path or the checkout filtering, so it is unclear who is affected.
When Claude Code runs git with its cleaned-up settings, it now sets one more variable and starts git from the filesystem's root folder
Unclear What the added variable does is not clear.
When Claude Code reads output from git, it now checks the raw bytes and returns nothing if they fail, instead of the output as it came
Unclear What the check looks for, and so which files now come back empty, is not known.
Claude Code now sends usage data about each permission decision, recording what kind of rule or check made it
Claude Code's list of usage events now includes names tied to MCP connections and to handling queued messages
The usage data recorded when an MCP server sign-in begins now includes extra details taken from the server's settings and its redirect address
Claude Code now withholds its access token from the device bridge when that token is the desktop app's sign-in, and logs that it did so
On Windows, Claude Code can list running processes through a feature only found in internal builds of the Bun runtime
Unclear Whether the public build of Claude Code provides this Bun feature is not clear.
Claude Code treats a session as server- or SSH-started when CLAUDE_CODE_SPAWNED_BY_SERVER, CLAUDE_SSH_DAEMON_CHILD or CLAUDE_SSH_RUN_DIR is set
Unclear It is not shown what Claude Code does differently once a session counts as a remote relay.
When a queued command starts, its event now includes what woke it and when it was scheduled for, if it came from a scheduled wakeup
When a turn is stopped locally or cancelled remotely, Claude Code now runs an extra step that uses the cancelQueued option and the message queue
Unclear It is unclear what this step does to the waiting messages.
Queued messages marked to run alone are no longer combined with others into a single turn
The step that decides whether an approval request becomes a refusal now names the approver: the host, a person, or nobody
Unclear Whether this changes which requests are refused in runs where no one can answer a prompt is not settled.
Accepted permission prompts now log a scope, and only an "always" choice is counted as a permanent approval
Records of permission decisions no longer include a decider field, and a decision made by a person now sets a plugin field instead
When an emergency off is in force, Claude Code stops polling from the laptop unless the call overrides it
Unclear What the laptop is polling for is not stated.
Renewing a remote-control stream now always waits for a quiet moment when a worker connection exists, whatever kind of connection it is
When a task is stopped through Remote Control it is now labelled as coming from the client, not the user, and remote sessions can report service time
The session transcript writer can now hold copies of queued messages until it decides to keep or drop them, and settles them before compaction
Claude Code's saved record of a session can now take back a recent checkpoint, alongside removing and compacting entries
When Claude Code streams JSON output, progress and attachment entries are now kept as provisional copies and finalised at set points
Unclear It is not shown whether this changes anything a user sees in the output or the transcript.
Clickable terminal link labels are now rejected when they begin with a combining mark that could join them to earlier text
The line saying how many startup notices are hidden is now built separately, and a home message slot exists but is switched off
Claude Code now reuses image IDs per image in iTerm, kept in a limited-size list, instead of from one shared pool
Claude Code's startup can now run and wait on a sign-in step for sessions started by a launcher
Unclear What triggers this sign-in step and what it does for the person signing in is not known.
When a remote connection sends a new CLAUDE_CODE_OAUTH_TOKEN, Claude Code can now pass it to a separate check rather than switching to it
Unclear What condition decides this and whether the token is ever applied afterwards is not known.
The check auto mode runs on actions now sends an extra beta header and uses a global cache scope when a certain condition holds
The view of your messages that auto mode uses now tracks answered questions, replies and compaction
After connecting, Claude Code now resets its reconnect delay only for connection types that ask for it
NODE_TLS_REJECT_UNAUTHORIZED is no longer named directly in two variable lists, and a message now says to run claude sandbox uninstall again
Unclear Whether NODE_TLS_REJECT_UNAUTHORIZED is still covered by the replacement list is not stated.
Plugin sync now spots plugins whose only content is one skill named after the plugin, and keeps a separate list of followed plugins
Unclear What sync does differently with single-skill plugins, and what a following plugin is, is not stated.
When syncing plugins, Claude Code now has an extra condition under which it leaves a plugin's MCP server out
Unclear The two extra checks that cause a server to be left out are not identified.
A server-controlled switch beside the remote-tools switches now defaults to on when the server sends no value, instead of off
Unclear Nothing shows what this switch controls, so what changes when it is on is unknown.
When Claude Code connects as a tool server, its connection now sends the header x-tunnel-peer: tool-server
Unclear It is not stated how the tool-server option is switched on.
The Bash tool's guidance for retrying a command blocked by the sandbox now adds a further phrase after the allowed_domains instruction
Unclear The wording of the added text is not known, so it is unclear how Claude's retry advice changes.
Claude Code's sandbox cleanup of planted bare-repository files has changed, falling back to removing empty folders or the whole directory
The list of built-in names that includes migrate and upgrade now also includes api-version
Unclear It is unclear whether there is an api-version skill you can actually use.
When a skill runs a shell command written into it, Claude Code now passes along which plugin the skill came from
Unclear Whether the plugin's identity changes which of these shell commands need your permission is not clear.
Uploading a subagent's transcript can now stop cleanly when cancelled, and an upload that is cancelled or too large is kept as still owed
When a subagent is forked from a message with several tool calls, each call now gets stand-in result text that depends on which call and which tool it is
An internal option that shaped the Agent tool's description by listing delegation costs first has been removed
Claude Code no longer reads CLAUDE_CODE_ADOPT_UNDERIVABLE_PARKED_PERMISSION, and a denied waiting permission request is no longer retired
Unclear What setting CLAUDE_CODE_WITTY_DEWDROP changes for a user is not stated.
The path that rendered a whole PDF into page images before reading it, behind tengu_deep_starlight, is removed; whole-PDF reads go straight to the native read
Whether Claude Code checks for plugin updates at the start of a turn now depends only on the clock, not on a remotely controlled setting
Claude Code no longer keeps a stored permission answer when a remote session hands a turn over, and stops sending a related usage report
Unclear It is unclear whether removing the stored permission answer changes anything you can see in a remote session.
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
1999 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?