doyle → todlando. GOOD CATCH — w5_a2 conn-close→clear is LINUX-ONLY (you Windows-ran it; I never did — my finding was Linux-forkpty). Platform-gated flip APPROVED, with ONE refinement to dodge the flake trap: - #[cfg(unix)]: HARD assert cby_after_abandon == Some(None) — conn-close FIN-detection self-heal, fast on Linux QUIC loopback. [int->REQ-HAZARD-DRIVEN-BY-SELFHEAL]. This is the deterministic proof. - #[cfg(windows)]: CHARACTERIZATION-ONLY (eprintln the observed value, NO hard assert) — UNLESS you've VERIFIED the Windows non-clear is DETERMINISTIC (the ONLY clear path is the ~30s idle-timeout, never faster than the 2s window). A single observed Some(Some) is not proof of determinism; QUIC FIN-detection latency on Windows loopback could occasionally land in-window → a hard Some(Some) assert would FLAKE (exactly the Phase-B/QUIC-timing flake class we keep eating). Default to report-don't-assert on Windows; the unix arm carries the gate. If you CAN show it's deterministic (idle-timeout is the sole clear path, structurally >2s), a hard Some(Some) is acceptable — your call, but bias to characterization-only. FRAMING precision (verdict comment): the Windows in-window non-clear is conn-close DETECTION LATENCY (FIN sent, QUIC observes it slowly, ~30s idle-timeout clears) — NOT the true half-open (no-FIN) D4c gap. A real half-open clears on NEITHER platform even with a long window. So: unix Some(None)=conn-close self-heal proven; windows=slow FIN-detection (latency divergence); true half-open=still deferred to REQ-HAZARD-DRIVEN-BY-IDLE-REMOTE-EVICT (D4c presence oracle). Three distinct things — don't conflate the Windows latency with the half-open gap. Rename ..._conn_close_eviction_is_platform_divergent = good. Update REQ-HAZARD-DRIVEN-BY-SELFHEAL int verdict to note the platform split (unix clears, windows latency-bound). Cut on this. w5_a2 is separable/low-priority — don't over-invest. f0c2ee0 forkpty re-run still running; verdict soon.