Cloud session setup now says when it failed#
When a cloud session fails to start or resume, the setup screen now says so and tells you to send a message to try again
A bundled chart plugin now lets Claude draw charts right in the transcript. It also charts metrics from MCP tools automatically, and the Auto charts switch in /config controls that. You can now turn off fork mode with the new forkSubagentDisabled setting. Setting includeUnsupportedModels to true lists models that Claude Code would normally hide. With claude remote-control, a cloud session can now ask to use a folder on your computer through a consent card. Programs that launch claude mcp serve can set CLAUDE_CODE_MCP_SERVE_WORKSPACE_ROOT so only folders below one root can be registered.
Several features are in this build but are not switched on yet. Groundwork for a hybrid sign-in mode now sits in Claude Code's sign-in state. There is also early work on asking your organization for approval. A marker that would let MCP tool results respect stop hooks is in place but hard-wired off. A new remote switch, off by default, would add a folder prompt option and a check on malformed permission requests.
Skills that come from plugins can now be switched off with the skillOverrides setting. Organization-level overrides are checked too. The resume picker now shows an error instead of quitting when some sessions fail to load. Passing --help to claude remote-control now prints its help instead of starting a session. Parked MCP tasks now survive an error instead of being shut down. When Claude Code runs as an MCP server, it can no longer fork subagents.
Written by our agent from the shipped bundle, not by Anthropic.
Claude Code gains hybrid sign-in state and can fetch remote managed settings with a token supplied by the program hosting it
Settings & configNew hidden flags --include-unsupported-models and --allow-other-models let you run models this version would otherwise reject
A cloud session can ask through Remote Control to use a folder on your computer, shown as a permission card, behind the tengu_violin_colophony flag
Sessions & agentsCLAUDE_CODE_MCP_SERVE_WORKSPACE_ROOT lets a host running claude mcp serve limit folder registration to a folder below the server's own
The Agent tool now explains subagent_type "fork" and when to fork, and fork mode can be turned off with the forkSubagentDisabled setting
Sessions & agentsWant the reasoning? Read walks the 26 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →4 more of these are in What probably matters to you, on page 1.
When a cloud session fails to start or resume, the setup screen now says so and tells you to send a message to try again
Before starting a cloud session, Claude Code asks GitHub whether your branch exists there, and warns that it will use the default branch if not
When moving work to a cloud session, Claude Code now asks GitHub whether your branch exists and warns more precisely about work that is not on GitHub
When Claude Code runs a PowerShell command, it now passes along the folders where installed plugins keep their programs
Unclear It is not confirmed that plugin programs become runnable by name in PowerShell, for example by being added to the search path.
Claude Code now reads images from pipes and devices only up to a limit, and reports an error for oversize or unreadable input
When a hook stops a tool call, the message now says the hook failed rather than always saying it did not finish
When a newer artifact version blocks a publish, Claude is told to copy the live lines into its file with Edit or Write, then resend
The confirmation for stopping background agents now has a short form: the key's name followed by "again to stop agents"
Claude Code adds a list of PowerShell sorting and formatting commands, a plugin skill folder check, and a run ID in local agent usage data
Unclear It is not stated what the PowerShell command list is used for, such as whether those commands now run without asking you.
When Claude resends a refused edit, it can now be told that nothing was applied and the file is unchanged since the refusal
When a feature is disabled by your organization's policy, Claude Code can now point you to the public issue tracker to report a bug
The /design-sync access confirmation gets extra spacing, and sessions started as local_agent are now counted as cowork
Claude Code now tidies strictKnownMarketplaces values from managed settings before using them, and reworded the start of the connection-lost error
Unclear It is not clear what the normalizing step changes about the allowlist entries.
The artifact quickstart tool's description now says a dashboard that shows data falls under "other"
The footer under the prompt now appears when a new kind of hint is set, not only for the existing paste hint
Unclear What sets the new hint and what it says is not known.
When an MCP tool result's oversized extra details are dropped, the warning now says a second marker is kept beside the first
Unclear Which second marker is now kept beside the first is not stated.
EnterWorktree and ExitWorktree messages no longer insert raw paths, branch names and tmux session names; the tmux reattach hint is reworded
When Claude Code shows formatted text, inline code now gets the same extra styling step that links and images already got
Unclear It is not clear when this styling step applies, or how it changes the look of inline code.
The project MCP approval dialog and managed-settings errors now tidy a file's path before showing it, rather than showing it raw
When you copy a selection, the confirmation now comes in a short form such as "copied 12 chars" that can sit on the prompt's first row
Next to "Ctrl+Y to paste deleted text", the hint now also has a short form reading "ctrl+y to undo delete"
The tip about the Option key now carries a short hint: set Option as Meta, or run /terminal-setup, to use the shortcut
1 more of these is in What probably matters to you, on page 1.
A parked mcp_task with an active driver is no longer treated as idle, and a driver error no longer tears the parked task down
Unclear What this changes in what a user sees is not stated.
A plugin is no longer reported as locked because of a held-off entry when another matching entry is enabled
If a session picked in the resume picker fails to load in a particular way, Claude Code now shows an error message instead of exiting
Claude Code now treats a worktree whose link points nowhere valid as not a git repository, and reads the branch from the right place
Claude Code now reports a git branch only when that branch actually exists, so a fresh repository with no commits shows none
Claude Code now skips plugin program folders whose path contains the PATH separator character, and skips folders already on PATH
Local agents that have failed or been killed are no longer treated as still running background tasks
Claude Code now keeps an agent you stopped from returning more reliably, including when its saved state is missing
--help instead of starting#Passing --help or -h to the remote-control command now prints its help text and stops, before any session starts
In some cases Claude Code now reads a stored transcript to its end, and keeps it as a conversation if it cannot decide whether it is empty
When Claude publishes an artifact, an empty list of edits is now dropped instead of being treated as bad input
When you toggle an MCP server Claude Code cannot find, it can now clear leftover state for that name before reporting Server not found
Claude Code now keeps the type, details and code of an API error when it copies a message, instead of dropping them
On non-Windows systems, Claude Code no longer follows a worktree's git directory pointer when any path involved contains a backslash
2 more of these are in What probably matters to you, on page 1.
Claude Code has a new remote switch that falls back to off when the server sends nothing, and what it controls is not known
Unclear It is not known what this switch controls.
The check for whether you can enter auto mode now has an extra blocking condition, which is fixed to never block for now
6 more of these are in What probably matters to you, on page 1.
Worktree results and session info gain a madeElsewhere field, set to 'enteredByPath' or 'resumedByName' for worktrees Claude Code did not create itself
The request that moves a session to a cloud session now includes a memoryMode value read just before the move
Unclear Whether the cloud session actually uses the memory mode it is sent is not stated.
The attribution block can now carry a project tag, and one fork subagent check now depends on remote sessions instead of CLAUDE_CODE_FORK_SUBAGENT
Unclear It is not clear whether this check is the one that decides fork mode, so whether CLAUDE_CODE_FORK_SUBAGENT=0 still turns forking off everywhere is unsettled.
closeForSuccessor and goodbye accept a drained option that releaseLease sends as drained: true when handing a session off
When no bridge server exists, Claude Code now answers allowed or denied for its tools by checking session addresses against the session's rules
Unclear The condition that makes the check answer denied straight away is not stated.
A new check that applies only in hosted worker sessions can be satisfied by setting the CLAUDE_CODE_SYNC_SKILLS environment variable
Unclear It is not clear what this check turns on or off, or what its other conditions are.
skillsPersistencePrompt is no longer passed when building the system prompt, both in the main path and when the Agent tool runs a fork
Unclear It is not clear whether that skills text now reaches forked subagents some other way.
When Claude Code creates a cloud session, it now also passes along whether a copy has been approved
Unclear What copy this approval covers, and what it changes, is not known.
Claude Code now records usage events for math formulas in IDE views, noting whether each was drawn or refused and why
Unclear Whether math formula rendering is something users can see in this version is not settled.
Claude Code now treats values stored under keys like memory_request_mac as secrets and hides them
Claude Code now stores at startup whether unsupported models should be included, and reports MCP list sizes in its startup usage data
Unclear It is not clear whether --include-unsupported-models is an option you can pass yourself, or what it changes in the model list.
Side queries and token-counting requests now pass a toolNames field built from the available tools
Permission mode changes now update a shared context that request metadata reads from when no mode is passed in
Remote-bridge reconnect and recovery events now carry a recovery_bucket time range and track when the failure began
A check related to sign-in or onboarding now passes in one more situation than before
Unclear What the added condition is, and so when this prompt now appears, is not clear.
The publish quickstart hint about starting from the Dashboard type now draws its list of page kinds from shared wording
When a remote worker starts up, Claude Code now notes from its first message whether it supports sending a message immediately
When a session runs a tool remotely, Claude Code can now use a location the remote runner has already checked
Claude Code now saves a session's running cost and restores it, keeping the saved total when it is at least as high as the current one
Sending a prompt to a remote session now returns its message ID, and remote and thinking on/off notices carry a short one-line hint
Several readers of remote and session files now check a path before reading it and return nothing when the check gives no result
Unclear What makes a path fail the new check, and so get skipped, is not known.
Resuming a session now fails with a distinct error when the resume is refused, and folder messages show paths in a standard format
The state Claude Code keeps about a worker gains a new field, next to the record of its last inventory
Background sessions now claim a controlling terminal through a function built into Claude Code's runtime instead of a separate system lookup
When Claude Code declines to resume a past conversation for one specific reason, it now records that as refused instead of as a failed load
Unclear It is not clear what causes Claude Code to refuse a resume.
A routine that asked macOS directly for the terminal's name is replaced by one that reads JSON text and checks its shape
Unclear It is not clear what Claude Code now uses this JSON reader for, or whether it still looks up the terminal name some other way.
On Windows, sandbox folder permissions are now read and changed through Claude Code's runtime, and sandbox errors use a table of named messages
Setup for measuring Bash command CPU on Linux now rejects .. in paths, keeps colons when parsing, and says what is lost if it fails
When it splits a shell command into parts, Claude Code now records which parts are piped and which command feeds the last one
Unclear It is not clear whether this changes which piped commands Claude Code asks permission for.
The part of Claude Code that measures what fills the context now assembles the system prompt differently
The key Claude Code uses to reuse cached tool text now changes depending on whether an agent's 'when to use' description is empty
The part of Claude's instructions that describes your environment can now take its contents from a single source
Unclear Whether the environment details Claude receives actually differ is not known.
A pending close on a remote connection now records when it happened, and applying settings remotely now also reports an effort_request_id
When a message is sent through the SDK, Claude Code now records usage data about its pasted content only if the message is new
The way Claude Code keeps track of which output style files it has loaded was reorganised internally
Claude Code now applies environment variables taken from a tool server's launch first, then the ones from your settings
Unclear Which variables come from a tool server's launch, and when there are any, is not clear.
When Claude Code serves its tools to other programs, one specific tool now skips the "switched off in this server" refusal
Unclear It is not clear which tool is exempt from the refusal.
Running as an MCP server, Claude Code can now link each tool call to its background task and track when task results were dropped
Repeated task status checks can now give up after one failure and no longer have to keep Claude Code running while they wait
Claude Code now holds a separate, initially empty set of environment values for launching tool servers
Unclear What values go into the tool server environment, and when it is used, is not shown.
MCP tool responses can now include a shell CPU time figure, read from the system's cgroup accounting when the value looks sane
Claude Code now knows of steps for fetching a credit link status and for folding back and saving a subagent when it stops
Claude Code's usage data now has a name for listing a directory in cloud sessions and a reason for a barred call
Unclear Whether cloud sessions can actually list directories yet is not clear.
The usage data recorded when a tool call succeeds now includes a scrambled ID for that call, and one restart note builder has been removed
Unclear It is not clear whether Claude is still told about tool calls lost when a cloud session restarts.
Claude Code now records when a successful result follows dropped structured output, and when a project reply turn errors
Claude Code now records extra details, such as timing and number of tries, when a cloud session checks out code at start
A built-in plugin can now refuse a call to an MCP server it provides, and the server is also refused if the plugin's check fails
In the organization-managed plugin list, disabled plugins in a held set are now marked with heldOff: true
When Claude Code syncs plugin folders in the background, it now also passes along which plugin each folder belongs to
Messages raised while loading a bundle can now carry a warning or error level instead of always being plain notices
Claude Code has a new remote switch that counts as on when the server sends no value, and it guards behaviour that is not named
Unclear Which feature this switch controls is not stated.
A new setting controlled from Anthropic's servers is a number that is 0 unless the server sets it and two conditions are met
Unclear It is not stated what this number controls.
A configuration that held only a refresh interval now also sets a "full" mode and a maximum number of input tokens
Unclear Which feature this configuration belongs to is not known.
When Claude Code fails to start watching your settings for changes, the error is now logged under a named reason
Held hook output now records whether it holds content meant for Claude, and clearing held hooks also resets one more piece of state
Unclear What the new marker changes in how or when held hook output reaches Claude is not stated.
Claude Code no longer removes hooks that run in the background from its list once their results have been collected
Unclear It is not clear whether finished background hooks are now cleaned up elsewhere or simply stay registered.
The code that decides whether a hook's matcher fits an event was rearranged, and a missing matcher still counts as a match
Claude Code's text now says the run-in-background option is withheld when subagents are forced into the background, including with CLAUDE_CODE_FORK_SUBAGENT=1
The Agent tool's instructions to Claude now have separate fork wording and a "When to fork" section, shown only when forking is enabled
Unclear What turns the fork version of these instructions on is not shown.
Claude's instructions now say a fork runs in the background only when that applies; otherwise they say it keeps tool output out of view
Claude Code now passes the names of the tools in use to the part that builds headers for its requests
Claude Code's own web request setup can now run steps before a request, mark credential headers and decide when to resend
Published verbatim by Anthropic for v2.1.302. 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 63 bullets, 13 name something an entry on this page also names, 14 name something no entry here does, and 36 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_CODE_AUTO_MODE_MODEL to choose the model the client-side auto mode classifier uses; it does not change the model for server-side auto mode
Probably background-sessions-anthropic-base-url-not-forwarded-to-oth, claude-code-auto-mode-model-added-to-a-list-that-includes-cl, new-env-var-claude-code-mcp-serve-workspace-root, auto-mode-classifier-model-resolution-with-server-override-a Idle compaction row to /config for turning idle compaction off or back on; the notices shown after an idle compaction now say how to turn it off
Probably idle-compaction-the-tengu-sunny-locket-constant-is-factored, built-in-easel-plugin-chart-tool-and-auto-charts-for-mcp-me, idle-compaction-toggle-in-config /design-sync and /design-login that standalone Claude Design (claude.ai/design) closes by December 14, 2026
Probably standalone-claude-design-shutdown-notice-december-14-2026, design-sync-authorization-success-message-adds-spacing-eleme, design-consent-and-revoke-give-cloud-session-specific-error /autocompact and /effort saving to the wrong model when a gateway names Opus 4 or 4.1 with a prefix, such as anthropic/claude-opus-4-1
No entry names this claude plugin and other subcommands sometimes exiting before a queued settings or config write finished, which could lose the change or leave a .tmp file behind
Probably plugin-sync-can-fold-converted-skills-in-as-plugins #89565CLI leaves orphaned `.claude.json.tmp.<pid>.<hash>` files when terminated during config write Not planned
bin/ folder, and reporting an error when a search that finds nothing (rg, grep, findstr, git grep) is piped into Select-Object or another formatting cmdlet
No entry names this /mcp to authorize or reconnect an MCP server where that option isn't available
Probably mcp-auth-rejection-messages-moved-to-helper-functions, mcp-error-messages-vary-by-environment-start-a-new-task-or, mcp-rejected-credential-messages-moved-into-shared-helpers classifier_category missing from OpenTelemetry tool_decision events for most auto mode classifier blocks, and new tool_decision attributes pushing out tool_use_id, tool_source and tool_parameters when OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT is low
Probably mcp-serve-gains-a-readcalls-tool-and-repo-rule-transport claude remote-control --help not printing its usage and exiting when not signed in
Probably remote-control-subcommand-now-answers-help /design consent and /design revoke suggesting /design-login when they fail in a cloud session, where it isn't available; the message now points to claude.ai/design/settings
Probably standalone-claude-design-shutdown-notice-december-14-2026, design-sync-authorization-success-message-adds-spacing-eleme, design-consent-and-revoke-give-cloud-session-specific-error resultType, ttlMs or cacheScope
Probably mcp-modern-protocol-connections-tolerate-results-missing-req #88128[BUG] MCP tools/list and resources/list rejected as invalid when optional ttlMs/cacheScope cache hints are omitted (protocol 2026-07-28) Open
#97319[BUG] MCP client rejects valid tools/list response due to strict validation of ttlMs/cacheScope fields (Roblox Studio MCP server) Open
#88154[BUG] Microsoft Dataverse MCP connector fails with "missing required resultType" on every call in Claude Code (works fine in claude.ai chat) Not planned
claude plugin details <name>@builtin suggesting claude plugin list, which never shows built-in plugins, when the plugin isn't found; it now points to /plugin
Probably plugin-hidden-synced-skills-hiddenbehindplugin, idle-compaction-the-tengu-sunny-locket-constant-is-factored, plugin-sync-can-fold-converted-skills-in-as-plugins .git file points at a directory that doesn't exist
Nothing to match on --plugin-dir
No entry names this claude -p and Agent SDK sessions with no permission mode to start in default mode on third-party providers, with telemetry off or on a fresh install; --permission-mode auto keeps auto
Probably claude-p-continue-resume-now-aborts-on-a-specific-error subagent_type: "fork") to be on by default in claude -p, the Agent SDK, the desktop app and VS Code, as they already are in the terminal; CLAUDE_CODE_FORK_SUBAGENT=0 turns them off, and claude mcp serve never offers them
Probably attribution-header-gains-project-tag-fork-subagent-gating-r, agent-tool-schema-text-subagents-forced-into-background-by, fork-subagent-text-added-to-the-agent-tool-prompt-fork-is-o, claude-p-continue-resume-now-aborts-on-a-specific-error, mcp-serve-gains-a-readcalls-tool-and-repo-rule-transport, mcp-serve-gains-a-one-shot-workspace-root-env-var-that-can-r, fork-subagent-enablement-gains-a-settings-kill-switch-and-a, fork-subagent-type-and-plugin-cc-plugin-easel claude -p, the Agent SDK, the desktop app and VS Code now run in the foreground by default
Probably claude-p-continue-resume-now-aborts-on-a-specific-error ← for agents footer hint to hide 10 seconds after a session opens; the count of agents waiting on you still shows
No entry names this /feedback: it now points to GitHub issues instead of an organization admin
No entry names this @browser banner saying "Browser connected" when no browser with the Claude extension can be reached
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
No change to the system prompt since v2.1.301.
Claude Code, interactive mode
12 prompt changes in this release could not be quoted from the build, so no entry on this page describes them.
590 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 34 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?