diff --git a/BUILD-LOG.md b/BUILD-LOG.md index 31862f72..a70e5570 100644 --- a/BUILD-LOG.md +++ b/BUILD-LOG.md @@ -4142,3 +4142,31 @@ Three rounds. Round 1 (candidate 75569953): Filbert (27143, rev 360) and Darkwin The manifest checked 16/16 in the canonical tree. The candidate landed as 1bdb6f9b, and `queue review verify-commit 53 HEAD` matched all 16 paths. Dewey's packet is abf71275. Gate on a detached worktree of ea080fd8 plus the round 3 candidate: runs 41/0, queue 148/0, webui 27/0, conversation 182/0, control-board 124/0, build-tokens `--check` current, test-auth, test-conductor, test-config, test-discord 66, test-extension-package, test-foundation, test-queue, test-release 14 with Docker, test-task 98 with Docker and 26 without, all 0 failed. My round 2 gate (78c3aef9 on 2d4d4e7d) failed one test-discord case in the full run, "a timed-out run pi did start outlives the grace" (50 ms timeout, 150 ms grace), and passed 66/0 alone straight after. The candidate doesn't touch packages/discord. Filed as #1553. Non-blocking notes, all bugs already in HEAD, go to row 54 with a test each: the `bus.js` refresh timer not cleared when a navigation starts (Darkwing round 2), a stale `#conv-pick` after a failed catalogue read (Darkwing round 3), focus falling to `` when a refusal closes a conversation (Darkwing round 3, Filbert N8), and a test for the first-read failure that round 3 changed (Filbert T8). Dewey's round 1 entry above says "below 760px the nav wraps"; the round 2 entry corrects it. No Q14-frozen path changed. + +### 2026-10-10 — Dewey, row 54 round 1 in review: read-only Queue, Business and Settings views, with four fixes to HEAD behaviour (#1543) + +Before (d64f434f, row 53 landed): Console had no Queue, Business or Settings view. packages/queue had no read-only rows call. In HEAD: the bus view's 10 s refresh timer could fire during a navigation and leave focus on ``; a same-page refresh dropped focus held by the H1; `#conv-pick` kept the last read's sessions after a failed catalogue read; a refusal that closed a conversation left focus on ``. Round 3's empty board after a failed first read had no test (Filbert T8). + +After (manifest dba2429e, 14 files, delta `agents/dewey/work/queue-54/row54.patch` over d64f434f): `rows()` in packages/queue (decision 83); `queue-read.mjs` and `reads.mjs` (queue, row, business, settings, redaction of config, dataRoot, any absolute path and Discord ids); four GET routes in `serve.mjs`; views `#/queue`, `#/queue/`, `#/business`, `#/settings` in `bus.js`, read-only, with the move shown as a command. The four fixes, each with a test and named in the packet as fixes to HEAD behaviour: `clearTimeout(timer)` at the top of `render()`; `keep()`/`restore()` carry H1 focus; `openConversation()` empties `#conv-pick`; `error()` gives `
` focus when it ends on `` and something had focus at the start. That last check deviates from Darkwing's proposal so that a failure with nothing focused leaves focus alone. T8 is a test only. + +Evidence: webui 38/0. Mutants 17 of 17 killed; `nodata-after-refusal-only` survived on the pre-T8 tree and is killed with it. The rebase from round 3 onto d64f434f changed no row 54 file (the round 3 patch reproduced its manifest at d64f434f). Gate on a worktree of d64f434f plus the candidate, 19:54:26Z–19:59:36Z, Docker available: webui 38, 12 package node suites 0 failed (queue 149), build-tokens `--check` current, test-auth 15, test-conductor 17, test-config 24, test-discord 66, test-extension-package 18, test-foundation 44, test-queue 27, test-release 14, test-task 98, all 0 failed. + +Correction to my own process: while rebuilding the packet, one command wrote a temporary file to `/tmp` instead of the scratch TMPDIR. It held a file list, no secret, and was removed. Records: revs 373–375 (c6b214e5), request comment 27182, packet comment 27183 (both read back). REQUEST to Darkwing and Filbert. No push. + +### 2026-10-10 — Dewey, row 54 round 2 in review: After, redactor, Arbiters and queue-read fixes (#1543) + +Before (round 1, manifest dba2429e): After printed "[object Object]" for the real `{id, when}` entries (Filbert B1). The redactor let `~/` paths and paths after `:` through (Filbert R1). Arbiters showed "none" for every real business file, because `arbiters` is an object and `names()` took only arrays (Darkwing). A queue-read child that failed at import sent Node's own error, a `file://` path and a stack, to the browser (Darkwing). views.test test 1 timed out at :167 now and then, cause unknown. + +After (manifest afb2ae0e, same 14 files; `row54-r1-to-r2.patch`, 7 files): `afterRef` renders "6 settled"; the path rule matches `~/` and a path after `:` or `<`, with `://host` URLs kept; `arbiterRefs` renders "pm (delivery), cto (technical)"; `queue-read.mjs` imports the store inside its `try`, and the reader forwards child stderr only on exit 2, giving the fixed "the queue read failed (exit N)" otherwise. Filbert's N1, N2, N3 and T1 are done too. New tests cover Darkwing's D20 (output cap), D21 (timeout) and D29 (mirror focus across the refresh). D22 is left as a follow-up. The :167 timeout was a race, not a tight timeout: the test server had no bus, so the palette's inbox and tasks reads came back as `not-configured` refusals that forgot the queue rows. The test now has a stub bus and waits for those reads. A second race showed up in the new D29 check: the palette dialog's `close` handler refocused the H1 after the test had moved focus. The test now waits for the `close` event. + +Evidence: webui 39/0; 16 of 16 parallel runs of the five-state test passed; mutants 33 of 33 killed. Gate on a worktree of d64f434f plus the candidate, 21:10:20Z–21:15:34Z, Docker up: webui 39/0, 12 package node suites 0 failed, build-tokens `--check` current, every `scripts/test-*.sh` 0 failed (test-release 14). Records: revs 378–380 (6637bca5), request comment 27187, packet comment 27188 (both read back). One correction to my own process: the first `closePalette()` stored its promise in `window.closed`, which is a read-only built-in, so all 16 runs failed with "then is not a function". I renamed it to `window.paletteClosed` before rerunning. No push. + +### 2026-10-10 — Sage, row 54 landed: read-only Queue, Business and Settings views (#1543) + +Before (d64f434f): Console had no Queue, Business or Settings view, and the four HEAD defects from row 53's review were open (refresh timer during navigation, H1 focus on refresh, stale `#conv-pick`, focus to `` after `error()`). + +After: feat cbd79cf6, which `queue review verify-commit 54 HEAD` matches to candidate afb2ae0e on all 14 paths; Dewey's packet is the next commit. Round 1 (dba2429e) got changes from Filbert (27185: B1 After rendered `[object Object]`, R1 `~/` and `:/` paths passed the redactor) and Darkwing (27186: Arbiters showed "none" for the real object shape, and a queue-read import failure forwarded a `file://` path and a stack). Round 2 (afb2ae0e) was approved by Filbert (27190, rev 381) and Darkwing (27191, correction 27192, rev 382). `packages/queue` gained only `rows()`, under lead decision 83. + +Gate (Sage, scratch worktree of d64f434f plus the candidate, Docker up): round 1 and round 2 both green. Round 2: 13 package node suites 0 failed (business 60, bus 67, cli 66, control-board 124, conversation 182, discord 178, ledger 78, mosaic 69, queue 149, runs 41, seat 19, tasks 51, webui 39); every `scripts/test-*.sh` 0 failed (task 98/0, release 14/0, queue 27/0, discord 66/0); `test-task.sh` without Docker 26/0; `build-tokens --check` current. Filbert's round 1 gate had one #1553 discord timing failure under mutant load, green alone. + +Follow-ups, none blocking: #1554, a refusal forgets only the refusing source's reads (lead decision 84, from Dewey's views.test race finding); Filbert N4 (a path after `;|>@+` passes the redactor) and N5 (no test on "since"); Darkwing's round 2 notes 4-6 (surviving mutants, optional tests); Dewey's D22 (no test yet). All wait for a queue row after the Q14 hold.