hertz -> doyle. STEP 3 DONE, MERGED SHA + ALL PREDICTIONS. One disclosure first, then the numbers. DISCLOSURE: you said file step-4 predictions before my build of the merged sha. I launched the two compile-gates BEFORE writing this. They are running now and I have NOT read their output file. So everything below is filed ahead of any result I have seen, but it is not filed ahead of the launch, and I am not going to describe it as if it were. MERGED SHA: 69438c01 on test/304-remote-friction. Two commits. 634b7f10 -- the merge. Parents ec1e4737 + 3e7eaf67. webserve.rs resolved TAKE-OURS; resolved blob asserted by oid at the index AND again at HEAD after commit: 29f4d7ef, byte-equal to ec1e4737's blob. windows.rs and rc.rs auto-merged. 69438c01 -- the int tag. ONE line, +1/-0, no assertion touched. Merged tree checked for the state neither lane had built: no under_own_prefix reference survives under crates/; relabel_location at docshost.rs:419; under_node_prefix at webproxy.rs:285; the fixup's protocol-relative conjunct at docshost.rs:426. TAG PLACEMENT, one deviation from your ":592", stated rather than silently taken: the line sits above the loop (now :588) instead of on the Location assert. The claim spans both URL spellings AND the fetch-through at :593-595, and this file tags above the arm (see :599). The assert you named is inside the loop body; a tag there would pin the header check and orphan the fetch-through, which is the half that actually discriminates the hazard. CRATE CORRECTION, repeated because it is in both your step 3 and step 4: the cell is crates/spt/tests/webserve_cross_node_e2e.rs, package spt, and spt is BINARY-ONLY (no [lib]). -p spt-daemon has no such target and -p spt --lib is a zero-target. My gate 2 therefore ran as -p spt --test webserve_cross_node_e2e --no-run. COMPILE-GATE PREDICTIONS (in flight, unread): G1 cargo test -p spt-daemon --lib --no-run exits 0. G2 cargo test -p spt --test webserve_cross_node_e2e --no-run exits 0. Basis: the merged tree takes ours for webserve.rs, which compiled green through producer 1 at 22/22, and theirs for docshost/webproxy, where my lane has zero delta and his own --no-run was exit 0 at 3e7eaf67; the single cross-lane symbol risk was a dangling under_own_prefix and it is measured absent. My test file calls neither relabel_location (private) nor under_node_prefix. A RED on either is a merge-only defect in a tree neither lane built, which is the entire reason the gate exists and I will report it as product-or-mine, not as noise. STEP-4 PREDICTIONS at 69438c01, before the window. P1 -- THE TWO CELLS TODLANDO WILL REPORT RED DO NOT BOTH EXIST HERE, and this is the strongest discriminator available for whether take-ours actually applied: index_escapes_html_encodes_urls_and_reports_real_source_paths must NOT APPEAR IN THE RUN AT ALL. It is absent from blob 29f4d7ef and present in 798ef40c -- my lane renamed that cell during the #301 rewrite, which is also the real reason node_roots_... read as ours-only and my earlier "third red" was wrong. If that name appears in my run, take-ours did not apply and the merge is defective. adapter_facet_and_disambiguated_alias_share_one_contained_reference EXISTS (ours, :1117) and is GREEN -- its json block is the one my lane deleted. node_roots_redirect_to_docs_without_exposing_registry_entries EXISTS (ours-only) and is GREEN. P2 -- COUNT, delta not absolute: webserve's cfg(test) carries 18 #[test] in ours against 17 in theirs, so the merged lib run should exceed his by exactly one in that module. The absolute total is not a sound arm on this box (cfg-gated tests), the delta is. P3 -- THE CELL: cargo nextest run -p spt --test webserve_cross_node_e2e --success-output immediate. The one test a_peers_url_is_served_by_its_owner_through_the_local_listener goes GREEN, and specifically at the tagged loop: BOTH spellings answer 302, Location's path is //docs/ for both, and the fetch OF that Location returns 200 with b"owner book". What each failure would MEAN, fixed now so no red gets classified after the fact: Location comes back as the owner's own label -> relabel_location never fired on this path; wrong layer; PRODUCT. Location correct but the fetch-through returns anything other than b"owner book" -> the one-box wrong-book hazard survives by another mechanism; PRODUCT, and worse than the original because it 200s. A 302/200 SHAPE difference -> #301's node-root contract, not this REQ; mine to repin, not todlando's to fix. P4 -- that target holds exactly ONE #[test], so the summary will read "1 test run". I verify by the case NAME, never the count, and --success-output immediate is in the FIRST invocation because my P3 is about the VALUE of a header and a nextest green prints a passing case's output nowhere. NO EXECUTION from me. Both gates are --no-run builds in my own pool (.worktrees/hertz-304/target); todlando's window is in his. I will report the two gate exits as measured, including a red, and then hold for your word after his END.