hertz - WINDOW CLOSED. END 2026-09-11T10:01:24Z. Open 09:59:30Z -> 10:01:24Z, 114 seconds against an 8820 s cap. Box FREE; todlando's window is unblocked. Post-census ci=0 analyzer=0 agent=0 unknown=0, zero survivors, pool growth 0 on every producer (the inventories had already built everything). COUNTS, per producer, run/passed, with the matched names: 2 spt-bins-run EXIT 0 5 run, 5 PASSED, 776 skipped. detach_keybind_semantics / detach_prefix_spans_chunks / key_event_step_detach_sm / viewer_byte_detach_keeps_controller_and_child / viewer_event_detach_keeps_controller_and_child 3 webserve-e2e-run EXIT 100 5 run, 4 passed, 1 FAILED. passed: production_listener_routes_nodes_docs_and_live_registry_references / production_listener_exposes_only_the_adapter_web_root_through_both_urls / production_listener_redirects_directory_roots_before_serving_relative_links / the_adapter_docs_facet_serves_over_the_production_listener. FAIL: subnet_node_labels_shadow_only_the_docs_compat_alias_while_members 4 attach-push-run EXIT 100 1 run, 0 passed, 1 failed - MEASURES NOTHING, see below 5 cross-node-run EXIT 100 1 run, 0 passed, 1 FAILED. a_peers_url_is_served_by_its_owner_through_the_local_listener INVENTORIES, whole-target, both-directions diff: webserve_e2e 5 population / 5 selected; the two spt e2e binaries 2/2; both EMPTY in both directions. spt --bins: 62 rc cases present, 5 selected, 57 present_but_unnamed - that is INVENTORY for this allocation, not coverage, and it is now written down instead of hidden behind a filter-match count. named_but_absent was empty everywhere: no filter of mine pointed at a case that does not exist. PRODUCER 2 IS GREEN AND THE THREE-SHA RED IS CLOSED. viewer_byte_detach_keeps_controller_and_child PASSED in 1.058 s. Predictions 9-13 all hold. The observer deletion at 1fa4858e was the right fix, and absence-by-consequence executes. PRODUCER 3: THE RED IS MINE, AND MY PREDICTION WAS WRONG ON THE EXACT POINT I ARGUED. Prediction 2 said GREEN, reasoning that the case's redirects are BARE-NODE ones and NOT the node-root-to-docs arm. webserve_e2e.rs:266 asserts GET /llms.txt/ == 200. A node root with an EMPTY remainder IS the #301 arm (webserve.rs:778-781) and now answers 302 -> /llms.txt/docs/. I classified the case by its other redirects and never read that line; my 4823ae5d sweep missed it for the same reason. Stale assertion, mine, test-side. I read the five http calls the panic MASKED before fixing anything: :267 docs facet, :270-271 a bare-node redirect that is asserted but never followed, :277-280 reserved facets, :283-287 two 404 comparisons. None names a node root with an empty remainder, so :266 is the only stale line in the case and the fix is not hiding a second one behind it. FIXED at 4ec34d1c, test-only, one hunk: 302 plus Location asserted, then followed to 200, so the case's actual claim (local-node precedence above the root-file exception) is carried through the redirect rather than through a bare status. UNCOMPILED AND UNRUN - written outside the window, and it stays a prediction until a window measures it. PRODUCER 4 MEASURED NOTHING, and the defect is in my producer, not in the case. It failed at tests/common/mod.rs:267 on a MISSING FIXTURE: mock-session.exe absent, pre-build cargo build -p mock-adapter --bin mock-session. mock-adapter is a DIFFERENT package - cargo guarantees a package's own bins to ITS integration tests and nothing about a sibling's - so nothing ever built it and the case never reached its subject. Prediction 6 is NEITHER confirmed nor refuted: LABELLED HOLE. I have added a mock-session-fixture pre-build producer so the next window measures the case instead of my omission. Note that my "lowest confidence of the set" was aimed at the wrong risk - I worried whether a pipe reaches rc's byte reader, and the run never got near it. PRODUCER 5 IS A PRODUCT FINDING, and it is the one worth your time. FAIL at webserve_cross_node_e2e.rs:592 - Location was /hfenduleam/docs/, expected /rig-b/docs/. Arms 1-5 passed first, so the peer proxy, the range arms and the 404 carry-back all work; only the node-root REDIRECT is wrong. Chain, every step read in source, no inference: 1. A resolves /rig-b/ -> peer_arm (webserve.rs:762), empty remainder -> Proxy (webserve.rs:607-608). 2. A forwards the ORIGINAL path /rig-b/ verbatim (docshost.rs:343-344). 3. B rewrites it into its OWN namespace: under_own_prefix("/rig-b/", "HFENDULEAM") -> /hfenduleam/ (webproxy.rs:161 and 270-282). Deliberate, documented at webproxy.rs:158-160, and pinned by its own unit test at webproxy.rs:847-853. 4. B resolves /hfenduleam/, takes the LOCAL branch, empty remainder, and mints the Location from local_node (webserve.rs:778-781) -> /hfenduleam/docs/. Correct for B: that IS its namespace, and minting from local_node is what canonicalizes case for a local caller. 5. A relays the owner's headers VERBATIM (docshost.rs:386-389). There is NO inverse of under_own_prefix anywhere on the response path. CONSEQUENCE: a cross-node 302 hands the client a Location in the OWNER's namespace. On a two-machine subnet the requester cannot resolve it. On this ONE-BOX rig it is worse than a refusal - both homes derive the same os_hostname, so /hfenduleam/docs/ resolves on A's own listener and the client is silently served the WRONG NODE'S BOOK with a 200. WHY IT SURFACES ONLY NOW: before #301 a node root served 200 directly, so no proxied response carried a PATH in its headers, and bodies are namespace-free. The missing inverse was presumably always there; my node-root redirect is what made it observable. Introduced-by-exposure, not introduced-by-me, and I claim neither without your ruling. LAYER, my recommendation, and it is A's not B's: B cannot know the label A used, and webproxy.rs:158-160 states why it serves under its own prefix. The inverse belongs in A's relay - docshost.rs proxy(), where label is already in hand at :371 - rewriting the FIRST path segment of a path-only 3xx Location back to target.node_label. The alternative, carrying the requester's label on the wire so B echoes it, is a protocol change for something A can already do locally. NOT MINE TO FIX: product. Routing to you for triage. I have written no product source and will not. The test is RIGHT and I would not repin it - it demands the Location be resolvable in the requester's namespace, which is the actual contract. AGAINST MY OWN FILING, the correction that matters: prediction 7 said GREEN and described the mechanism as "follow a 302 to the OWNER's docs". That sentence is TRUE of what happened and I still called it green - "the owner's docs" is ambiguous between the owner's namespace and the requester's, and the defect lives exactly in that ambiguity. A vague prediction cannot be refuted, so it measured nothing. That is my own precision rule failing at my own hand, and it is the second thing today my filing got wrong by classifying instead of reading. SCORE, plainly: 9 predictions offered. 5 confirmed (producer 2's five). 1 refuted and fixed (3). 1 refuted and routed (5). 1 unmeasured through my own rig defect (4). 1 too vague for its confirmation to have been worth anything (7, the same case as 5). twohost_web.rs stays a LABELLED HOLE - compile-gated only here, closed by the #297 two-machine leg in W2, no prediction offered. ADMISSION INSTRUMENT, for the register: my first sample was UNSOUND and I caught it only because both positive controls read FALSE. A "cargo --version" control and a test-binary "--list" control are both correct subjects, and both EXITED before their filter could sample them. A control that does not outlive the poll certifies nothing, and the zero it "confirms" is the same clean zero a broken filter returns. Repaired to controls that live about 7 s wearing the property each filter keys on - the NAME for the name-keyed census, the DIRECTORY for the path-keyed one - both TRUE on the re-sample at 09:58:58Z. Evidence: admission.py, admission-61bfd85c.json. OWED AND UNCHANGED: the two traceable-reqs findings at this tip are still not mine to close at this tip. Your 0.4.0 measurement is read and needs nothing from me until you name the v0.4.1 tag for the two pins. NEXT, on your word: one window, sequential - mock-session-fixture, then producer 4 for the first real measurement of prediction 6, then producer 3 re-run at 4ec34d1c. Producer 5 needs your triage before I touch anything near it. Predictions for all three filed before the build.