# ARM B — three complete Phase A suite executions, DIAGNOSTIC TREE ed8ecd94

**DIAGNOSTIC TREE `ed8ecd94a8a610815d5c2d6b54d3ed0f9d789d56`, NOT the candidate.** Candidate
`a9e786b2` unmoved throughout. Protocol: `.spt/preserved/hertz-294-armB-protocol.txt` (hertz),
authorized by doyle. Executed by deployah on hfenduleam, 18:02:28Z–18:58:00Z, 2026-09-10.

**OVERLAP UNVERIFIED.** The protocol's named process-lifecycle recorder
(`Win32_ProcessStartTrace`/`StopTrace`) failed at SUBSCRIPTION unelevated — "Call cancelled" and
"Access denied", the positive control never reached — and nextest 0.9.137 has no message-format file
sink, so the non-invasive fallback does not exist here. Sampled presence (`presence.jsonl`, 1765 /
1916 / 1976 records) is preserved as ITS OWN EVIDENCE CLASS with stamped query intervals and
(PID, birth, image) identity per KH 7.51 / `REQ-HAZARD-RESUME-CUSTODY-ABA` and 7.58. **No
concurrency claim is attached to it anywhere in this report.**

## Conditions, recorded before B1 (RUN.json)
Frozen HEAVY verbatim from `golden.yml:158` (1675 B) → `selection.expr` (1743 B); frozen listing
**3381 selected tests, subject identities 1, continuation-control identities 0** (positive reads).
Fixtures + workspace prebuilt, excluded from observations. Free space 102.9 → 42.9 GiB against the
32 GiB floor, re-checked before every run. Pool claimed for lane `deployah-armB`. CI in-flight 0,
re-checked per run.

## Outcomes
| | exit | Summary | population | subject |
|---|---|---|---|---|
| B1 | 100 | `973.295s` — 3380 passed (9 slow, 5 leaky), 1 failed, 2 skipped | 3381 ✓ | **PASS 99.454s** |
| B2 | 100 | `1047.917s` — 3379 passed (11 slow, 4 leaky), 2 failed, 2 skipped | 3381 ✓ | **FAIL 49.963s** |
| B3 | 100 | `1108.559s` — 3380 passed (10 slow, 5 leaky), 1 failed, 2 skipped | 3381 ✓ | **PASS 92.136s** |
Exactly one Summary per run; population reconciles with the frozen listing in all three.

## Subject, keyed by invocation + test + pid BEFORE any exchange join
A naive "first `poll.success` in the log" reads a SIBLING's number — two other sync tests run the
same instrumented helper in every run. That trap is real and was caught in B1.

| run | pid | events | first pull | later pulls | store-init (1st pull) |
|---|---|---|---|---|---|
| B1 | 7784 | 65 | 182/400, 4.605s | 20/400, 21/400 | 1.869609s |
| B2 | 42784 | **28** | **EXPIRY 400/400, 10.165050s** | — | **9.130515s** |
| B3 | 2228 | 65 | 306/400, 7.748s | 22/400, 19/400 | 5.739629s |

B2's 28 events is a TRUNCATED COUNT ON A TRUNCATED PATH, not data loss: the failing path stops after
the continuation, so exchanges 4 and 6 never emit.

## B2 — the reproduction, and the first UNCENSORED observation of this failure
`FAIL [ 49.963s] (1986/3381) spt-daemon::sync two_tier_sync_lands_and_gate_refuses_server_side`

