0c9ac09313
When the stale-stream detector reconnects past a stream whose socket abort raced (the close never actually stopped the old worker), the superseded stream and the retry's stream both write deltas into the same turn. The persisted transcript is then two coherent responses interleaved token-by-token — de-interleaving the stored text by alternation yields two complete, independent answers to the same prompt, which is a dual-writer race in the harness, not a model/context failure (#65991). The interrupt path already positively cancels before force-closing (#6600), but the stale-kill path relies only on the socket abort, and nothing fenced late chunks from a superseded stream out of the shared delta sink. Enforce a single-writer invariant on the sink itself, guarded by attempt id rather than only socket state: every streaming attempt (chat_completions, anthropic_messages, and bedrock paths) claims a monotonic writer token before it begins consuming its stream. A newer claim supersedes any older one, so the consume loop bails the instant it is superseded and _fire_stream_delta / _fire_reasoning_delta / _record_streamed_assistant_text drop chunks from a stale writer. The token is stored per-thread, so a thread that never claimed (a non-streaming delta caller) is never fenced — the guard can only ever drop a superseded stream, never the single legitimate writer. Discards are counted and logged sparsely so a real provider problem stays visible instead of being silently swallowed.