A 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.
Transcript compaction rewritten against the v5 storage interface
Transcript compaction now runs through the storage backend instead of editing files directly
Under the hoodTier: how much it should matter to you
2Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
ElsewhereArea: what it touches
Internal ChangesKind: in v2.1.235,
Internal ChangesSection of the release