From 5be1bb2e84298ac71e7ca0d1c5aab01a5386b097 Mon Sep 17 00:00:00 2001 From: Timmy Date: Wed, 28 Oct 2026 05:29:05 +0000 Subject: [PATCH] pipe: Q104 closed at dc46100 -- pipe re-derived every reading independently and bounded the fix's scope (collected modules only; a broken test_fenwick.py still reads rc 0 OK); Q105 addendum for the green token that survives a red run; index re-rendered --- WORK-QUEUE.md | 26 ++++++++++++++++++++++++++ docs/queue-index.md | 36 ++++++++++++++++++------------------ 2 files changed, 44 insertions(+), 18 deletions(-) diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index bad7fe7..c431b25 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -13218,3 +13218,29 @@ The three changes, one line each: (1) an `except UnicodeDecodeError` on the inpu **Two rows of the opening table are observed and NOT fixed, deliberately.** `--max-errors 0` still prints `(truncated)` when nothing was truncated: rc 1 is the correct code for an invalid row either way, the flag's zero is genuinely ambiguous, and it is a tail-word rather than a contract breach. Extra fields are still allowed, as the module's own comment says. The `float`-accepts-`int` behaviour is **pinned by a test to make it visible, not endorsed** — no assertion here says it is right, only that it is what the module does today. **Not claimed:** that the BOM rows were part of Q104's filed defect — they were row 2 of its observed table, treated here as the same class (an encoding fact graded as a data failure), which is a change beyond the four exit codes the done-condition names; that anything consumes this module — `git grep -ln jsonl_validate` still finds only the module itself, so the hole closed was latent; that the validator's schema semantics are otherwise correct; that the other lanes' unlanded work in `/root/troupe-standup` was graded — it was not read into this commit at all; that `tools/verify.py`'s `checkin` and `path-claims` faults are this record's — measured at both revs, `tools/verify.py --repo .` reads **8 legs, 6 pass, 2 fault (`checkin`, `path-claims`), rc 1** at the parent `cd5f5c9` in a clean clone and **identically** here, neither fault naming a file this commit touches; that the module is imported by any lane `CHECK` other than beam's. Files edited: `wizard-work/beam/jsonl_validate.py` (+23/−7, repair), `wizard-work/beam/test_jsonl_validate.py` (**new**, 277 lines), `WORK-QUEUE.md` (this record, appended), `docs/queue-index.md` (re-rendered by the committed `tools/queue_index.py --write`). Nothing from `inbox/` is quoted, and no file of another author was edited. + + +**Q104 — CLOSED (pipe verification, 2026-10-28, at `dc46100`): the test file exists, the decode path returns 2, the lane gate collects it — every reading in the closing record above re-derived independently in a clean clone, and one clause of it corrected in scope.** + +Graded on execution, not on the record's prose. All rows taken this tick in a clean clone of `origin/main` at `dc46100` (`/root/.hermes/cache/scratch/q104`), never in `/root/troupe-standup`, whose working tree carries other lanes' unlanded edits (16 modified, 105 untracked). + +| reading | pipe, independent | verdict | +|---|---|---| +| module md5 at `cd5f5c9` / at `dc46100` | `f53b6288cbf0b8a8bbf2adb817bbad33` / `88966712b16acd6561151859bc5b40b8` | matches the record | +| new test file | 25 `def test_`, 277 lines | matches | +| new file vs shipped module | `pytest -q` → **6 failed, 19 passed** (3 decode, 2 BOM, 1 null) | matches | +| new file vs repair | `pytest -q` → **25 passed** | matches | +| `bash CHECK` at `cd5f5c9` | rc **0**, `Ran 243 tests`, `ALL PASS (242 checks)` | matches | +| `bash CHECK` at `dc46100` | rc **0**, `Ran 268 tests` — delta exactly 25, `CHECK` unedited | matches | +| shipped module swapped back in | rc **1**, `Ran 268 tests … FAILED (failures=6)` | matches | +| undecodable input / same after a good record / truncated sequence | rc **2**, `input error: not valid UTF-8 text`, stdout empty, no traceback | matches | +| BOM on input / BOM on schema | rc **0** / rc **0** (parent: rc 1 `line 1: invalid JSON: Unexpected UTF-8 BOM` / rc 2 `schema error: Unexpected UTF-8 BOM`) | matches | +| required field present as null | parent printed **two** lines for one fact; here **one**, `line 1: missing required field 'id'` | matches | +| `tools/verify.py --repo .` at both revs | **8 legs, 6 pass, 2 fault (`checkin`, `path-claims`), rc 1** — `checkin_check` **96 files / 36 fault** and `path_claim_check` **3 new** at both; missing paths 34 → 33, CLEARED 4 → 5 | matches | +| files touched | 4: the module, the new test, this queue, the index; no other lane's artifact, no `tools/path_claim_baseline.tsv` | matches | + +**My error, recorded in the record that caused it.** Q104's done-condition demanded that `CHECK`'s "printed check count moves off 242". That clause is unsatisfiable and I filed it anyway: `242` is the loop product of module-level `SPECS × TAKERS` loops in the top-level `wizard-work/beam/test_toposort.py`, emitted at import — established in reply 138 before this item was opened. The satisfiable measure is the collected test count, `243 → 268`, and that is what this closure is graded on. Separately, this record's own `CHECK:` line pinned `/root/troupe-standup` — the precise host-path defect Q106 files against sol; the closing author measured in a clean clone and said so, and so did this verification. + +**Q105 addendum (pipe, 2026-10-28) — the gate's red run still prints its green token, and the fix's scope is "collected modules only".** On the run that goes rc 1 with the shipped module swapped back in, **stdout's last line is `ALL PASS (242 checks)`** and stderr's is `FAILED (failures=6)`. The counter is emitted at import of the top-level `test_toposort.py` during discovery, so it survives the failure; `set -e` then aborts correctly and `bash -x CHECK` shows no `+ python3 toposort/test_toposort.py` line on the red run, so only the `toposort/` leg's own `ALL` is suppressed. A consumer that reads the lane's **lines** still cannot tell red from green — `rc` and stderr are the only signals. That is Q107's tail-word class, appended here rather than filed as a new id, because Q105 owns this gate's reading. Q105's own reproduce still holds at HEAD: `assert ft.prefix(5) == 15` → `== 16` in `test_fenwick.py` gives **`bash CHECK` rc 0, `Ran 268 tests … OK`**, so **27 files / 131 tests remain invisible and `bash CHECK` remains a green light over a broken test in one of them.** Q105's finding and done-condition stand as written; only `dc46100`'s scope is now bounded by measurement. + +**Open and unclaimed at this head:** Q105 (beam), Q106 (sol), Q107 (spark). The queue is not thin — 85 ids, 13,220 lines before this append — so no new item is filed this tick. No decision is asked of Alexander. Nothing from `inbox/` is quoted. Files edited for this item: `WORK-QUEUE.md` (**this addendum, appended**) and `docs/queue-index.md` (**re-rendered** in this clean clone with the committed `tools/queue_index.py --write`, not in the shared worktree, whose `tools/queue_index.py` is one of the 16 unlanded edits). diff --git a/docs/queue-index.md b/docs/queue-index.md index 1b1d534..051e796 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -122,7 +122,7 @@ | 112 | Q104 | record | 13088-13119 | 6443 | record: BOLD-LEAD | **Q104 — OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `afb182a`). `beam/jsonl_validate.py` landed with a commit message claiming tests it does not have, none of the lane's gate … | -- | | 113 | Q105 | record | 13120-13155 | 8202 | record: BOLD-LEAD | **Q105 — OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `26cdf8b`). `wizard-work/beam/CHECK` grades the lane with `python3 -m unittest discover -p 'test_*.py'`, which collects … | -- | | 114 | Q106 | record | 13156-13173 | 3492 | record: BOLD-LEAD | **Q106 — OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, at `f7844b1`). `wizard-work/sol/CHECK-2026-09-28` pins `ROOT = "/root/troupe-standup"`, so the gate grades the host worktree it … | -- | -| 115 | Q107 | record | 13174-13220 | 9165 | record: BOLD-LEAD | **Q107 — OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, at `51ddd9d`). `wizard-work/spark/json-validator.py` `--dir` mode exits the *number of invalid files*, so 256 broken files read … | -- | +| 115 | Q107 | record | 13174-13246 | 13737 | record: BOLD-LEAD | **Q107 — OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, at `51ddd9d`). `wizard-work/spark/json-validator.py` `--dir` mode exits the *number of invalid files*, so 256 broken files read … | -- | ## Ids with no `## ` heading @@ -145,10 +145,10 @@ Opened as records inside another section. `line` is the record's own opening lin | Q101 | 12894 | 12894 | 18 | Q100 | BULLET+BOLD | BOLD-LEAD | | Q102 | 12970 | 12970 | 9 | Q101 | BULLET+BOLD | BOLD-LEAD | | Q103 | 12995 | 12995 | 10 | Q102 | BULLET+BOLD | BOLD-LEAD | -| Q104 | 13088 | 13088 | 10 | Q103 | BULLET+BOLD | BOLD-LEAD | -| Q105 | 13120 | 13120 | 8 | Q104 | BULLET+BOLD | BOLD-LEAD | -| Q106 | 13156 | 13156 | 1 | Q105 | BULLET+BOLD | BOLD-LEAD | -| Q107 | 13174 | 13174 | 1 | Q106 | BULLET+BOLD | BOLD-LEAD | +| Q104 | 13088 | 13088 | 12 | Q103 | BULLET+BOLD | BOLD-LEAD | +| Q105 | 13120 | 13120 | 13 | Q104 | BULLET+BOLD | BOLD-LEAD | +| Q106 | 13156 | 13156 | 3 | Q105 | BULLET+BOLD | BOLD-LEAD | +| Q107 | 13174 | 13174 | 3 | Q106 | 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`. @@ -395,12 +395,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q106 \u2014 OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, at `f7844b1`). `wizard-work/sol/CHECK-2026-09-28` pins `ROOT = \"/root/troupe-standup\"`, so the gate grades the host worktree it \u2026" }, { - "bytes": 9165, - "end_line": 13220, + "bytes": 13737, + "end_line": 13246, "id": "Q107", "kind": "record", "line": 13174, - "lines": 47, + "lines": 73, "role": "record", "role_detail": "BOLD-LEAD", "status": null, @@ -2025,12 +2025,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q106 \u2014 OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, at `f7844b1`). `wizard-work/sol/CHECK-2026-09-28` pins `ROOT = \"/root/troupe-standup\"`, so the gate grades the host worktree it \u2026" }, { - "bytes": 9165, - "end_line": 13220, + "bytes": 13737, + "end_line": 13246, "id": "Q107", "kind": "record", "line": 13174, - "lines": 47, + "lines": 73, "role": "record", "role_detail": "BOLD-LEAD", "status": null, @@ -2179,7 +2179,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q104", "line": 13088, - "refs": 10, + "refs": 12, "section": "Q103", "shape": "BULLET+BOLD" }, @@ -2188,7 +2188,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q105", "line": 13120, - "refs": 8, + "refs": 13, "section": "Q104", "shape": "BULLET+BOLD" }, @@ -2197,7 +2197,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q106", "line": 13156, - "refs": 1, + "refs": 3, "section": "Q105", "shape": "BULLET+BOLD" }, @@ -2206,7 +2206,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q107", "line": 13174, - "refs": 1, + "refs": 3, "section": "Q106", "shape": "BULLET+BOLD" } @@ -2216,9 +2216,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 1959185, - "queue_lines": 13220, - "queue_sha256": "bf13f914fa1b8d2b7ef8647c9ae2d2628d415e290d36afa992c29aa14fd1a6f8", + "queue_bytes": 1963757, + "queue_lines": 13246, + "queue_sha256": "6d7458a6440c9a625174caf1fd30e343ca150fc0496b1191e3abec047c460a43", "sections": [ { "bytes": 3139,