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

This commit is contained in:
Timmy committed 2026-10-28 05:29:05 +00:00
1 parent 8d30e00b84
commit 5be1bb2e84
2 files changed
+44 -18

No files matched your search

+26
View File
@@ -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).
+18 -18
View File
@@ -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,