d2d470e321
The concurrent-compression regression asserted the parent ends with exactly one child. Under heavy CI write contention the lock winner's child create_session can exhaust its SQLite retry budget, and _compress_context deliberately rolls the live id back to the still-indexed parent rather than orphaning a child (the create-failure rollback in agent/conversation_compression.py). That safe rollback leaves zero children and is correct — so the exact == 1 assertion flaked under load. Assert the actual invariant instead: children <= 1 (a 2+ fork is the bug Damien's incident is about), rotated <= 1, and rotated == n_children. A mutation check (force the lock to always acquire) confirms the relaxed assertion still fails hard on a real 2-child fork.