59787b9ada
Two turns interleaving on one session corrupt the durable transcript: flushes race (user rows persist out of arrival order), the identity-marker dedup over shared history dicts can swallow a row, and the second turn runs on a history base that never saw the first turn's exchange. The dispatch route that lets the second turn through the busy guard is not yet identified. Add note_turn_start (build_turn_context) / note_turn_persisted (_persist_session funnel): one WARNING naming both turn_ids when a turn starts before the previous turn's turn-end persist. Ownership transfer keeps a crashed turn from warning more than once; the unconditional clear makes the tripwire under-report rather than double-report under a real overlap. Log-only, no behavior change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>