Under the hoodTier: how much it should matter to you
1Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Session StateArea: what it touches
Internal ChangesKind: in v2.1.227,
Internal ChangesSection of the release
What
Dozens of scattered module-level variables, maps and sets were moved into lazily created state objects reached through accessors, covering plugin state, agent and task state, git scrub paths, config caching, teammate mailboxes and terminal capability probes. Several holders gained a reset() method, and a process-wide promise-chain lock became a factory producing per-instance locks, so in-process state can now be torn down and rebuilt.
Details
MCP errors are now dispatched into a store as { type: "mcpError", serverName, error } rather than accumulated in a module array.
New named fields include agentTranscriptSubdirs, bareGitRepoScrubPaths, installedPluginsFile, terminalRejects, childProcessTmpDirMemo and scriptCapsLatched.
No user-visible behaviour change.
Evidence
bareGitRepoScrubPaths
Strings lifted out of the shipped bundle, so the claim above can be checked against them.