queue: mark Q83 done at fe09917 -- five cells pin the five unpinned refusals (spark gate 9 -> 14, rc 0), the item's own first row is corrected (deleting only the missing-config refusal still exits 1 with the regular-file message, measured), six mutants each kill a named cell; the sweep still reads 27/26/1; index re-rendered in this commit
This commit is contained in:
1 parent
d739954a87
commit
319251ab08
2 files changed
+53
-8
No files matched your search
@@ -12188,3 +12188,31 @@ another party authored was edited.
|
||||
- **Each mutant kills at least one named cell** (scratch `q84_mutants.py`, results `q84-mutants.json`): M1 kind ordering flipped → rc 1, five dead cells incl. `test_half_open_adjacency_both_orders`; M2 `if s >= e: continue` removed → rc 1, five dead incl. `test_zero_length_against_wide_interval`; M3 start-pair loop removed → rc 1, four dead incl. `test_nested_and_disjoint_pairs`; M4 `has_any_overlap` reverted to the pair-list body → rc 1, exactly `test_has_any_overlap_does_not_build_pair_list` and the timing cell; M5 the early-exit boundary `s < max_end` → `s <= max_end` → rc 1, `test_has_any_overlap_true_and_false`. Baseline copy unpatched: rc 0.
|
||||
- **The timing claim, measured on this host.** `has_any_overlap([(0,1000)]*2000)` → `True` in **0.004137 s** (new) against **48.54 s** for the old body (the pipe's reading at `517362f`). The pair function is untouched apart from its docstring: same sweep, same event kinds, same sorted output, same `ValueError`.
|
||||
- **No scope creep and no other author's text edited.** The diff is 151 insertions across the two files; no other lane file, no `inbox/` quotation, no decision asked of Alexander — nothing here is a door, a rate, or a design question. One concern per commit holds: the cells, the docstring correction and the early exit are the item's own four asks. Report and mutant battery: `/root/.hermes/wizard-outputs/volt/q84-report.md`, `/root/.hermes/wizard-outputs/volt/q84-mutants.json`.
|
||||
|
||||
---
|
||||
|
||||
## Q83 closure — the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 → 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as the opening record says `open and unclaimed`)*
|
||||
|
||||
**Status: DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it.** The opening record's own `Status: open and unclaimed.` line is left standing, as append-only discipline requires; the closure is this line, not an edit above it. Report: `/root/.hermes/wizard-outputs/volt/q83-report.md`.
|
||||
|
||||
- **Five cells, one per row, each asserting the exact string and the exact rc** — appended to `wizard-work/spark/test_hermes_profile_health.py` (193 lines): `test_config_missing_exits_1` (rc 1, `config.yaml missing`), `test_config_as_directory_exits_1` (rc 1, `config.yaml exists but is not a regular file`), `test_config_no_document_exits_1` (rc 1, `config.yaml parses to no document`, and **not** `not a mapping`), `test_config_empty_mapping_exits_1` (rc 1, `config.yaml is an empty mapping`), `test_profile_home_is_a_file_exits_2` (rc 2, `profile home is not a directory`, empty stdout). Each cell also splits the streams: a rc 1 is a verdict with empty stderr, a rc 2 is a refusal with empty stdout. All five feed the same `_fixture` shapes the item measured; `hermes_profile_health.py` is **not touched** (no tool byte moved).
|
||||
- **The gate's count, before and after, same host and same command.** `bash wizard-work/spark/CHECK` at `f2ff9c7` → `Ran 9 tests in 7.719s`, `OK`, `VERIFIED`, rc 0; at `fe09917` → `Ran 14 tests in 10.466s`, `OK`, `VERIFIED`, rc 0. The `CHECK` comment now states the 14 and names the five Q83 cells.
|
||||
- **Six mutant trees, six kills, dead cell names printed** (harness `/root/.hermes/wizard-outputs/volt/q83_mutants.py`, results `/root/.hermes/wizard-outputs/volt/q83-mutants.json`, trees `/root/.hermes/profiles/volt/cache/scratch/q83mut-*/`; each tree = a copy of the tool with one unique-anchor patch plus the committed suite, CLI run against that row's fixture and then `unittest discover -v`):
|
||||
|
||||
| mutant | CLI before → after | dead cells |
|
||||
|---|---|---|
|
||||
| M0 baseline copy | rc 1, `config.yaml missing` (suite rc 0, 0 dead) | — |
|
||||
| M9 `exists` refusal deleted | rc 1 → rc 1, message → `exists but is not a regular file` | `test_config_missing_exits_1` |
|
||||
| M9b `exists` + `is_file` refusals deleted | rc 1 → rc 2 `ungradable: config.yaml unreadable: [Errno 2]` | `test_config_missing_exits_1`, `test_config_as_directory_exits_1` |
|
||||
| M10 `is_file` refusal deleted | rc 1 → rc 2 `ungradable: … [Errno 21] Is a directory` | `test_config_as_directory_exits_1` |
|
||||
| M11 `data is None` grade deleted | rc 1 → rc 1, message → `config.yaml is a NoneType, not a mapping` | `test_config_no_document_exits_1` |
|
||||
| M12 `if not data:` → `if False:` | rc 1 → rc 0, `Profile is healthy` | `test_config_empty_mapping_exits_1` |
|
||||
| M13 `is_dir` refusal deleted | rc 2 → rc 1, `Profile is unhealthy: 5 issue(s)` | `test_profile_home_is_a_file_exits_2` |
|
||||
|
||||
M13's five issues are `config.yaml missing`, `skills/ missing`, `plugins/ missing`, `cron/ missing`, `memories/ missing` — the item's "five named faults" row reproduced.
|
||||
- **The item's first row is corrected, not edited in place.** Q83's table reads *"refusal deleted → rc 0, 'Profile is healthy'"* for `config.yaml missing`. Deleting only that refusal does **not** produce rc 0: the next check, `if not cfg.is_file():`, is also true for a missing path, so the tool still exits 1 and mislabels a missing config as `exists but is not a regular file` (M9, measured). A rc-only cell would have stayed green there; the string assertion is what kills it. Reaching rc 0 needs a patch that makes `grade_config` pass a missing config, and removing both refusals gives rc 2 unreadable (M9b) — both variants kill the same cell, so the branch is pinned either way.
|
||||
- **Live behaviour unchanged.** `for d in /root/.hermes/profiles/*/` at this revision: **27 profiles, 26 rc 0, 1 rc 1** — `spark-snippet-wizard`, the single issue `config.yaml missing` — now the branch `test_config_missing_exits_1` pins.
|
||||
- **One concern in one commit.** `fe09917` = five cells + module docstring + the `CHECK` comment's count, two files, +54/−2. The queue-index render is its own commit.
|
||||
- **Not claimed.** That every branch of the tool is pinned (six rows cover the five branches this item named, not an enumeration of the file); that the suite is fast (14 cells, ~10 s, subprocess per cell); `--profiles-root`/`HERMES_PROFILES_DIR` precedence beyond Q81's existing cell; anything about `inbox/`.
|
||||
|
||||
CHECK: cd /root/troupe-standup && bash wizard-work/spark/CHECK && grep -c '^ def test_' wizard-work/spark/test_hermes_profile_health.py
|
||||
+25
-8
@@ -4,7 +4,7 @@
|
||||
|
||||
**What this is.** One row per `## ` section of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. Whether an item is *open* is not decided here -- that verdict is `tools/queue_claim_check.py`'s, and this document does not overrule it.
|
||||
|
||||
**What it exposes.** The queue is two-tier. 79 sections carry 71 ids because 8 ids own a second, continuation section. A further **10 ids have no heading at all** and are opened as records nested inside another item's section -- so grepping `^## Q41` finds nothing while Q41 is a live item the file names 28 times. Those are listed in their own table below.
|
||||
**What it exposes.** The queue is two-tier. 80 sections carry 71 ids because 9 ids own a second, continuation section. A further **10 ids have no heading at all** and are opened as records nested inside another item's section -- so grepping `^## Q41` finds nothing while Q41 is a live item the file names 28 times. Those are listed in their own table below.
|
||||
|
||||
| # | id | lines | bytes | role | title | first `Status:` |
|
||||
|---|---|---|---|---|---|---|
|
||||
@@ -86,7 +86,8 @@
|
||||
| 76 | Q82 | 12049-12077 | 5314 | cont: closure | closure — `test_json_canonical.py` is seven discoverable cells (lane gate 191 → 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's … | DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it. |
|
||||
| 77 | Q81 | 12078-12120 | 9984 | cont: closure | closure — `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening … | DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them. |
|
||||
| 78 | Q83 | 12121-12140 | 3177 | opening | five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)* | open and unclaimed. |
|
||||
| 79 | Q84 | 12141-12190 | 6926 | opening | `interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)* | open and unclaimed. |
|
||||
| 79 | Q84 | 12141-12193 | 6932 | opening | `interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)* | open and unclaimed. |
|
||||
| 80 | Q83 | 12194-12218 | 4817 | cont: closure | closure — the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 → 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as … | DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it. |
|
||||
|
||||
## Ids with no `## ` heading
|
||||
|
||||
@@ -146,6 +147,10 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"Q82": [
|
||||
12010,
|
||||
12049
|
||||
],
|
||||
"Q83": [
|
||||
12121,
|
||||
12194
|
||||
]
|
||||
},
|
||||
"ids_with_section": [
|
||||
@@ -318,9 +323,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"end_line": 8,
|
||||
"line": 1
|
||||
},
|
||||
"queue_bytes": 1788798,
|
||||
"queue_lines": 12190,
|
||||
"queue_sha256": "5ddda48a2ff4d1c78a6a1a3e4767a4e976269836367ef679484b949fed1c2772",
|
||||
"queue_bytes": 1793621,
|
||||
"queue_lines": 12218,
|
||||
"queue_sha256": "216c7665dbb3d6ac8e0fa2bc5d710305e1a9a62270605dde326d0e71eb18bd12",
|
||||
"sections": [
|
||||
{
|
||||
"bytes": 3139,
|
||||
@@ -1259,16 +1264,28 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"title": "five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)*"
|
||||
},
|
||||
{
|
||||
"bytes": 6926,
|
||||
"end_line": 12190,
|
||||
"bytes": 6932,
|
||||
"end_line": 12193,
|
||||
"id": "Q84",
|
||||
"line": 12141,
|
||||
"lines": 50,
|
||||
"lines": 53,
|
||||
"role": "opening",
|
||||
"role_detail": "",
|
||||
"status": "open and unclaimed.",
|
||||
"status_line": 12177,
|
||||
"title": "`interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)*"
|
||||
},
|
||||
{
|
||||
"bytes": 4817,
|
||||
"end_line": 12218,
|
||||
"id": "Q83",
|
||||
"line": 12194,
|
||||
"lines": 25,
|
||||
"role": "continuation",
|
||||
"role_detail": "closure",
|
||||
"status": "DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it.",
|
||||
"status_line": 12196,
|
||||
"title": "closure \u2014 the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 \u2192 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as \u2026"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user