Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
@@ -238,6 +238,63 @@ ledger's output, not from memory.
|
||||
- If a number cannot be computed from evidence it prints "unknown", never a
|
||||
guess.
|
||||
|
||||
## Piece 4: WebUI first screen (Console)
|
||||
|
||||
Approved by Jason 2026-09-12 ("speed walk to success") after Gate D. Decision
|
||||
MOSAIC-STACK-D-002: Dewey's design 3, Console
|
||||
(`agents/dewey/work/wui/mockups/d3-console.html`), is the WebUI starting
|
||||
point. The board is its first and only screen. Owner: dewey. Dewey opens the
|
||||
issue and updates `CURRENT.md` when picking it up.
|
||||
|
||||
### What it is
|
||||
|
||||
`packages/webui`: `node packages/webui/src/cli.mjs serve [--port N]
|
||||
[--board http://127.0.0.1:7331]`. Loopback only. One page, the Console
|
||||
layout from the mockup, populated from the control board's `/api/board`
|
||||
JSON: project tree on the left, dense session table (state, task with its
|
||||
source tag, active project, workspace, model, registered line, last
|
||||
activity), inspector drawer on the row with the last assistant text and the
|
||||
reply box. Actions proxy to the board: `POST /api/seen` and `POST /api/reply`
|
||||
unchanged in shape. "Simulated" notices from the mockup are gone; every
|
||||
control either does the board thing or does not exist yet.
|
||||
|
||||
- Data: only what `/api/board` already serves. No new scanner, no new
|
||||
sources, no seat writes. If the mockup shows a field the board does not
|
||||
have, the field is dropped for this piece and a line goes to
|
||||
`docs/plans/DEFERRED.md`.
|
||||
- Style: the mockup's CSS and brand assets as they are, palette and
|
||||
appearance switches kept if they are already built, otherwise dropped.
|
||||
- Refresh: same as the board page (its scan on load or refresh); no polling
|
||||
loop beyond what the board page already does.
|
||||
- No auth, no accounts, no settings page, no second screen, no router.
|
||||
|
||||
### Gate E (yes/no)
|
||||
|
||||
Jason works Monday 2026-09-14 from the WebUI and does not open the board's
|
||||
own page or a terminal to a repo seat to answer "who is waiting on me". Pass
|
||||
is his say-so at the end of the day, with any exception written as a line in
|
||||
`DEFERRED.md` with the reason.
|
||||
|
||||
### Tests
|
||||
|
||||
- Page renders the fixture `/api/board` JSON (the board's own test fixture)
|
||||
into the table and tree; counts match the fixture.
|
||||
- Seen and reply proxy to the board with the same body; a fake board on
|
||||
localhost captures the requests.
|
||||
- Board unreachable: page says so with the URL, no blank screen.
|
||||
- Loopback bind only, as the board.
|
||||
- Dewey's existing mockup verifier (`work/wui/checks/mockups-verify.mjs`)
|
||||
or its equivalent runs against the served page for contrast and 320px
|
||||
width.
|
||||
|
||||
### Boundaries
|
||||
|
||||
- `packages/control-board` changes only if the WebUI needs a field the
|
||||
scanner already computes but does not serialize; each such change is one
|
||||
commit with a test, nothing else.
|
||||
- No fleet sources, no comms changes, no `packages/seat` changes.
|
||||
- Dewey coordinates with Darkwing before touching any board file.
|
||||
|
||||
## How the scanner decides state
|
||||
|
||||
The scanner reads the newest pi session log for each agent, plus whether
|
||||
|
||||
+13
-4
@@ -50,10 +50,19 @@ Gate C passed 2026-09-12 on 867619dc (logged by Jason at 4f830680):
|
||||
answered in its own session with no send attempt, and the row showed the
|
||||
answer on the next scan. #1505 is closed.
|
||||
|
||||
Next action: Jason runs Gate D for piece 3, the ledger, under #1506:
|
||||
`node packages/ledger/src/cli.mjs --since 2026-09-06 --until 2026-09-12`.
|
||||
Choose one number to move next week and write that sentence with the number
|
||||
into this file. Do not infer acceptance from the implementation or tests.
|
||||
Gate D (2026-09-12, Jason's run of the ledger for 2026-09-06 to 2026-09-12):
|
||||
**18.9 human messages per closed issue.** That is the number to move next
|
||||
week: every message Jason types to a seat is a nudge the rails did not
|
||||
absorb. Target for the week of 2026-09-13: under 10, by assignment through
|
||||
`mosaic seat task` and the board instead of the terminal, then the
|
||||
orchestrator seat. Companion numbers from the same run, for context only:
|
||||
8 issues closed, median 2.7 hours open, 1.9 follow-up commits per issue.
|
||||
|
||||
Next action: piece 4, the WebUI on Dewey's Console design (MOSAIC-STACK-D-002).
|
||||
Brief on the plan page, section "Piece 4: WebUI first screen (Console)".
|
||||
Owner: dewey. Darkwing closes #1506 (Gate D written) and #1504 (registration
|
||||
shipped, Gate B passed), then holds for piece 5 (orchestrator seat) unless
|
||||
Jason calls it. #1503 stays open until Jason rules on "who is waiting on me".
|
||||
|
||||
`packages/ledger` is implemented: read-only local refactor subjects, one
|
||||
Gitea issue request, repo seats' user messages, two tables and JSON. Ledger
|
||||
|
||||
@@ -55,13 +55,12 @@ at every gate. Started 2026-09-12 during the control board MVP.
|
||||
|
||||
## Queue (Jason's order)
|
||||
|
||||
1. Ledger (piece 3, in progress, Gate D).
|
||||
2. WebUI on Dewey's Console design absorbs the board as its first screen
|
||||
(MOSAIC-STACK-D-002).
|
||||
1. WebUI on Dewey's Console design absorbs the board as its first screen
|
||||
(piece 4, MOSAIC-STACK-D-002, Gate E on Monday 2026-09-14).
|
||||
3. Orchestrator seat: assigns tasks through `mosaic seat task`, closes the
|
||||
"set by" gap.
|
||||
4. Fleet launch through `mosaic launch`: the stress test.
|
||||
|
||||
## Done
|
||||
|
||||
- (none yet)
|
||||
- Ledger (piece 3, #1506): shipped cd0aa5fb, Gate D written 2026-09-12 (18.9 human messages per closed issue).
|
||||
|
||||
Reference in New Issue
Block a user