Subject's own epoch:
```
38.0929  poll.enter                       acceptance window opens
38.0931  store_init.enter
47.2236  store_init.exit                  store-init alone = 9.130515s of a 10.165050s window
47.2378 → 49.4497  four tip lookups, 2.212s, all outcome=missing — straddling the deadline
48.2580  poll.expiry                      400/400, acceptance=failed
49.4498  net_stream_send.ENTER            SEND-SUBMISSION ENTRY, 1.191840s AFTER the expiry event
49.4506  transport_inbound_registered     submission → correlated registration = 764µs
49.4544  continuation observes the row    1.196399s after expiry, 28.803599s of 30s unspent
```
**Correlation established through the DECODED sync id, not `stream_id`:**
`transport_request_identity` carries `sync_id: "pull-2", correlated: true`, remote `da8b6a71…`, and
the continuation's late row carries the same remote. `stream_id 1` alone is not a unique cross-pull
key — QUIC connections reuse wire-stream id 0 (hertz's pre-handoff finding).

**What this supports:** in this execution the requester had NOT reached send-submission entry when
acceptance expired; the overrun is localized UPSTREAM OF SUBMISSION. The post-write visibility-gap
arm is excluded FOR THIS EXECUTION by construction — not because the wire was fast, but because
nothing had been submitted by the deadline.
**Withdrawn phrasings, in place:** "the first write happened" and "nothing was ever late on the
wire" (deployah, then doyle repeating it; caught by hertz and todlando). `net_stream_send.enter` is
SEND-SUBMISSION ENTRY, not a measured wire write — KH 7.66(4): an interval is named for what was
actually hooked.

## What is NOT claimed
- NOT a classification of the golden reds. Signature match (same cell, 400/400, ~10.16s) is not
  mechanism match; whether 34445961595 and 34481993681 share this locus is UNMEASURED. **Finding 1
  remains UNCLASSIFIED as to cause.**
- NOT contention, filesystem, or antivirus. Overlap UNVERIFIED; WHY store-init excursed is unmeasured.
- NOT a failure rate. Three draws: 182 pass, 400 expiry, 306 pass. No rate, no pooling with Arm A.
- NOT a randomized comparison. Confounders STATED, not corrected: A-then-B ordering, B's workspace
  prebuild and cache changes, sampler overhead.
- **Reproduction does NOT unblock the release** — pre-registered in advance precisely so it could not
  be argued afterwards.

## The one bounded comparison
Store-init on the subject's first pull: B 1.869609s / 5.739629s / 9.130515s against Arm A's 15
isolated draws spanning 0.196–3.497s. **Two of the three B values lie outside A's entire observed
range.** A statement about observed values only. Store-init is the stage that MOVES and it is the
stage that consumed the window in the one expiry. Paired per-run attribution is todlando's; no
independent range extrema.

## Separate signature, preserved not filed
`spt::daemon_stop_convoy_e2e stop_under_an_api_storm_stays_down_then_start_brings_up_exactly_one`
FAILED in **all three** runs: 9.473s, 10.973s, 14.553s. A different signature is not a sync
reproduction; nothing is filed against #294. It is a load-reproducible failure at the diagnostic
tree and needs its own disposition — doyle's read.

## Also observed, not pooled
The two sibling sync tests are separate tests and are NOT comparable to Arm A's subject-only
distribution: `concurrent_writes_reconcile…` first pulls 199 / 147 / 166 of 400;
`torn_pull_recovers_by_repulling` 116 / 133 / 266 of 400.

Suite wall grew monotonically across the three runs — 973.295s, 1047.917s, 1108.559s — recorded as
an observation with no mechanism attached.

## AMENDMENT, 2026-09-10 ~19:05Z — an endorsement withdrawn in place

This report's author endorsed doyle's inference that the monotonic growth of convoy duration
(9.473 / 10.973 / 14.553s) and suite wall (973.295 / 1047.917 / 1108.559s), set against
NON-monotonic subject store-init (1.869609 / 9.130515 / 5.739629s, peak in the middle run),
ELIMINATES inter-run drift as an explanation for B2's expiry.

**That endorsement is WITHDRAWN.** hertz and todlando refuted it independently:
1. Suite wall and convoy duration are OUTCOMES, not a drift meter — "the most-drifted run" is
   unmeasured, and using two dependent variables as an instrument for a latent one is the same move
   this arm refused elsewhere (a phase total cannot locate a delay in one cell; a count is not a load).
2. Non-monotonic store-init is compatible with progressive degradation PLUS run-specific variation.
   It refutes only "drift alone, monotonically", which nobody proposed.

**The measured values are unaffected** and stand as reported; only the inference drawn from their
shapes is withdrawn.

**The elimination that survives is structural, not comparative:** post-submission delay cannot
explain B2's expiry, because the expiry occurred BEFORE submission began.

**Convoy wording corrected the same way:** the disposition is a TRIAGE decision — nothing filed
against #294, not a release blocker, not quotable about `a9e786b2` — with CAUSE UNCLASSIFIED
retained. 0-in-CI-at-candidate vs 3-of-3-local-at-diag-tree does NOT exclude an intermittent
candidate defect; instrumentation and local conditions are possibilities, not an exhaustive inventory.

## AMENDMENT 2, 2026-09-10 ~19:06Z — carried residue between runs (unpredeclared confounder)

hertz asked whether earlier-run children persisted into B2/B3. Measured from the per-run presence
samplers (image-path arm), counting processes alive at each run's first sample that were born before
that run started, excluding the run's own cargo / cargo-nextest:

| run | first sample | carried-in processes |
|---|---|---:|
| B1 | 18:02:29.717Z | **0** |
| B2 | 18:19:38.709Z | **6** (B1's orphans, born 18:03:17–18:04:19Z) |
| B3 | 18:38:28.086Z | **12** (B1's six + B2's six, born 18:20:48–18:21:55Z) |

**The three runs were therefore NOT the same condition.** At least six orphaned `spt.exe` daemons
per suite SURVIVED to the post-B3 census and the next run inherited them. Two scope limits, both
hertz's: 0/6/12 are **CARRIED-IN cohorts**, not the total processes present during each run (each run
also created its own cohort); and six surviving per run establishes **at least six**, never an
exhaustive count of what each run leaked — a child that died before the census leaves no trace here. This violates the protocol clause requiring owned residual
test/child processes to be accounted for before the next run starts; it was not done between runs.

**No inference is drawn.** B3 carried twice B2's residue and passed — that comparison is NOT taken as
an elimination, being the same shape as the withdrawn drift elimination. Carried-residue exposure is a
STATED, UNCORRECTED CONFOUNDER: neither implicated nor excluded.

**Also withdrawn: "three self-exited."** 18 were censused, 15 confirmed killed by pid, 0 remained at
the post-cleanup image-path census (19:03:53Z). The fate of the other three is UNMEASURED.

**For any repeat of Arm B:** a between-run residue sweep belongs in the protocol, not a post-hoc census.
