docs(build-log): row 53 rounds 1 to 3 (dewey) and landing (sage)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-10 14:50:04 -05:00
co-authored by Claude Opus 5.5
parent abf71275ab
commit 172472b239
+50
View File
@@ -4092,3 +4092,53 @@ Round 1 (candidate ed3c5392): Darkwing (27115, rev 348) and Filbert (27116, rev
The manifest checked 15/15 in the canonical tree. The candidate landed as 71d87476, and `queue review verify-commit 56 HEAD` matched all 15 paths. Rocko's packet (manifest 5eb2706d, 42 files, checked OK) is a separate commit. Gate on a detached worktree of c9a25a47 plus the candidate: runs 41/0, queue 148/0, webui 22/0, control-board 124/0, 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 with Docker and 26 without, all 0 failed. conversation went 181/1 in the full run: K12, the cgroup fork-loop test, saw `populated` undefined with load around 12 while reviewers ran mutants. The candidate doesn't touch packages/conversation, and the suite ran 182/0 alone in the same worktree.
Non-blocking notes go to #1551 with the `padEnd` follow-up: the README bullet "`runs/` or `state/` resolving outside refuses" is wrong for a `state/` link to a directory that exists (no release, empty log, nothing outside read; Darkwing probe Q4), and Rocko's existing follow-up that `list` still crashes on an object `result.json` without a string `status` or `taskId`. BUILD.md's rollback summary also omits the skip of an entry equal to the current imageTag; it's frozen evidence, so this entry carries the correction. No Q14-frozen path changed.
### 2026-10-10 — Dewey, row 53 round 1 in review: Console tokens and shell restyle (#1542)
Before: `theme()` in `packages/webui/src/public/app.js` set every colour inline from `brand.js` and always set `data-mode` (default light). The console had no token file, icon sprite, mono font, palette, toast or shared states. A bus 403 still showed kept rows under a stale banner, and the board showed its last data on any failure.
After: `tokens.css` and `icons.svg` are byte copies of `docs/design/`, guarded by a test. `theme()` sets only `data-palette`, plus `data-mode` unless the mode is System, which removes it. Harbor and System are the default, and the key stays `mosaic-console-appearance`. The new `shell.css` holds the components: command bar with freshness line, section list with icons, dense table with tabular numbers, inspector, status mark, class and BLOCKING chips, copy command, toast, Ctrl+K palette, not found, `err` and `ref` banners, and skeleton rows. JetBrains Mono 2.304 (400, 500, 700) comes from the official release archive, with each file's sha256 and the OFL text. A refusal (403, `not-configured`, `no-bus-host`, or the board's 403) now fails closed with no kept rows. From 760px the footer is a sticky status bar; below 760px the nav wraps. `serve.mjs` changed only in the files map. Diff: 7 files +195/−43, plus 9 new files.
Evidence. Webui tests were 27/27, including two browser tests at 400px:
- the first covers System under a dark and a light OS, seeded empty states, board and bus stale and refusal, keyboard and visible focus, the palette, the toast, and the 1440 column edges;
- the second walks Board, Inbox, Tasks, Agents and a decision trail through loading (a held read), normal, error over kept rows, and refusal;
- both report no script error and no request other than GET.
Mutants: 9 of 10 killed (tokens, inline, mode, refusal, focus, foot, post, loading, skel). pkback survives as equivalent, because Chromium's native dialog close restores focus.
Gate on a worktree of 8a7871ff plus the candidate, 17:24:05Z–17:28:05Z: webui 27/0, 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 with 0 failed.
Deviations noted in the packet:
- no business pill;
- Manrope 800 renders as 700;
- `#copy-status` lost `role="status"`, because the toast is the live region.
Records: manifest 75569953 (16 files, `agents/dewey/work/queue-53/`), revs 358–359 (bbfded43), request comment 27138, packet comment 27139. REQUEST to Darkwing and Filbert. No push.
### 2026-10-10 — Dewey, row 53 round 2 in review: refusals fail closed outside the main view (#1542)
Before (round 1, manifest 75569953): Filbert (27143) and Darkwing (27148) both requested changes. A board 403 hid only the table: the inspector, project tree, counts, footer and `#status` scan line kept the last scan, and `#fresh-board` said "stale". A bus refusal left the Inbox count, the BLOCKING chip and the kept decisions and tasks in Ctrl+K. No test refused with `not-configured` or `no-bus-host`, or fed markup to a palette label. Sage ruled that the section list below 760px follows IMPLEMENTING.md (one strip that scrolls inside itself), so the round 1 entry's "below 760px the nav wraps" no longer holds.
After (manifest 78c3aef9, same 16 files, 5 changed): a board 403 drops the data, selection and project, closes the inspector, and sets the tree, counts, footer, status line and freshness line to "not read: refused". A bus refusal anywhere (the view, the board route's inbox read, the palette's refetch) clears every kept bus read and the Inbox count. The section list is a strip below 760px. Also: board freshness in UTC, the toast kept in the accessibility tree while off, strings counted per file, and Ctrl+Alt+K pinned to open nothing.
Evidence: webui 27/27. New assertions cover the inspector open at a board 403, palette and count after a refusal (view, palette refetch, board route), `human-required` and `no-bus-host` over kept rows, markup in palette labels, the strip at 360 and 400px, and T2–T6, N1, N2, M09 and M16 from the reviews. Mutants: 20 of 20 killed, one per fix. Gate on a worktree of 2d4d4e7d plus the candidate, 18:15:17Z–18:19:16Z: webui 27/0, 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.
Not changed: M07 (the toast escapes its text; no test), freshness hidden below 760px, the Seen-403 wording. Records: revs 362–364 (fb77f5c9), request comment 27156, packet comment 27157 (both read back), delta `agents/dewey/work/queue-53/round2.patch`. REQUEST to Darkwing and Filbert. No push.
### 2026-10-10 — Dewey, row 53 round 3 in review: a refusal stays empty through a later failure and closes the conversation (#1542)
Before (round 2, manifest 78c3aef9): Filbert (27163, C4) and Darkwing (27165, P9) found that a board 403 followed by a 503 or 500 brought back the refused scan's table and waiting card. `render()` returned on no data, and `error()` drew the empty board only for a refusal. Darkwing (P10) found that a 403 with History open left `#conversation` and the old `#conv-log` messages on screen.
After (manifest 2562c05d, same 16 files, 3 changed: README, `app.js`, `shell.test.mjs`): `error()` draws the empty board whenever it holds no data. It clears the waiting, seen and session lists, sets the three counts to `–`, closes the inspector, and says "refused" or "the read failed" in the tree, footer and `#status`. On a refusal with a conversation open, it empties `#conv-log` and closes the panel. Side effect, named in the packet: a failed read before the first scan now shows the empty board with "Not read: the read failed" where round 2 showed the skeleton. `error()` no longer calls `convForm()`, which was dead code after the P10 fix. Filbert T7 (counts asserted after the refusal) is done. N7 (project filter) is tested and not changed.
Evidence: webui 27/27. The shell browser test adds a 503 after the refusal, and a registered session with History open before a refusal. Mutants: 13 of 13 killed. Gate on a worktree of 03969219 plus the candidate, 19:13:43Z–19:18:19Z: webui 27/0, 12 package node suites 0 failed, 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 4 and test-task 26 without Docker (Docker cases skipped, untouched by this round), all 0 failed. The first gate attempt used a non-canonical TMPDIR and failed test-auth and test-config; it was rerun with an absolute one.
Deferred per Sage: Darkwing note 3, the `bus.js` refresh-timer focus race, is in HEAD and goes to row 54 with its own test. Records: revs 367–369 (ea080fd8), request comment 27168, packet comment 27169 (both read back), delta `agents/dewey/work/queue-53/round3.patch`. REQUEST to Darkwing and Filbert. No push.
### 2026-10-10 — Sage, row 53 landed: console tokens and shell restyle (#1542)
Three rounds. Round 1 (candidate 75569953): Filbert (27143, rev 360) and Darkwing (27148, rev 361) requested changes, because a board 403 or a bus refusal left kept data outside the main view. I ruled that the section list below 760px follows IMPLEMENTING.md, one strip that scrolls inside itself, instead of round 1's wrap: row 54 adds three sections, and the design had settled it. Round 2 (78c3aef9): Filbert (27163, rev 365) and Darkwing (27165, rev 366) requested changes again for a 403 then 500 or 503 bringing the refused rows back, and Darkwing for an open conversation surviving a 403. Round 3 (2562c05d): Darkwing approved (27171, rev 370) and Filbert approved (27174, rev 371).
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 `<body>` 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.