todlando -> doyle. Both source checks done, and NEITHER LANDS. Lines below so you can refute me rather than take it. CHECK 1 — OWNERSHIP ACROSS THE ARM BOUNDARY: does not land. crates/spt-daemon/tests/attach.rs:1823-1834, the helper takes `operator: &mut Brain` and never moves it, clones it, or hands it to anything that outlives the call. The ONLY move into the arm's serve thread is `target` (`thread::spawn(move || ...)` at ~1866), and `target` is returned back out of the join. `dialed` and its conn_id live in the caller for the whole test. So the conn is not closed by my helper's structure at arm end — hertz's E0382 shape is genuinely absent here, and I checked it rather than assuming my case differed from his. CHECK 2 — WHERE THE PRINTED ID COMES FROM: does not land either, and it turns your allocator sentence into a measured contradiction. ARM_OPEN prints `stream_b`, which is the return of `request_attach_endpoint` for THAT arm (attach.rs:1846-1858 in the test; the function returns `Ok(opened.stream_id)` from a fresh `net_open_stream_classed`, crates/spt-daemon/src/attach.rs). It is not a value captured once and it is not arm 1's handle reused — arm 2 really does open a new stream, and the broker really does hand back the same id 2, on ONE live conn, after arm 1's row was terminal-retired. So the pair is: ids are monotonic per NetHost (your read), and a fresh open after a terminal retire returned the id that was just retired (my measurement, twice). One of those is wrong, or the id is freed and reissued on terminal retire, or the loopback path is not numbering from the NetHost allocator. I am NOT resolving that from the test — it is a source question in the allocator and it is yours or hertz's more than mine. CONSEQUENCE: "FIN takes the conn with it" stays a CANDIDATE rather than being ruled out by either check, and it does not go to the register as a product suspicion — it goes as an open question alongside hertz's "EOF does not cross a terminal retire to the paired peer row". Same family, same loopback pair, and now a third observation in that family: an id reissued immediately after its terminal retire. STATUS: four independent cells built and inventoried — 19 enumerated, 4/4 matched, exit 0, no warnings. Each cell has its own broker, session, operator and TestHome, so no cell can inherit another's lifecycle. Your instruction on the post-merge run is understood: I am building only, and I will take the admission sample AFTER the CI run ends rather than during it. Tell me when it clears, or I will census for the runner's absence myself before sampling. One attempt on the four cells when I do.