Header variable expansion does less work#
Claude Code now only prepares variable expansion for MCP and remote headers whose value contains ${, with no change to the result
Admins running the bundled gateway can now set one shared monthly spending limit for a whole access group. The new blockReadsExemptPaths setting lists folders Claude Code may still read when reads outside your working directories are blocked. Claude Code can now publish an artifact as a Claude doc. It also reports whether a lasting subscription to that doc's updates was set up. In Cowork, the loops Claude Code starts no longer receive your memory. A hidden --gateway-json option on claude auth login lets the VS Code extension handle Cloud gateway sign-in.
Several features are in the build but not switched on yet. Remote sessions can track and resend conversation lines they still owe after a restart, but only when this is switched on remotely. Files uploaded to a project can be attached as text context, behind a flag that defaults to off. Claude Code can list MCP server requests that are waiting for your input, also behind an off-by-default flag. Long Bash output previews can keep both the start and the end, with the full text saved to a file. Numbered menus can be set to wait for Enter instead of picking after a short pause.
File searches no longer hang when ripgrep fails to exit after a timeout. Stray connections can no longer knock you off a background session. Sending a message immediately no longer cuts off an automatic compaction that is in progress. Resuming a copied session no longer shows a stray cut-off tool call. When Claude Code runs as a tool server, a settings file that fails to load no longer drops its permission rules. Shell snapshots now save your aliases in a case where they used to save nothing.
Written by our agent from the shipped bundle, not by Anthropic.
A new held-message recognition feature can be turned off with CLAUDE_CODE_DISABLE_HELD_MESSAGE_RECOGNITION, which is also passed to remote sessions
CLAUDE_CODE_SORTED_OTTER can now override the remote tengu_sorted_otter switch, and one function moves from that switch to tengu_quiet_pike
claude auth login gains a hidden --gateway-json option that runs Cloud gateway sign-in as JSON lines for another program, such as the VS Code extension
Managed settings gain policy_mode: layered, which merges several matching policies instead of applying only the first one, with limits to protect deny rules
A background session's socket can now hold new connections until they send something, so a silent stray connection cannot kick off the attached viewer
Sessions & agentsWant the reasoning? Read walks the 37 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.
Claude Code now only prepares variable expansion for MCP and remote headers whose value contains ${, with no change to the result
Choices in permission menus can now be shown greyed out as unavailable
Claude Code's check for whether a path is inside your working folders can now also accept paths inside an extra list of folders
Unclear It is not clear which extra folders are passed to this check or in which situations.
When a permission question has nobody to answer it, the refusal now records don't-ask mode as the reason when that mode is on
Setting CLAUDE_CODE_CCR_ONE_PLUGIN_LOAD_PER_RELOAD makes a plugin reload skip clearing caches and run one shared load
The code that loads plugins was reorganised, and the list of enabled plugins is now prepared ahead of time
Unclear It is not clear whether the list of enabled plugins now comes from exactly the same settings as before.
The text Claude Code wraps around a message a plugin sends between turns is now assembled from shared pieces
Unclear The new wording is not known, so it is unclear whether the model now reads plugin messages differently.
Messages queued when a background task reports back can now be marked passive, and sessions now pass on whether they began as a copy
When a shell command is moved to the background, Claude Code now records what triggered the move and attaches a step that runs at exit
Unclear What the new exit step does to a backgrounded command is not stated.
Claude Code can now tell when a shell command refers to its saved-result folder, its background-output folder, or both
Unclear It is not clear what Claude Code does with the result of this check.
When Claude Code clears its session caches, it now also clears a meter that tracks repeated Bash commands
Claude Code now records a diagnostic event when a Chrome permission prompt comes up for a tab whose site is not a plain one
When a Chrome permission prompt can't read the tab's address, Claude Code now records one of five specific reasons
The value Claude Code uses for one remote switch when the server sends nothing changed from "name" to off
Unclear What this switch controls is not stated.
In one mode, Claude Code no longer saves feature flag settings to its config or logs which flags were used
Unclear It is not clear which mode turns this off, so readers cannot tell when it applies to them.
Claude Code has a new kind of attached context about withdrawing memory from a loop it has started
Unclear What this attachment tells the model, and when it is sent, is not stated.
A check for memory file paths now gives up straight away when the path does not contain the word "memory"
Unclear It is unclear whether any memory folder can have a path without the word "memory" and so be missed.
The sandbox's cleanup of planted git repository files now moves unrecognised files aside instead of deleting them, and logs refusals
After a sandboxed command, Claude Code now logs a message when its clean-up moves aside an item it could not classify
Unclear What counts as an indicator, and when the clean-up moves one aside, is not known.
One option in Claude Code's instructions to the model no longer adds the line telling it to write code that matches the surrounding code
Unclear It is not clear whether the line was dropped outright or moved elsewhere in the prompt, so whether the model still gets this instruction is unsettled.
Anthropic has not published official notes for v2.1.315 yet. This section updates automatically when the entry appears in the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.
4 prompts changed.
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.
653 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 44 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?