queue (volt): served_drift_check postscript -- the leathermint deploy is graded against its own revision (23/23 OK live, 22/22 cells, sweep 19/19); open set unchanged, 16 records before and after, index re-rendered in this commit

This commit is contained in:
volt committed 2026-10-20 19:29:27 +00:00
1 parent 898c8c7b43
commit 3a1a5e41e2
2 files changed
+24 -11

No files matched your search

+13
View File
@@ -10342,3 +10342,16 @@ Not closed: Q64's design question (zoomed worktable vs whole workshop) is still
5. **Two readerless counts retired while I was in the file.** `selftest_sweep.py`'s own prose said "eleven tools must refuse at rc 2" and "Fourteen tools" — both already stale, and both words, so no gate could see them: the exact defect class that file's docstring names. Replaced with count-free wording plus a note saying why the count is not written there.
Verification at this commit: `gate_blame.py --selftest` **21/21 rc 0**; `selftest_sweep.py --repo .` **18 tools, 18 OK, 0 fatal, rc 0**; `doc_command_check.py --repo .` **54 commands over 16 oracles, OK 54, rc 0**; `tool_map.py --check docs/TOOLS.md` **rc 0**. Full `verify.py` reads the check-in leg RED throughout, as it did before this landing and for the reason named in item 3.
**served_drift_check 2026-10-20 20:05Z (volt, Workhorse) — the leathermint deploy is now graded against its own revision instead of re-proved by hand.** No item opened or closed; the open set is unchanged (`Q37:5278` pipe, career-lane `Q53:7303` held for Alexander, `Q64`'s design question Alexander's). Appended at the foot; `docs/queue-index.md` re-rendered in the same commit.
1. **The gap, stated as a count of the same work done four times rather than a wish.** The served-bytes fact has been re-measured by hand in two days: Timmy's reply 45 lists six paths with sizes ("`/` 200/23,090 B, `/iso/engine.js` 200/31,088 B, ..."), my own 18:25Z block lists six more, and this lane's first act today was an eight-path `curl | sha256sum` loop over the same host. Four measurements of one fact is a missing instrument, not diligence -- and none of the four could disagree with the others, because all four were the same `curl`.
2. **What landed -- `tools/served_drift_check.py` (commit `c56e3be`).** One row per tracked file at `--rev`, graded against `GET <base>/<path>`, using `landing_check.py`'s exact vocabulary so no reader has to learn a third table: OK / DIFFERS / MISSING / HTTP_ERROR / UNREACHABLE / READ_FAILED / SKIPPED_LARGE. `DIFFERS` carries both lengths and both digests, because the direction of the staleness is the useful part. `UNREACHABLE` is deliberately not `MISSING` -- a host that did not answer is not a host that lacks the file, and collapsing them would let an outage read as a clean negative. `--base-url` also accepts `file://`, so a deploy directory can be graded offline, and rc 2 (never 0, never 1) when it cannot grade at all: not a git work tree, no `--base-url`, a scheme it cannot read, or a revision that tracks nothing under the prefix.
3. **The measurement, on the live host, this host, this tick.** `python3 tools/served_drift_check.py --root /var/www/leathermint --base-url https://leathermint.alexanderwhitestone.com` -> **23 files, 23 OK, 0 drift, 0 skipped, rc 0**. Every tracked file of the deploy tree, including `v2/index.html` and `v2/phaser.min.js` (a deprecated build still being served is a fact the tool reports rather than exempts) and `iso/camera.test.js` at 12,802 B / `f2a94229ab4a6509`, which is the receipt for the 19:20Z view-matrix landing.
4. **Self-proving, and one defect it caught in my own first draft.** `--selftest` is **22 cells** over a fixture git repo plus a real `http.server` bound to `127.0.0.1:0`: mirror-is-OK, stale-copy-is-DIFFERS with both digests, 404-is-MISSING, 500-is-HTTP_ERROR, refused-port-is-UNREACHABLE, `HEAD` vs `HEAD~1` grading different blobs, `--prefix` / `--exclude` / `--max-bytes`, the three rc-2 preconditions, and a `--json` round trip. The draft returned `1 if bad else 0` over a list, so a 22/22 green selftest exited **1**; the cells cannot see that and the sweep's `RUN_FAILED` would have. Fixed to `bad[0]`.
5. **Integration.** Both probe axes get their row (read-refusal: `--root {nope}`; malformed: `not-a-repo` -> rc 2 naming "not a git work tree"), so the tool cannot sit ungraded: `selftest_sweep.py` reads **19 tools, 19 OK, 0 fatal, rc 0**. `doc_command_check.py` reads **58 commands over 17 oracles, OK 58, rc 0** -- the four USAGE lines in the new docstring are graded, not decorative. `docs/TOOLS.md` re-rendered by `tool_map.py --write` (19 tools, 5 gate legs) and `--check` rc 0.
6. **What it does not claim.** Byte equality is not provenance: it says the host serves what this revision holds, not that the revision is correct or should be live. A file no revision tracks is invisible here by construction -- the untracked-file blindness this archive already paid for -- and the docstring says so rather than leaving it to be discovered. It does not grade rendering, interaction or the economy; those are `iso/camera.test.js`, `iso/sim.test.js` and the browser drive, and `Q64`'s composition question stays Alexander's.
Verification at this commit: `served_drift_check.py --selftest` **22/22 rc 0**; live leathermint **23/23 OK rc 0**; `selftest_sweep.py --repo .` **19 tools, 19 OK, 0 fatal rc 0**; `doc_command_check.py` **58/58 rc 0**; `tool_map.py --check` **rc 0**. `verify.py`'s check-in leg reads RED for the reason recorded at `a013842` -- zephyrus's two 2026-10-19 files, unchanged by this landing and not this lane's to rename.
— Volt
+11 -11
View File
@@ -56,7 +56,7 @@
| 46 | Q44 | 6162-6705 | 88496 | opening | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — "extend the redirect … | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot |
| 47 | Q48 | 6706-6825 | 15123 | opening | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree |
| 48 | Q49 | 6826-7593 | 92050 | opening | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13 |
| 49 | Q45 | 7594-10344 | 475566 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. |
| 49 | Q45 | 7594-10357 | 479934 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. |
## Ids with no `## ` heading
@@ -71,9 +71,9 @@ Opened as records inside another section. `line` is the record's own opening lin
| Q50 | 6990 | 6990 | 46 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q51 | 7106 | 7106 | 37 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q53 | 7292 | 7246 | 141 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q53 | 7292 | 7246 | 142 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q63 | 9918 | 9909 | 17 | Q45 | BULLET+BOLD | BOLD-LEAD |
| Q64 | 10308 | 10308 | 3 | Q45 | BULLET+BOLD | BOLD-LEAD |
| Q64 | 10308 | 10308 | 5 | Q45 | BULLET+BOLD | BOLD-LEAD |
**Not in this document.** Ids the prose corpus names that the queue has never mentioned (`checkins/`, `replies/`, `recoveries/`, `audits/`, `docs/`, the top-level documents; `tools/` excluded). That set moves with the prose, not with the queue, so embedding it here would make `--check` go RED for a reason that has nothing to do with the queue being current. It is reported on demand: `python3 tools/queue_index.py --outside`.
@@ -218,7 +218,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD",
"id": "Q53",
"line": 7292,
"refs": 141,
"refs": 142,
"section": "Q49",
"shape": "BULLET+BOLD"
},
@@ -236,7 +236,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD",
"id": "Q64",
"line": 10308,
"refs": 3,
"refs": 5,
"section": "Q45",
"shape": "BULLET+BOLD"
}
@@ -246,9 +246,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
"end_line": 8,
"line": 1
},
"queue_bytes": 1367827,
"queue_lines": 10344,
"queue_sha256": "2f90d1e2a51aeec513087435b7219774db627059747d530ee5b7496e07fc4c6c",
"queue_bytes": 1372195,
"queue_lines": 10357,
"queue_sha256": "357a2dd252bd5deffc419aaf50abf40bdf152cc8f1eab745b2eabd11798331c1",
"sections": [
{
"bytes": 3139,
@@ -827,11 +827,11 @@ The block below is the parse this document renders, byte for byte. `--check` com
"title": "The runtime-resolved root's live write path: name it, reproduce it, then close it"
},
{
"bytes": 475566,
"end_line": 10344,
"bytes": 479934,
"end_line": 10357,
"id": "Q45",
"line": 7594,
"lines": 2751,
"lines": 2764,
"role": "opening",
"role_detail": "",
"status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.",