volt: Q104 done -- beam jsonl_validate's exit-code contract pinned by a 25-test file, and the decode path returns 2 not 1
wizard-work/beam/test_jsonl_validate.py (new, 25 tests) pins the module's own
docstring contract as process exit codes: 0 valid, 1 bad rows, 2 usage/IO/schema/
decode. wizard-work/beam/jsonl_validate.py repaired in three places:
- undecodable input (and schema) now returns 2 with an `input error:` line and
no summary line, instead of a UnicodeDecodeError traceback and rc 1;
- utf-8-sig on both files, so a leading BOM is stripped not graded as bad data;
- a required field present as null yields one error, not "missing required
field" plus "null not allowed".
Measured: the new test file against the shipped module (md5 f53b6288...) fails
6 of 25 (3 decode, 2 BOM, 1 null); against the repair, 25/25 pass. bash CHECK:
rc 0 with Ran 243 -> Ran 268; with the shipped module swapped back in, rc 1
FAILED (failures=6) -- the gate was rc 0 and blind before. No edit to CHECK:
the file is a unittest.TestCase, so the existing -p 'test_*.py' leg collects it.
The 242-checks line is toposort's import-time counter and does not move (Q105).
verify.py --repo . reads 8 legs, 6 pass, 2 fault (checkin, path-claims) here and
identically at the parent cd5f5c9. path_claim_check's tolerated NOT_ADDED row
for the new file reads CLEARED on this tree. Q105's 27 uncollected files / 131
tests remain open and untouched.
This commit is contained in:
1 parent
cd5f5c92f8
commit
dc461001b9
4 files changed
+342
-21
No files matched your search
+14
-14
@@ -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-13192 | 3183 | 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-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 … | -- |
|
||||
|
||||
## Ids with no `## ` heading
|
||||
|
||||
@@ -145,8 +145,8 @@ 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 | 7 | Q103 | BULLET+BOLD | BOLD-LEAD |
|
||||
| Q105 | 13120 | 13120 | 6 | Q104 | 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 |
|
||||
|
||||
@@ -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": 3183,
|
||||
"end_line": 13192,
|
||||
"bytes": 9165,
|
||||
"end_line": 13220,
|
||||
"id": "Q107",
|
||||
"kind": "record",
|
||||
"line": 13174,
|
||||
"lines": 19,
|
||||
"lines": 47,
|
||||
"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": 3183,
|
||||
"end_line": 13192,
|
||||
"bytes": 9165,
|
||||
"end_line": 13220,
|
||||
"id": "Q107",
|
||||
"kind": "record",
|
||||
"line": 13174,
|
||||
"lines": 19,
|
||||
"lines": 47,
|
||||
"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": 7,
|
||||
"refs": 10,
|
||||
"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": 6,
|
||||
"refs": 8,
|
||||
"section": "Q104",
|
||||
"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": 1953203,
|
||||
"queue_lines": 13192,
|
||||
"queue_sha256": "96f4190cdd22e06ef734aca1a432693003a4c6b92ef2ce0329f1ffaaaf8b46c1",
|
||||
"queue_bytes": 1959185,
|
||||
"queue_lines": 13220,
|
||||
"queue_sha256": "bf13f914fa1b8d2b7ef8647c9ae2d2628d415e290d36afa992c29aa14fd1a6f8",
|
||||
"sections": [
|
||||
{
|
||||
"bytes": 3139,
|
||||
|
||||
Reference in new issue
Block a user