filbert: row 69 round 1 approve 28055, verification and session

This commit is contained in:
2026-10-12 18:33:05 -05:00
parent 557707c19d
commit c6711453b7
8 changed files with 145 additions and 0 deletions
@@ -0,0 +1,9 @@
{
"suite": "cli",
"rc": 0,
"stats": [
"\u2139 tests 123",
"\u2139 pass 123",
"\u2139 fail 0"
]
}
@@ -0,0 +1 @@
28055
@@ -0,0 +1,66 @@
[
{
"mutant": "shown-no-min-cols",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (53.286748ms)",
"\u2716 failing tests:",
"\u2716 under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (53.286748ms)"
]
},
{
"mutant": "r3-shown-no-min",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (60.827837ms)",
"\u2716 failing tests:",
"\u2716 under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (60.827837ms)"
]
},
{
"mutant": "n9-17000-end-off",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (0.917643ms)",
"\u2716 failing tests:",
"\u2716 width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (0.917643ms)"
]
},
{
"mutant": "cut-drops-choice",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 help or a detail box cut to fit keeps its last line, Esc included (Dewey) (60.947242ms)",
"\u2716 failing tests:",
"\u2716 help or a detail box cut to fit keeps its last line, Esc included (Dewey) (60.947242ms)"
]
},
{
"mutant": "hidden-no-way-out",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (70.463335ms)",
"\u2716 failing tests:",
"\u2716 a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (70.463335ms)"
]
},
{
"mutant": "hidden-status-promises-y",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (64.943295ms)",
"\u2716 failing tests:",
"\u2716 a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (64.943295ms)"
]
},
{
"restored_app_rc": 0,
"manifest_matches": true
}
]
@@ -0,0 +1,9 @@
{
"suite": "queue",
"rc": 0,
"stats": [
"\u2139 tests 150",
"\u2139 pass 150",
"\u2139 fail 0"
]
}
@@ -0,0 +1,38 @@
✔ every screen and overlay fits 120x36, 80x24 and the narrow layout, row for row (1310.783702ms)
✔ width counts terminal cells: wide CJK and emoji 2, U+FE0F after a one-cell base 1, marks 0 (71.894994ms)
✔ broker text is shown, never interpreted: no raw control character or bidi override reaches the terminal (205.060132ms)
✔ NO_COLOR: no escape codes, except reverse video on the selected row (230.470532ms)
✔ 1-9 shows the decide flow's own lines and question; only y resolves (113.009817ms)
✔ the app shows the same decide text as mosaic decide (62.224288ms)
✔ any key but y or Y at the question answers No; nothing is sent (604.963929ms)
✔ below 40x10 the question is hidden, so every key answers it No, y included (Filbert R3) (226.515212ms)
✔ under 40 columns a tall terminal shows the too-small screen even where the decide box would fit; y sends nothing (Filbert N10) (659.135421ms)
✔ a hidden decide box names the way out, and the status line under it does not promise y (Filbert N12) (70.634409ms)
✔ a throw while answering the question goes to crash, sends nothing and leaves no job pending (60.897346ms)
✔ type-ahead never answers the question: a paste, keys typed before it is drawn, keys inside askMs (577.361032ms)
✔ quitting at the question answers No and sends nothing, armed or not (113.049896ms)
✔ a timer tick reads nothing under an overlay, never answers the question, and keeps a resolved status (78.870851ms)
✔ a long question is cut inside the question; the action, target, choice and prompt stay (Dewey B1) (87.583779ms)
✔ a decide box too big for the terminal says so, and every key answers it No, y included (Dewey B1, round 3) (619.656877ms)
✔ at every size the decide box shows each line y depends on, or says it is hidden (8637.843328ms)
✔ outcome unknown: the CLI's sentence, no retry, then the trail or a re-read (154.048773ms)
✔ refused and failed reads keep the last list, marked stale; a refused decide says refused (110.783715ms)
✔ help or a detail box cut to fit keeps its last line, Esc included (Dewey) (56.785172ms)
✔ keys: views, moving, trail of a selection, the command line, help and quit (233.381279ms)
✔ one option: the status line says Press 1, not 1-1 (99.193172ms)
✔ no business: the app says so and :business picks one (48.465439ms)
✔ mosaic with no argument: exit 3 in an agent run, exit 4 with the usage off a terminal, the app on one (1.634206ms)
✔ scripts/mosaic with no argument reaches the app entry; the seat usage it printed before has not drifted (179.814028ms)
✔ strings to keep exactly live once, in the decide flow and the transport; the app does not restate them (0.512116ms)
✔ decide with --note still asks; a No sends nothing (56.360317ms)
✔ the app's business comes from a live bus host only (1.135314ms)
✔ runApp leaves the terminal as it found it on q, end of input, SIGTERM, SIGINT, SIGHUP and an error, the first frame's included (7.219389ms)
✔ draw is pure: same state, same frame (0.858134ms)
ℹ tests 30
ℹ suites 0
ℹ pass 30
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 14775.624484
@@ -9,3 +9,7 @@ Darkwing's existing help cut pointer issue is a bounded follow-up: it points to
Remaining verification: sequential cli and queue node suites, then six named mutations (brief's four plus hidden way-out/status). verify.py runs one stage at a time, checks both scratch roots before every test, uses a process group per run with group kill on timeout, restores each mutated source, and checks the manifest. Its syntax was checked; it has not been executed yet. No verdict posted.
Test ownership: Dewey's row 69 mutants were active at the initial /proc check, then ended at 23:15:24Z. Dewey's row 90 round 2 gate started at 23:15:51Z and has 44 mutants following it; expected scratch-clear around 23:30Z. Dewey reserved the next slot for this review and paused row 94 until I report row 69 tests finished. Sage's order: work row 69 while row 90 round 2 is not requested; finish the current step and switch to row 90 once its request arrives; row 97 static review follows row 69. Preserve those gates rather than overlap tests.
Verification resumed after Dewey scratch-clear at 23:26:50Z. Fresh cli 123/0 and queue 150/0 passed sequentially with DOCKER_HOST=unix:///nonexistent.sock. Each stage performed the both-roots busy check first. The six named mutations are now running; no verdict until their source restoration and passing restored-app check complete.
Completion: six named mutants killed in their intended tests, restored-app passed, manifest 4/4 and whitespace check clean. No timeout or scratch process remained. Darkwing received the direct slot-clear message. Approve candidate c68e6582; prior pending statements are superseded by this completion entry.
@@ -0,0 +1,17 @@
Approve row 69 (#1562), round 1, candidate manifest `c68e65828726b4f15cc0e0f231a26ea30e7dc30789aad145edc15b3995921c4b`.
Reconstructed on detached base `dad20531` with `git apply --index build.patch`, node_modules symlinked. Manifest 4/4 before and after verification, no drift from the base to current refactor HEAD on those paths, no whitespace errors.
The changes satisfy the brief: tall terminals below 40 columns are tested where the decide box would otherwise fit, including the two required sizes and a short/long question sweep; y sends no resolution. The hidden box names the way out and the status no longer promises confirmation while hidden; the original status returns when the terminal grows. U+18D08 closes the width endpoint gap. Cut help/detail boxes retain their tail controls. README row counts are examples rather than a fixed requirement.
The shorter way-out sentence is a sound choice: its 29 cells fit the 34-cell interior at 40x10, retaining the No line without a cut. The render-time status override leaves the underlying state alone. The rule governing y is unchanged.
Fresh sequential verification with DOCKER_HOST=unix:///nonexistent.sock: cli 123 pass / 0 fail and queue 150 pass / 0 fail. My six independent mutation runs killed shown-no-min-cols, r3-shown-no-min, n9-17000-end-off, cut-drops-choice, hidden-no-way-out and hidden-status-promises-y, each in the intended new or extended test. No timeout. The restored app test then passed and manifest 4/4 matched again. Each mutation had its own process group, timeout group cleanup, exact-anchor check and source restoration. Both scratch roots were checked before every test stage/run. No scratch process remains, and I notified Darkwing directly that their row 91 slot can start.
Non-blocking follow-up: the existing cut-help pointer says the whole help is in mosaic inbox --json. Darkwing correctly records that as outside this row's hidden-box/status changes. A taller help screen is its actual way to see the whole help. No new blocking issue found.
I ran the changed CLI surface and queue suites plus the six required mutations. Sage still runs the full landing gate, including scripts/test-*.sh. No candidate edits, push, landing, Console operation or bus operation.
Evidence: agents/filbert/work/queue-69/r1/, including suite summaries, mutation outcomes and restored-app output.
Filbert, Codex thread 50342f6a-fff7-437a-aa75-679554289732.
+1
View File
@@ -817,3 +817,4 @@ are never rewritten or removed; corrections are new entries.
2026-10-12T23:18:05Z | dewey | row 69 round 1 review (#1562) | approve, comment 28048, candidate c68e6582; cli 123, queue 150; 8/11 mutants killed, 3 non-blocking survivors in the resolving state and status style; receipts 47292b57, rev 852 in e9988d26
2026-10-12T23:20:59Z | filbert | rows 69 (#1562) and 97 (#1591) static reviews | reconstructed manifests 4/4 (c68e6582) and 3/3 (bdeca38d), no drift, no blocking static finding; guarded verification scripts ready and syntax checked, no tests or verdicts; Dewey owns row 90 gate/mutant slot until about 23:30Z, then my row 69; row 90 round 2 takes priority when requested, followed by rows 97 and 98; Darkwing gets direct scratch-clear after my tests
2026-10-12T23:31:49Z | dewey | row 90 round 2 (#1584): 21-path packet 2f367900 on b8539480 (round 1 plus row 92's RUNNER_FILES line, decision 127), manifest 95611274; revs 853-855 ee00386b; request comment 28054, packet note 28056; reviewer filbert | in review
2026-10-12T23:33:05Z | filbert | row 69 (#1562) round 1 review on c68e6582, base dad20531 | approve comment 28055, rev 856 committed 557707c1; cli 123/0, queue 150/0, six named mutants killed, restored-app passed and manifest 4/4; scratch/worktree clear, Darkwing directly notified for row 91 slot; existing cut-help pointer is non-blocking; no push