hertz -- WINDOW 6 END. Open 11:17:35Z. FOUR of six arms ran; the driver REFUSED at arm 5 and the last two are LABELLED HOLES, not silent omissions. BOX IS FREE FROM ME: post-census 0 builders, ci/analyzer/agent/unknown all ZERO, 156.1 GiB free, no survivors on any arm. I ran that census MYSELF because the driver died before its own -- a window whose driver exits early has no post-census, and "it probably ended clean" is not a box state. CONFIRMED. Q1 w6-cell GREEN, exit 0: "1 test run: 1 passed, 987 skipped". The zero-match guard I filed is satisfied -- exactly 1 selected, not 0, so this is a pass and not an empty filter wearing one. Q2 R-GATE CONFIRMED AT THE VALUES, not merely the colour. Hoisting the store out of broker.as_ref().map made a brokerless listener publish, and the cell failed at docshost.rs:671 with its own message: assertion `left == right` failed: a standalone fixture listener must not advertise its port as the daemon's surface left: Some(56025) right: None Exactly as filed: RED at the gate assert, left Some(), right None, with (a) and (b) passing first and (d) unreached. The cell CAN fail, so its green means something. Mutation reverted immediately; revert recorded work_blob == head_blob == 2c4099f0 and clean. Q3 ARM A CONFIRMED: 2 tests run, 2 passed. Both pre-existing cells pass under the fixed rig, so the TMP fix does what I said it does. Q4 POPULATION CONFIRMED AT 988, incidentally and soundly: every filtered arm reports its complement, 1 + 987 and 2 + 986, both 988. That is the count half of Q4. THE PASS HALF IS UNMEASURED because w6-lib-full never ran, so I am NOT claiming 988/988 -- the number I predicted is confirmed as the population and open as the result. TWO DEFECTS, BOTH MINE, AND THE FIRST ONE NEARLY COST A PROVEN FINDING. (a) ARM B IS A NON-MEASUREMENT, NOT A REFUTATION. It returned 2 passed. I had filed that ARM B passing means the TMP mechanism is wrong and I withdraw it. I am NOT withdrawing it, because the arm did not run the conditions it claimed: lane_run picks the TMP base from os.environ -- the PARENT's -- and I drove HERTZ_RIG_TMP_IN_REPO through env_extra, which only reaches the CHILD. Arm B therefore ran arm A's base and passed for arm A's reason. The knob was not connected to the thing it turns. Stated plainly because it is the more dangerous half: if I had read that PASS as my filed prediction told me to, I would have retracted a finding that is proven by measurement (git -C rev-parse --show-toplevel = the checkout with the bs-core remote; the same probe from the default TMP = "not a git repository"; both observed strings remote-derived) on the strength of a control that never fired. A prediction is only as good as the wiring of the arm that tests it. (b) THE DRIVER REFUSED AT ARM 5 ON ITS OWN ANCHOR. My mutation anchors are written LF; `git checkout --` in revert() re-materialized docshost.rs as CRLF, because git applies its eol conversion on checkout. Measured now: 761 CRLF, 0 bare LF, the DROP anchor in LF form counting 0 and in CRLF form 1. The refusal itself was the guard WORKING -- it wrote nothing and stopped rather than mutating a file it could not locate its anchor in -- and it cost the two cheapest arms rather than corrupting product source mid-window. THE VERIFICATION THAT SHOULD HAVE CAUGHT IT WAS BLIND BY CONSTRUCTION, and this is the instrument lesson worth the register: my revert check was `git hash-object` plus `git diff --quiet`, and BOTH NORMALIZE LINE ENDINGS. They reported an identical blob and a clean tree over bytes that had just changed. An oid check cannot see an eol rewrite. Same family as this morning's pipe-status defect and as IR-105's kin: a check that returns the answer you expect while measuring something adjacent to the question. BOTH FIXED, and verified against the now-CRLF file rather than against the file as I remembered it: - mutate() builds its anchor from the file in hand, translating LF to the file's ACTUAL eol at use. Both anchors now count exactly 1 under CRLF. - revert() records bytes / crlf / bare_lf beside the two oids, so "clean" is a statement about bytes as well as content. - the TMP-base rule is now ONE definition with two callers -- lane_run.priv_for, used by the runner that exports it and by the driver that records which base an arm actually got. Arm B sets the switch in the PARENT env, and the driver REFUSES to call arm B a measurement if the two bases match. Measured: armA base under AppData\Local\Temp (outside any repo), armB base under .spt/preserved (inside the checkout), differ TRUE. Tree is clean and the committed content is unchanged -- blob 2c4099f0 on both sides; the working file's CRLF is git's own normalization, not an edit. ASK: one SHORT window for the three unmeasured things, predictions already on file and not refiled: w6-rdrop Q2's second arm -- predicted RED at the final assert, left Some(), right None w6-armB-real Q3's negative control, switch now wired -- predicted both cells FAIL, registryhost at :1404 with ["github-com-bigscreenvr-spt-bs-core"] and projwriter at :842 with Some("spt-bs-core") w6-lib-full Q4's pass half -- predicted 988 run / 988 passed / 0 failed Estimated ~150 s of work against the 900 s shape; the only prediction that changed is that arm B's finally has a switch attached to it. START will ride the launcher as before, admission first. Your comment-only follow-up on the cell (process-global BOUND_DOCS_PORT, sound only under process-per-test, so a threaded runner is out of contract) is queued and not yet written -- I will do it after the measurements rather than mixing a comment edit into a window.