HERTZ -> DOYLE: v0.36 REDISPATCH-STALL FIELD VERIFICATION Date: 2026-07-16/17 UTC Nodes: HFENDULEAM + KITSUBITO VERDICT ======= PASS, with one explicit telemetry-sampling qualification below. Both incident nodes are running spt/broker_image 0.36.0. No user PTY froze during the controlled refresh. The pre-existing five PTYs stayed usable per operator report, and a held read-only Webbie PTY stream remained alive and continued producing bytes across the generation swap. 1. DEPLOYMENT ============= HFENDULEAM: spt update --restart -> Updated spt-core to v0.36.0; broker_image=0.36.0; broker_stale=false. KITSUBITO: spt update --restart -> Updated spt-core to v0.36.0; broker_image=0.36.0; broker_stale=false. Both nodes: stall_evict_count=0 after deployment. 2. POISON-WINDOW FINGERPRINT CENSUS =================================== HFENDULEAM v0.36 daemon telemetry was divided at the real brain generation boundaries. Generation 0 (cold): CONN_WRITE_POISONED = 0 transport-close poisoned=true = 0 transport-close timed_out=true = 0 Generation 1 (controlled refresh): CONN_WRITE_POISONED = 0 transport-close poisoned=true = 0 transport-close timed_out=true = 0 Contrast with the preserved v0.34 incident baseline: 33 CONN_WRITE_POISONED records at approximately 15,000 ms, followed by DISPATCH completion delays of 15-62 seconds. None recurred on v0.36 through cold startup, active workload, or refresh. Primary live log: C:\Users\decid\AppData\Local\spt-core\logs\daemon.stderr.log Preserved v0.34 baseline: C:\Users\decid\.omp\state\spt-endpoint\webbie-v034-live-stall-daemon.stderr.log.snapshot 3. STREAM-ATTACH CENSUS BY BRAIN GENERATION =========================================== Cold generation 0: first second after first brain event: 2 stream-sub-attach records (streams 2, 1) hosted controllers resumed later as their harnesses rebound. Refresh generation 1: BRAIN_RESUMED: re-established 6 session cursor(s): [1, 3, 4, 5, 2, 6] first second after BRAIN_UP: exactly 5 stream-sub-attach records: streams 5, 3, 1, 7 (four live controllers) and stream 36 (held Webbie viewer) controller/viewer bindings immediately identify session and endpoint: stream 5 -> session 6 endpoint webbie stream 3 -> session 4 endpoint doyle stream 1 -> session 1 endpoint lia stream 7 -> session 3 endpoint deployah stream 36 -> viewer session 6 endpoint webbie This is proportional to the live session/viewer set at swap time, not the historical stream-row population. Later attach records are attributable to new CLI/agent probes performed during this verification and are not startup replay. Key log lines: generation 1 begins at 394; BRAIN_UP 395; BRAIN_RESUMED 398; immediate recovered stream attaches 420-432. 4. DISPATCH IDENTITY BINDING ============================ Current v0.36 source contract emits the stable key set: DISPATCH_EV: gen= stream= family= attempt= conn= event= detail= Worker-outcome detail always appends endpoint=. Focused verification against the exact v0.36.0 tree: cargo test -p spt-daemon dispatch_event_carries_the_complete_key_set result: 1 passed; 0 failed. The test asserts generation, stream, family, attempt, conn, event, elapsed time, and endpoint=webbie, plus honest family=unclassified for pre-classification breaker events. Qualification: no natural v0.36 worker failure occurred during this healthy sampling window, so no fresh production DISPATCH_EV worker-outcome line was available. Two bounded probes were attempted: a WAN spool to an offline endpoint and a remote attach to a stale/no-live endpoint. Both took non-worker-failure paths and therefore correctly emitted no worker-outcome event. We did not manufacture a second 15-30 second live-session stall merely to create a failure log. The preserved v0.34 live incident already proved the event path under a real failure; the focused v0.36 test proves the enriched key contract. 5. CONTROLLED REFRESH WITH ACTIVE PTYS ====================================== Before refresh, a real read-only PTY attach was held open: spt rc --view webbie process pid 51284 capture size before refresh: 6,620 bytes Refresh: spt daemon refresh wall time: 0.63 seconds CLI: coordinator restarted in place; hosted sessions/connections not touched. After 15 seconds: held RC process still running: true capture size: 18,764 bytes (continued output after swap) broker_image=0.36.0 broker_stale=false stall_evict_count=0 The viewer reattached as stream 36 in generation 1, endpoint=webbie, without manual intervention. It was terminated only after the verification completed. Capture: C:\Users\decid\.omp\state\spt-endpoint\v036-webbie-rc-refresh.typescript Operator observation at the start of the test: all five pre-existing PTYs were working and none had frozen. No freeze was reported during or after the controlled refresh. 6. ADDITIONAL OBSERVATIONS ========================== - BRAIN_UPDATE_RESTART -> BRAIN_RESTART generation 1 -> BRAIN_UP occurred cleanly. - BRAIN_RESUMED restored six session cursors. - Every refresh-boundary transport-close reports poisoned=false, timed_out=false. - No broker stale image and no stall eviction. - The local SPT_DEV detach used for one bounded dispatch-failure probe was restored immediately; final subnet status is healthy with SPT_DEV and BIGNET present. REQUESTED RULING ================ Please adjudicate REDISPATCH-STALL v0.36 field verification PASS/FAIL and state whether the milestone is closed. Treat the fresh worker-outcome sampling absence as an explicit qualification, not hidden evidence: schema completeness is focused-test proven, while the live system remained healthy enough not to generate a natural failure event.