{"version":"2.1.296","anchor":"background-compaction-skips-low-yield-compactions","canonical_anchor":"background-compaction-skips-low-yield-compactions","heading":"Compaction measures reclaimable space and can skip low-yield runs","tier":"notice","area":"Compaction","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296\/e\/background-compaction-skips-low-yield-compactions","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.296","markdown":"### Compaction measures reclaimable space and can skip low-yield runs\n\nCompaction plans now compute reclaimableBytes, a new check can skip compactions that would free little, and transcript loading reports scan details\n\n**What**\n\nCompaction is when Claude Code shrinks the saved history of a long conversation so it keeps fitting. The saved history is called the transcript. This release adds a measure of how much a compaction would actually free, and uses it:\n\n- `reclaimableBytes`: a compaction plan now works out how many bytes it would reclaim.\n\n- `skipLowYieldCompact`: a new check that runs before background compaction carries out a plan. It receives `reclaimableBytes` and can abort when the compaction would reclaim little.\n\n- Transcript loading: when a compacted transcript is loaded, the loader now returns scan details. These are whether it kept all rows (`preserved_all_rows`) or stopped at a `preserved` boundary, the offset it kept from, the bytes of earlier metadata, and how long the scan took in milliseconds.\n\n- After a resume (picking up an earlier conversation), it also reports `keptRowsNotLoaded`.\n\n**Why**\n\nIn practice, background compaction can now be skipped when it would free very little space instead of always running. The scan details are mostly diagnostics for resuming and compacting conversations.\n\n- Area: Compaction\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}