control board: log Gate B pass, seat registration shown on the board (#1504)

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
2026-09-12 11:13:05 -05:00
co-authored by Claude Fable 5.1
parent 17153fe140
commit d0fb5b0f20
@@ -87,6 +87,16 @@ itself the moment the agent writes anything new, and "Unsee" puts a row
back by hand. `seen.json` is only ever written by that click, never by a back by hand. `seen.json` is only ever written by that click, never by a
scan. scan.
**2026-09-12 — Gate B passed: seat registration on the board.**
Jason restarted the board on 17153fe1 and relaunched darkwing through
`agents/darkwing/launch.sh`. The row shows the registration (pid alive, not
stale), workspace and active project from the record, and the last message
updating as the session runs. Task still comes from the first user message
because the launch gave no `--task`; the next real use is
`scripts/mosaic seat task darkwing "<text>"` so the row shows the assigned
task instead. Fleet seats stay on the old launchers; only `agents/` seats
register. Next piece in Jason's order: reply-from-board.
## How the scanner decides state ## How the scanner decides state
The scanner reads the newest pi session log for each agent, plus whether The scanner reads the newest pi session log for each agent, plus whether
@@ -324,3 +334,17 @@ receives a message there is nothing newer to read. The registration's
`startedAt` and pid are the only trace of the relaunch, which is what the `startedAt` and pid are the only trace of the relaunch, which is what the
Registered line is for. A later refinement could say "relaunched at X, no Registered line is for. A later refinement could say "relaunched at X, no
messages since" when `startedAt` is newer than the last activity. messages since" when `startedAt` is newer than the last activity.
**2026-09-12 — Model per row (#1503).** Jason: "The running agent (sonnet,
opus, gpt-6-astra) should surface in the interface as well." Pi logs name
the model twice: a `model_change` entry (`provider`, `modelId`) at launch
and on every `/model` switch, and `model`/`provider` on each assistant
turn. `readSession` now keeps the latest of either; the record gains
`model` and `provider`; the page shows the model in small type under the
agent name (provider in the hover) and a Model detail row. A `/model`
switch shows on the next scan even before the seat answers. Blank when the
log names no model; rocko has no pi log and stays off the board. Checked
on a scratch board against the real data root: all 42 rows carried a
model (darkwing and sage `gpt-6-astra`, filbert `glm-5.3`, fleet rows a mix
of `gpt-5.6-*` and `glm-5.3`). Board suite 91/91. Jason's board on 7331
needs a restart to pick this up.