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

Claude Code v2.1.246 ·

The interactive session was split into controllers and stores

The interactive session loop was reorganised into controllers and stores with no behaviour change.

Under the hood Internal Changes
JSON All of v2.1.246
Under the hoodTier: how much it should matter to you
1Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
Session LoopArea: what it touches
Internal ChangesKind: in v2.1.246,
Internal ChangesSection of the release
What

The main interactive loop was reorganised internally with no behaviour change identified. It is the largest single rework in this release, which matters mainly because it touches nearly everything the prompt does.

Details
  • Prompt draft state (text, mode, pasted contents, stash, vim editing, overlay flags) moved into a dedicated store with its own methods instead of living in component state.
  • The three remote transports (ssh, direct and ccr) now feed one shared sink object rather than each wiring up its own transcript and turn callbacks.
  • Session resume, conversation reset, background queries, idle notifications and cost-threshold prompting all moved into separate controller classes.
  • The response stream now surfaces tool progress, and the old mount/unmount debug logging was dropped.
Evidence

[REPL:unmount] REPL unmounting

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.246 →

Feedback