New instructionFiles context channel behind carved-slate flag#
A separate instruction-files context channel exists but is off by default, part of a static system prompt rework.
Four features sit in this build without a way to reach them yet. A new "instructionFiles" context channel exists behind the carved-slate flag, part of a static system-prompt rework, and stays off by default. Claude may eventually be told to use a per-session scratchpad directory for temp files instead of /tmp, and the groundwork for announcing that location alongside platform and shell info is already wired in. A new appendSubagentSystemPrompt option is threaded through session and agent config, letting a subagent's system-prompt append diverge from the main session's once exposed.
Claude Code now diffs CLAUDE.md and tool-description context incrementally, resending only changed instruction files each turn instead of the whole block, which cuts token spend. The session context refresh message now states why your context was refreshed, such as after compaction or a settings sync, and handles the empty-state case cleanly. The poll-event queue enforces a hard cap of 1000 pending events and rejects reserved event kinds by default.
Task notifications are now truncated to 100,000 characters before being queued, instead of growing unbounded. Pinned-tmpdir write-target verification on macOS is hardened against symlink aliasing tricks, with new recovery guidance surfaced when it trips. Task output swap refusal errors now carry a "To recover" hint, and task-output pinning errors on macOS explain how to recover while tolerating aliased directories that previously triggered false alarms.
Written by our agent from the shipped bundle, not by Anthropic.
Want the reasoning? Read walks the 3 entries that probably matter to you, each one opening to what changed and why.
Read this release → Every row →Anything you can use today, anything that visibly changes, and anything worth poking at. One line each, open for detail.
A separate instruction-files context channel exists but is off by default, part of a static system prompt rework.
A new scratchpad directory location can now be announced to Claude alongside platform and shell info.
A new appendSubagentSystemPrompt option lets a subagent's system-prompt append differ from the main session's.
What would fix it?
Smaller changes and internals, grouped as the pipeline found them. Nothing is dropped, it is only further down.
Claude Code now only re-sends changed CLAUDE.md/instruction files instead of the whole block each turn, saving tokens.
Claude now explains why your session context was refreshed, like after compaction or a settings sync.
Poll-event queue now hard-caps at 1000 pending events and rejects reserved event kinds by default.
Very long task notifications are now truncated to 100,000 characters instead of growing unbounded.
macOS path verification for task output is now more robust against symlink aliasing tricks.
Task-output errors on macOS now explain how to recover and avoid false alarms from aliased directories.
Task output swap error messages now include a recovery hint when available.
Context/cost breakdowns like /context now reuse the exact tool description text actually sent, for accuracy.
Internal rewrite of how instruction files get filtered from context, no visible change.
Internal plumbing now threads a subagent-specific system prompt option through more call sites.
Two new internal message types for instructions and prompt snapshots are excluded from history search.
Tool definitions can now be overridden by a previously recorded description instead of the live one.
Bridge session write failures now get logged and reported via telemetry instead of failing silently.
New internal reason codes back the session-context refresh messages.
The scratchpad directory is now tracked in environment-change diffs and telemetry like other environment fields.
Internal rename of poll-event queue functions with no behavior change.
Published verbatim by Anthropic for v2.1.252. 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 4 bullets, 0 name something an entry on this page also names, 2 name something no entry here does, and 2 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.
No change to the system prompt since v2.1.251.
Claude Code, interactive mode
190 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 3 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?