Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.229 Home All releases olderv2.1.228 v2.1.231newer
Claude Code v2.1.229

Per-session state replaces one process-wide globals object

Under the hood
Useful1 Signal3
Session State

Process-wide state moved into per-session objects, groundwork for isolating multiple sessions in one process.

What

Session and process state that used to live in a single mutable object read and written directly from anywhere is now held in per-domain classes with private fields and named accessors, so state can be isolated per session instead of being shared across the process. Nothing changes for you.

Details
  • Fields such as sticky betas, the current prompt id, capabilities, vim state and the last API request now go through methods like stickyBetas(), unlatchStickyBetas(), replacePromptCache1hAllowlist, primeSessionMessagesCache, notePlanFileWritten and recordThinkingTypeOverride, many created lazily.
  • The session record gained a host sub-object alongside its existing project paths.
  • Dozens of functions now take a session argument rather than reaching for the global.
Evidence

unlatchStickyBetas

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

See this entry in the whole of v2.1.229 →