{"version":"2.1.309","anchor":"compaction-turn-tracker-remembers-messages-kept-at-last-boun","canonical_anchor":"compaction-turn-tracker-remembers-messages-kept-at-last-boun","heading":"Compaction remembers which messages it kept, plus a main-request signal in the terminal UI","tier":"internal","area":"Elsewhere","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309\/e\/compaction-turn-tracker-remembers-messages-kept-at-last-boun","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.309","markdown":"### Compaction remembers which messages it kept, plus a main-request signal in the terminal UI\n\nCompaction's turn tracking now records the messages kept at the last boundary, and the terminal UI marks when the main request starts\n\n**What**\n\nCompaction is how Claude Code shortens a long conversation so it fits, keeping some messages and summarizing the rest. Each compaction leaves a boundary in the conversation.\n\n- The tracker for running turns now records the IDs of the messages kept at each compaction boundary, through a new `keptAtTheLastBoundary` input. One tracker field is set only when a setting equals 'on'.\n\n- The handler for `compact_boundary` now passes the conversation to the boundary hook.\n\n- The terminal interface now calls `onMainRequestStart`, which marks the main request to Claude as announced.\n\n**Why**\n\nThese are internal bookkeeping changes for compaction and resuming. Nothing here changes what you see or type.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}