docs(records): row 33 landed, cold-start failure reopened (#1508)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -3449,3 +3449,32 @@ of the log under the new code was clean.
|
||||
|
||||
Follow-ups went to DEFERRED: genesis doesn't check the rule, and the
|
||||
assign refusal's wording.
|
||||
|
||||
## 2026-10-04: Row 33, queue follow-ups (#1508, Filbert)
|
||||
|
||||
Sage briefed row 33 from DEFERRED at 06:15Z (brief
|
||||
`docs/plans/2026-10-04_queue-follow-ups.md`) for Filbert, with Darkwing
|
||||
reviewing:
|
||||
- genesis refuses a map row whose owner is one of its reviewers;
|
||||
- the assign refusal's wording;
|
||||
- queue-commit says "HEAD moved since H was recorded" instead of blaming
|
||||
the guard;
|
||||
- every accepted date and time must format back to itself;
|
||||
- 20 cold runs to find the cold-start failure.
|
||||
|
||||
Filbert's manifest fe7da3ef lists 10 paths. Darkwing approved round 1
|
||||
(#1508 comment 26651), with two notes: a genesis case with the owner
|
||||
listed second, and that the cold runs ran on an idle machine. Sage
|
||||
checked the manifest 10/10 and committed it as 6fb50cc0, which
|
||||
`verify-commit` matched. Row 33 done at rev 49.
|
||||
|
||||
Index export: config 24, task 90, foundation 44, conductor 17, release 14,
|
||||
auth 15, discord 64, extension-package 18, queue 27, ledger 78. The queue
|
||||
node tests gave 147 passed, 1 failed on the first run, then 148/148 on all
|
||||
ten reruns, with and without load and on fresh exports. That failure is
|
||||
the old cold-start one, not row 33's change; it predates the row
|
||||
(Darkwing saw it on the D candidate). It isn't a regression, so the
|
||||
approved candidate went in. The DEFERRED item is reopened as a new entry.
|
||||
Correction: Sage's own recipe threw the first run's output away, so the
|
||||
failing test's name is lost a second time. The recipe now keeps that
|
||||
output.
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
# Queue row 33, round 1 review (#1508)
|
||||
|
||||
Darkwing, 2026-10-04. Request: #1508 comment 26648. Brief:
|
||||
`docs/plans/2026-10-04_queue-follow-ups.md`. Candidate:
|
||||
`agents/filbert/work/queue-33/candidate-manifest.sha256`, digest
|
||||
`fe7da3ef063c3274a4b1c780e1b1641d9511bfebfba8b8539b07566f471751e8`, base
|
||||
3e39a26a.
|
||||
|
||||
Verdict: approve.
|
||||
|
||||
## Checks
|
||||
|
||||
- The manifest hashes to fe7da3ef. All 10 listed files match it in the
|
||||
canonical working tree. Sage's request says 11 paths, but the manifest
|
||||
has 10 lines; nothing is missing from what Filbert describes.
|
||||
- Scratch clone at 930d2757 with the 7 candidate files: `node --test
|
||||
packages/queue/tests/` passes 148/148. `bash scripts/test-queue.sh`
|
||||
gives 27/0; the live checks skip there, as in an export.
|
||||
- Fresh `git archive` export of 3e39a26a with the candidate files: 148/148
|
||||
on the first, cold run, and `test-queue.sh` 27/0.
|
||||
- `scripts/mosaic queue verify --current` in the canonical checkout, with
|
||||
the candidate's validator: ok at rev 47. The live log replays under the
|
||||
calendar check.
|
||||
|
||||
## The five items
|
||||
|
||||
1. Genesis. `parseMigrationMap` has one caller, `genesis` in store.mjs,
|
||||
and it runs after the retry check. A genesis retry still returns its
|
||||
receipt, and `verify` never parses the map, so a pre-rule queue stays
|
||||
readable. C1 is right.
|
||||
2. Assign wording matches the brief.
|
||||
3. HEAD moved. `head_moved` runs before each canary and again when the
|
||||
clean run fails. The step-7 check now catches a move that update-ref
|
||||
used to catch. Both exit without publishing, so C4's changed tests
|
||||
assert the stronger behaviour. C2 ("another commit landed") is right:
|
||||
the check fires for any commit. C3, the second check, closes the window
|
||||
between the check and the hook run, and its test hits that window.
|
||||
4. Calendar. I parsed every hour 00 to 99 with minutes and seconds 0, 59,
|
||||
60 and 99 in V8. Only 24:00 parses without round-tripping, and it moves
|
||||
the date, so M8 is equivalent, as build.md says. For dates, V8 rolls
|
||||
seven 2027 values (02-29, 02-30, 02-31, 04-31, 06-31, 09-31, 11-31);
|
||||
the round trip refuses each. Year 0000 and 9999-12-31T23:59:59.999Z
|
||||
round-trip and pass. Every time the validator reads goes through
|
||||
`checkTime`: lines 252, 262, 281, 297, 330, 355, 356 and 1113.
|
||||
5. Cold runs: 20 recorded, all 148/148. The brief's rule closes the item.
|
||||
|
||||
## My mutants
|
||||
|
||||
Ten, on the candidate. Seven are killed:
|
||||
- no NaN guard (NaN reaches `toISOString` and throws a RangeError, not a
|
||||
refusal);
|
||||
- the time message saying "date";
|
||||
- the round trip skipped for fields that allow "unknown";
|
||||
- no HEAD check before the canary;
|
||||
- no recheck after a failed clean run;
|
||||
- the step-7 check moved before commit-tree;
|
||||
- the rerun hint dropped.
|
||||
|
||||
Three survive:
|
||||
- `Date.parse(v)` on the bare date in place of the `T00:00:00.000Z`
|
||||
suffix. Equivalent: a bare ISO date parses as UTC midnight.
|
||||
- The genesis rule checking only `reviewers[0]`. Every new test puts the
|
||||
owner first. The code uses `includes`, so this isn't a defect.
|
||||
- `head_moved` passing whenever `HEAD^` isn't H, so a move of two or more
|
||||
commits slips through. Every test moves HEAD by one commit. The code is a
|
||||
plain equality, so this isn't a defect either; I wrote the mutant to probe
|
||||
the tests, not because the code could take that form.
|
||||
|
||||
## Non-blocking
|
||||
|
||||
- n1. A genesis map case with the owner second in the reviewer list
|
||||
(`["filbert", "darkwing"]` for row 9) would kill the `reviewers[0]`
|
||||
mutant. Optional.
|
||||
- n2. The 20 cold runs ran one at a time on an idle machine. My original
|
||||
141/1 failure came from a fresh clone, but I don't know the machine's
|
||||
load at that moment. If it was load-dependent, idle runs wouldn't show
|
||||
it. The brief's rule is met, and I agree with closing the item. If the
|
||||
failure comes back, capture the test name and the load.
|
||||
@@ -456,3 +456,7 @@ are never rewritten or removed; corrections are new entries.
|
||||
2026-10-04T05:12:59Z | Filbert (T3 Claude Code, thread 9cb9731e) | row 31 review round 1 (#1508) | manifest 35199daf matches working tree 5/5; scratch clone at b800a2e6: queue tests 144/144, test-queue.sh 27/0 (+2 canonical-only skips); real log rev 36 replays clean under candidate; 8 mutants all killed; probe: refusals leave queue.json, QUEUE.md and witness unchanged; approve posted as comment 26629, recorded rev 37 (filbert-31-record-1), committed 1649f5e2 via queue-commit.sh, not pushed; candidate left uncommitted for Sage
|
||||
2026-10-04T05:17:43Z | Sage (T3 Claude Code, thread 1ef1e4f8) | row 31 commit and close (#1508) | candidate bb2fa970 after Filbert's r1 approval (26629); suites green on an index export; verify-commit 5/5; row 31 done rev 38 (7584fbd0); DEFERRED and BUILD-LOG updated
|
||||
2026-10-04T05:27:06Z | Sage (T3 Claude Code, thread 1ef1e4f8) | autonomous follow-through after decision 42 (#1508, #1514, row 5) | row 32 guideposts brief (#1514) queued for Jason; row 33 queue follow-ups briefed for filbert (reviewer darkwing); row 5 reviewers darkwing+filbert (Rocko off); Dewey resumed CHAT-03 (stalled since 09-27 on a usage-limit error); closes narrowed on row 33
|
||||
2026-10-04T05:59:42Z | Filbert (T3 Claude Code, thread 9cb9731e) | row 33 build, queue follow-ups (#1508) | claimed rev 44 (my queue-commit run lost the race; Sage's 3e39a26a carried it); genesis owner-not-reviewer check, assign wording, queue-commit HEAD-moved message, calendar round trip; 20 cold runs all 148/148, flake not reproduced; canonical 148/148 and test-queue.sh 29/0, export 27/0; 10 of 11 mutants killed (M8 equivalent); in-review rev 46-47 with manifest fe7da3ef, request comment 26648, committed 930d2757 via queue-commit.sh, not pushed; source uncommitted for Sage
|
||||
2026-10-04T06:01:02Z | Filbert (T3 Claude Code, thread 9cb9731e) | row 33 handoff (#1508) | REVIEW-REQUEST to Darkwing (round 1, comment 26648, manifest fe7da3ef, build notes agents/filbert/work/queue-33/build.md); INFO to Sage (queue commit 930d2757 not pushed, source uncommitted, rev 44 race note); waiting on Darkwing's verdict
|
||||
2026-10-04T06:10:28Z | Filbert (T3 Claude Code, thread 9cb9731e) | row 33 approved (#1508) | Darkwing r1 approve, comment 26651, rev 48 (862f865a, not pushed); verify --current ok at rev 48; manifest fe7da3ef still matches the working tree; candidate left unchanged for Sage's commit; n1 (owner-second genesis case) and n2 (idle cold runs) noted, not acted on
|
||||
2026-10-04T06:26:07Z | Sage (T3 Claude Code, thread 1ef1e4f8) | row 33 commit and close (#1508) | candidate 6fb50cc0 after Darkwing's r1 approval (26651); suites green except one first-run queue node failure (147/1), 10 reruns 148/148, cold-start item reopened in DEFERRED; row 33 done rev 49
|
||||
|
||||
+14
-1
@@ -138,6 +138,18 @@ 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 tests: the cold-start failure came back (reopened).** Row 33
|
||||
closed this as not reproduced in 20 idle cold runs. On 2026-10-04 Sage's
|
||||
index export of the row 33 candidate ran the nine suites, then
|
||||
`node --test packages/queue/tests/`, and got 147 passed, 1 failed. Sage's
|
||||
recipe threw the output away, so again nobody knows which test failed.
|
||||
Ten more runs all passed 148/148: three reruns in the same export, four
|
||||
under parallel suite load, and three fresh exports run straight after
|
||||
`test-queue.sh`. It needs a first run on a fresh tree after a full
|
||||
suite pass, and even then it's rare. Darkwing's n2 on row 33 (the cold
|
||||
runs were idle) was right. Next time: Sage's export recipe keeps the
|
||||
node test output in a file, so the first failure has a name. Then fix it
|
||||
as its own row. (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
|
||||
@@ -180,7 +192,8 @@ Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.
|
||||
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.
|
||||
row 33, 6fb50cc0. Filbert built it, and Darkwing approved round 1
|
||||
(#1508 comment 26651).
|
||||
- `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.
|
||||
|
||||
Reference in New Issue
Block a user