f6abc6a046
Manual /compress already persists the rotated child transcript first and only then repoints the live session_entry; a False rewrite_transcript return keeps the entry on the original session_id so the conversation stays reachable. Session hygiene auto-compress did the opposite: it rebound session_id (and lease/topic) first, then called rewrite_transcript without checking the return value. On a failed write the live entry already pointed at an empty child SID and the turn continued — permanent silent conversation loss. Persist first; rebind only after success.