Auto mode's denial tracking now also resets rewritten-action records#
Resetting auto mode's denial count now also clears three new records that follow rewritten tool actions
You can now set oidc.user_id_claim to choose which sign-in token field holds the user ID for the OIDC gateway. It defaults to sub. Among the other shipped changes, the prompt asking whether Claude may use a skill now shows the skill's description in a scrollable box. Usage messages now call your short-term limit the "5-hour limit". Programs that embed Claude Code can now mark a question as skipped, answered in chat or dismissed with the ask_user_question_unanswered_v1 capability. Remote control can now ask a session to start a shell command in the background, and the usual permission checks still apply.
Several features are in this build but are not switched on yet. Cloud sessions can enforce a policy on model and effort changes, but only when a worker policy is set to enforce. Auto mode gains a remote list that can turn off its extra safety checks. A tip about Claude Design shows only if a flag is switched on from Anthropic's servers. A note telling Claude that staged files are still being copied is also off by default.
Among the fixes, agent calls cut off by a container restart now resume, or Claude is told plainly why they cannot. Skills supplied by MCP servers can no longer be run through the Skill tool and now return an "Unknown skill" error. Plan mode is read-only again because its workshop and prototype offers are removed. Signed policy documents are no longer rejected for being older than one already accepted. Mantle is gone from the built-in list of model providers.
Written by our agent from the shipped bundle, not by Anthropic.
AskUserQuestion's instructions now say the user may see only the question dialog, and hosts can mark a question skipped, replied in chat or dismissed
ExtensionsWhen loading an MCP skill needs permission, Claude Code can now hold the request until a person answers it
ExtensionssubA new oidc.user_id_claim setting picks which sign-in token field holds the user ID, defaulting to sub
/effort now reads 'default' and 'auto' from what you typed, its auto keyword comes from a helper, and sessions record the effort sent each turn
ElsewhereA queued message can now show a send-now hint, and in the fullscreen display you can click it to send the message straight away
Sessions & agentsWant the reasoning? Read walks the 24 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →6 more of these are in What probably matters to you, on page 1.
Resetting auto mode's denial count now also clears three new records that follow rewritten tool actions
Auto mode can now drop whole-tool permission rules that name a tool alias from what it sends to its safety check
Unclear It is not clear when the condition that turns this filtering on is true.
The list of capabilities Claude Code sends connected programs at session start can now include one more entry when a check passes
Unclear Which capability is added to the list is not stated.
Claude Code no longer runs an extra early step when a tool call begins to arrive in the streamed reply
A restart guard reports a limit hit once recent restarts reach a set number, and also when its restart record cannot be read
Unclear Which restarts this counts, and where the limit is set, is not stated.
When a session lock is already held or being checked and a certain condition is false, Claude Code now stops early instead of starting another check
Unclear It is not clear what this lock protects or which condition decides whether the check is skipped.
Claude Code now has one more situation in which it avoids showing permission prompts
Unclear It is not clear what the new situation is in which prompts are skipped.
A helper that quotes a tool's input as JSON and refuses when it would expose a hidden secret is in the build, with nothing using it yet
Unclear Nothing is seen using this helper, so whether it affects anything a user sees is not known.
The check that decides whether a tool call is denied or a run is stopped now records which turn it happened on
Unclear It is not clear which feature this check belongs to or what tracking the turn changes for users.
The check for showing a prompt when an action is blocked now handles one model's decisions by reason instead of by category
Unclear It is not clear which model's decisions take the new branch, so it is unclear which blocked actions now show a prompt.
The explanation of how to read a diff when publishing shared docs no longer warns that /doc page lines carry block ids your file may lack
The check that decides whether the Artifacts MCP tools are available now runs through a shared check instead of its own
Unclear It is not clear whether this changes when the Artifacts MCP tools are available to you.
The Artifact publish message for files with the same content is unchanged in this release
When Claude Code stops a background shell command, it now records whether the session ending, a caller, or the client stopped it
A stopped shell command can now carry a label saying why it was stopped, and its run time is counted up to the moment it was stopped
When Claude Code stops background shell commands, it now records whether the session ended or the subagent that started them did
The prompt.section, agent.offer and attribution.text hooks now also skip when a new condition is met
Unclear It is not stated what condition makes these hooks skip.
Claude Code now writes a debug log line when it sets up the hooks host for the plugins that ship with it
Claude Code keeps a running record of the hooks it collects and can now tell whether any hooks are configured in settings
Unclear What the record of collected hooks is used for is not established.
A new remote switch is on by default and only turns off when the server says so for a non-default host
Unclear It is not clear which feature this switch controls.
WebSocket connections opened by Claude Code can now be told whether to compress messages
A check inside Claude Code that already existed now always returns no, whatever it is asked
Unclear Which feature, if any, this always-no check controls is not known.
When loading a plugin, Claude Code can now mark it as vouched for if it comes from an official marketplace and passes further checks
Unclear What the vouched mark changes for a plugin afterwards is not stated.
When the LSP tool uses a language server provided by a plugin, Claude Code now records a usage event naming the operation
Claude Code now records usage data when you view a plugin directory listing and when you open a link from it
Claude Code can label a skill as built in, from your organization, or shared with you, when a remote switch allows it
Claude Code's watcher for edited skill files now changes how often it checks without being torn down and rebuilt each time
Claude Code merged several of the steps that set up its built-in skills into one, and the variables that turn some skills off are unchanged
Unclear It is not known which built-in skills, if any, were removed or merged.
The current date Claude Code passes to Claude can now carry a mark saying it was worked out assuming the UTC time zone
Unclear What makes Claude Code assume UTC for the date is not stated.
Whether the system prompt says older messages are compressed automatically is now decided by whatever builds the prompt
The check behind the autonomous-operation guidance now only answers yes or no, and the guidance text is no longer written there
Unclear Whether the autonomous-operation guidance text is still sent to Claude, and from where, is not stated.
The spinner now reads the effort level sent with a turn, and the welcome header can be shown without its logo
The gap above a permission prompt is now adjustable inside Claude Code, and still defaults to one line
The hint shown after a first exit key press now comes from a fixed set of messages, with a general fallback for other keys
Reporting of rejected sign-in tokens on sessions requests now only happens when an extra check on the request passes
Claude Code now remembers the previous sign-in and the tokens it handed out, so an outdated one can be swapped for the current token
Tool calls to some HTTP MCP servers now include an extra generated mark in their metadata, and one error message is worded differently
Unclear It is not stated what the mark contains or which server addresses get it.
Published artifact records now keep a version, MCP tool and type, and Claude Code accepts a name and version for MCP skills
The notice that a peer is back in a remote-control session now records how long it was gone, alongside other session changes
After a sign-in error on the bridge connection, Claude Code now stops straight away for some setups instead of refreshing the sign-in
Unclear It is not clear which setups skip the sign-in refresh.
The guidance text for starting subagents is now picked by an explicit mode, and the wording itself is unchanged
Claude Code now builds the note marking a cut-off agent's recovered output in one shared place and passes on a filtered history
Claude Code can now send teleport events for a session to the server, with an optional trusted-device token
Teleport's event fetching can now ask for one agent's events, include subagents, or start from the first event, with a fallback if refused
Unclear It is not clear whether anything in this release asks for these new options yet.
The Artifact tool loses its workshop-page flow, the read_page_data action, the template choice and related whiteboard and heli pieces
The Skill tool now refuses skills that come from an MCP server and returns an "Unknown skill" error for them
Unclear It is not known whether skills from MCP servers can still be run some other way.
The AskUserQuestion tool's results no longer include a per-question annotations field, and mantle was removed from a list of providers
Unclear It is not clear which setting or schema the provider list belongs to, so what removing mantle means for anyone who used it is unknown.
Publishing an artifact no longer runs the structure check on workshop pages, and workshop write counting is gone
Forking or resuming a session copies only the plan's own .md file, not a separate .workshop.md file
Artifact publishing now always reports a plain template and no longer adds block IDs to documents
The plugin runtime no longer lists ui.invalidate, and usage reporting now records how many compactions happened in a run
Unclear It is not known whether a plugin that calls ui.invalidate now fails.
The reminder Claude Code sends Claude in plan mode no longer includes the active plan workshop document or its tracking
The rule letting Claude read the current session's plan files without asking no longer includes a workshop document
Claude Code no longer checks one remote switch, so whatever it controlled stays off whatever Anthropic's servers send
Unclear It is not clear which feature this switch controlled, or whether anything in Claude Code still uses the check.
Published verbatim by Anthropic for v2.1.312. 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 39 bullets, 5 name something an entry on this page also names, 8 name something no entry here does, and 26 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.
oidc.user_id_claim to the Claude apps gateway, to identify people by an id_token claim other than sub, such as Microsoft Entra ID's oid
Probably oidc-proxy-gains-oidcuser-id-claim paths: skills not being found after a Bash cd deeper into a git repository
Nothing to match on #105250[BUG] Skill paths: globs match against the Bash tool's current directory, so a persisted cd hides path-scoped skills (rules unaffected) Open
claude -p with no output
No entry names this effort values and transcripts naming a newly picked effort level during a task before the model applied it; they now show the level in force
Nothing to match on /model and /effort cache warning saying the re-read waits for your next message; a change made while Claude is working can trigger it sooner
Probably effort-usage-text-uses-a-function-provided-label-instead-of, effort-reset-message-names-the-effective-default-instead-of, effort-auto-keyword-now-produced-by-a-helper, effort-command-accepts-more-default-values, agent-view-model-matching-fix-scroll-speed-ui-rework ! input
Nothing to match on d, c and y with a gj or gk count larger than the lines left deleting or copying text; like Vim, they now only move the cursor
Nothing to match on /verify showing a long description meant for Claude in /help and the / command menu instead of a short one
No entry names this CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT=0 to keep the full prompt
No entry names this CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK=1 to turn them off
No entry names this timeout under 1 second now counts as 1 second
Nothing to match on autoCompactWindow to lower the window set by CLAUDE_CODE_AUTO_COMPACT_WINDOW, where it had no effect before; it still never raises that window
Probably auto-compact-window-env-override-no-longer-bypasses-the-ceil mcp_server.name to report the real name of fixed-URL remote MCP servers declared by plugins from the official Anthropic marketplace, instead of custom
No entry names this claude_code.safety_event OpenTelemetry event
No entry names this A model matched these bullets to the GitHub issues they fix, so a link can be wrong.
1 of 30 tool descriptions changed.
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.
473 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.
Every time above is when this site's poller recorded the change, which is up to half an hour after the edit on an ordinary read and up to a day after it on a full sweep. Upstream's own edit time is used instead wherever a capture carries one. None of these do.
The 25 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?