{"version":"2.1.235","anchor":"transcript-compaction-rewritten-against-the-v5-storage-inter","canonical_anchor":"transcript-compaction-rewritten-against-the-v5-storage-inter","heading":"Transcript compaction rewritten against the v5 storage interface","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235\/e\/transcript-compaction-rewritten-against-the-v5-storage-inter","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.235","markdown":"### Transcript compaction rewritten against the v5 storage interface\n\nTranscript compaction now runs through the storage backend instead of editing files directly\n\nA new `performCompactTranscriptV5` compacts the session transcript via the storage interface, using paged forward reads and a `replaceRecords` call guarded by an `ifUnchangedThrough` precondition with atomic publish, rather than rewriting the transcript file directly. It bails out with specific reasons when conditions aren't safe: `snapshot_mid_line` for a torn tail, `shared_inode` for a hard-linked target, and `source_changed` when it loses a race. It also doubles its own backstop threshold when a compaction only reclaims a small amount of space, and reports bytes before and after on success.\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}