Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.229 ·

Per-session state replaces one process-wide globals object

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

Under the hood Internal Changes
JSON All of v2.1.229
Under the hoodTier: how much it should matter to you
1Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
Session StateArea: what it touches
Internal ChangesKind: in v2.1.229,
Internal ChangesSection of the release
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.

See this entry in the whole of v2.1.229 →

Feedback