Add control board status scanner and MVP plan (#1503)

Step 1 of the control board MVP (decision MOSAIC-STACK-D-001): a plan page,
Gitea #1503, and packages/control-board, which reads each agent's newest pi
session log plus tmux liveness and writes one status file per agent under
<dataRoot>/board/. 23/23 tests; independent review approved after three
fixes (length stopReason as error, unknown liveness state, secrets-boundary
test). CURRENT.md now points at step 2, the page.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
2026-09-12 07:26:03 -05:00
co-authored by Claude Fable 5.1
parent 1993039c76
commit b9f59a5903
10 changed files with 1003 additions and 15 deletions
+16 -15
View File
@@ -7,22 +7,23 @@ update this file to the next action). No ambiguity, no re-planning.
## Next action
Jason accepted the #1500 fixture-only increment on 2026-09-12 by running the
two-test demonstration himself on the canonical checkout at 5abbabb7 (2/2 pass);
receipt `docs/plans/reviews/2026-09-12_m20-increment2-owner-acceptance.md`.
#1500 is closed. No increment 3, launcher integration, production refresh or
deployment is authorized by that acceptance; the headless identity-env leak
remains a separate intake owned by Darkwing.
Jason decided on 2026-09-12 (MOSAIC-STACK-D-001) that the MVP is the control
board: one web page listing running agent sessions across projects, showing each
one's status, and flagging which ones are waiting on him. Plan page:
`docs/plans/2026-09-12_control-board-mvp.md`. Tracking: #1503. Step 1 (status
scanner `packages/control-board`, plan page, ticket) is done in this checkout;
running `node packages/control-board/src/cli.mjs scan --print` writes one status
file per agent under `<dataRoot>/board/`. The registry line (increment 3,
headless identity-env leak) stays parked; #1500 is closed.
Next action: re-plan against Jason's 2026-09-12 MVP decision MOSAIC-STACK-D-001
(control board: one page listing running agent sessions across projects with
status and a "waiting on you" section, deliberately smaller than the current
registry line). Present Jason a concrete plan that reconciles the registry
queue (increment 3 candidates, identity-env fix) with that MVP, with a
recommendation and acceptance evidence, before starting any new implementation.
Owner of this planning action: the active coordinator session (jarvis, Claude
Code, taking over darkwing's pi session). The registry queue does not resume by
inertia.
Next action: step 2 of #1503 — the web page. One local page that reads
`<dataRoot>/board/index.json`, groups sessions by project, shows the plain-word
state per agent, puts a "waiting on you" section at the top, and refreshes
itself (re-running the scanner on each refresh is acceptable). Reuse Dewey's
control-board mockups under `agents/dewey/work/wui/` for layout where they fit.
Acceptance: Jason opens the page in a browser and sees the same rows the
`--print` output shows, with no manual steps beyond starting the page. No auth,
no hooks/plugins, no comms, no launcher changes, no new root files.
## Completed checkpoint: #1500 increment 2 (historical)