{"version":"2.1.228","anchor":"session-state-moved-out-of-module-globals","canonical_anchor":"session-state-moved-out-of-module-globals","heading":"Session state moved out of module globals","tier":"internal","area":"Session State","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228\/e\/session-state-moved-out-of-module-globals","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.228","markdown":"### Session state moved out of module globals\n\nLots of shared state now lives per session, so two sessions in one process stop stepping on each other.\n\n**What**\n\nMCP wiring, interaction and idle tracking, model overrides, refusal-fallback latches, command and Slack completion caches and artifact notice coalescing now live in classes held in a WeakMap keyed by a session root instead of shared module-level variables. Several `reset()` methods went away, since discarding the root now discards the state.\n\n**Evidence**\n\n`refusalFallbackLatchOriginRequestId`\n\n- Area: Session State\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 3\/5"}