fix(queue): genesis owner-not-reviewer check, assign wording, queue-commit HEAD-moved message, calendar dates (row 33, #1508)
Built by filbert, approved by darkwing in round 1 (#1508 comment 26651). Manifest fe7da3ef, 10 paths. Suites green on an index export. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
+18
-30
@@ -138,42 +138,12 @@ at every gate. Started 2026-09-12 during the control board MVP.
|
||||
Sage asked the SetSpark lead to use a one-word role. The rule stays as
|
||||
it is. (2026-09-26, #1506)
|
||||
|
||||
- **Queue: `genesis` from a map doesn't check the owner-not-reviewer
|
||||
rule.** Row 31 added the refusal to `add`, `set reviewers` and `assign`,
|
||||
but a genesis map can still create a row whose owner is a reviewer.
|
||||
No current row has that shape. Filbert, row 31 r1 (#1508 comment 26629).
|
||||
(2026-10-04, #1508)
|
||||
- **Queue: `add --issue N` also sets closes to N.** Follow-up rows under
|
||||
an umbrella issue, like rows 31 and 33 under #1508, would close the issue
|
||||
when they finish. Sage narrowed both by hand (revs 36 and 43). Either
|
||||
`add` takes `--closes` or the lead checks closes on every add. Not
|
||||
urgent while Sage adds the rows. (2026-10-04, #1508)
|
||||
- **Queue: the `assign` refusal calls the seat "owner" too early.** The
|
||||
message calls the seat the row's owner before the assign makes it one.
|
||||
Wording only. Filbert, row 31 r1. (2026-10-04, #1508)
|
||||
- **Queue tests: one unexplained failure on a cold start.** Darkwing's
|
||||
first run of the D candidate in a fresh clone gave 141 passed, 1 failed.
|
||||
The failing test's name wasn't captured. 15 reruns passed 142/0,
|
||||
sequential and parallel. Darkwing suspects a timing bound, most likely
|
||||
the 300 ms deadline case in the transport test, which allows 4000 ms.
|
||||
That isn't confirmed. Next time: capture the name, then fix it as its
|
||||
own patch. (2026-09-27, #1508)
|
||||
|
||||
- **queue-commit.sh blames the guard when HEAD moves.** Step 7's canary
|
||||
reads H into its index (`scripts/queue-commit.sh:94`). The hook diffs
|
||||
against the live HEAD. If another queue commit moves the branch after H
|
||||
is recorded, the clean canary sees a difference and refuses with "git is
|
||||
not running the queue guard as installed". The fix it prints does
|
||||
nothing. The refusal is correct, the message is wrong. Fix: guard_check
|
||||
compares HEAD with H before the canary and says "HEAD moved since H;
|
||||
start again". Filbert found this during the row 12 live round.
|
||||
(2026-09-27, #1508)
|
||||
|
||||
- **Queue validator checks date shape, not the calendar.** `ISO_RE` and
|
||||
`DATE_RE` accept month 13, and V8 turns 2026-02-30 into March 2 without
|
||||
an error. The CLI can't write such a value today; a hand edit or a
|
||||
future verb could. Fix: round-trip the parsed date. Filbert and
|
||||
Darkwing, Piece E round 2. (2026-09-27, #1508)
|
||||
- **Ledger metric call can orphan curl.** The metric call in
|
||||
`packages/ledger/src/ledger.mjs` still relies on execFileSync's
|
||||
timeout, which kills the helper but can leave curl running. E's queue
|
||||
@@ -209,3 +179,21 @@ Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.
|
||||
now refuse the owner as a reviewer with exit 2 and write nothing. Rocko
|
||||
built it in the Gate G run, and Filbert approved round 1 (#1508 comment
|
||||
26629, 8 of 8 mutants caught).
|
||||
- Queue follow-ups from rows 12, 13 and 31 (2026-10-04, #1508): closed by
|
||||
row 33. Filbert built it, and Darkwing reviews it.
|
||||
- `genesis` refuses a map row whose owner is one of its reviewers (exit
|
||||
2, nothing written). The check is on the map, not in replay, so a log
|
||||
from before the rule still loads.
|
||||
- The `assign` refusal now reads "can't assign row N to SEAT: SEAT is
|
||||
one of its reviewers".
|
||||
- `queue-commit.sh` compares HEAD with H before each canary and again if
|
||||
the clean run fails. A moved HEAD exits 2 with "HEAD moved since H was
|
||||
recorded"; the guard message is kept for a real guard failure.
|
||||
- Every time and date the validator accepts must format back to itself,
|
||||
so month 13, day 32, 2026-02-30, 2027-02-29 and 24:00 are refused.
|
||||
The live log at rev 45 still replays.
|
||||
- The cold-start failure (2026-09-27): not reproduced in 20 cold runs.
|
||||
Each ran `node --test packages/queue/tests/` in a fresh tree, 10
|
||||
shared clones and 10 exports, one after another. All 20 passed
|
||||
148/148 (2960 of 2960). The 300 ms deadline test is unchanged. Counts:
|
||||
`agents/filbert/work/queue-33/cold-runs.txt`.
|
||||
|
||||
Reference in New Issue
Block a user