control board: reply from the board through agent-send.sh (#1505)

Piece 2 of the MVP (#1503). A one-line reply box and Send in the detail
of rows with a live registration; POST /api/reply runs
tools/tmux/agent-send.sh -s <session> -S <host>:control-board
[-L <socket>] -m <text> once for one seat and returns the exit code,
stdout and stderr. The page shows delivered or failed with the tool's
stderr; other rows say "reply needs a registered seat". No send-keys,
queue, retries, history or broadcast; packages/seat and agent-send.sh
untouched. Every message ends with a fixed trailer telling the seat to
answer in its own session (Jason's refinement after the first Gate C
exchange; the board has no pane). Board suite 98/98.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
This commit is contained in:
2026-09-12 11:30:30 -05:00
co-authored by Claude Fable 5.1
parent a62ca1904f
commit 867619dca2
8 changed files with 508 additions and 19 deletions
+21 -7
View File
@@ -32,13 +32,27 @@ Package: `packages/seat`. Fleet seats stay on their own launchers (Jason's
ruling, 2026-09-12); only `agents/` seats register. A record whose pid is
gone is stale and does not override the derived values.
Next action: step 3 of #1503 continues — daily use with #1504 landed. Jason
launches his seats through the new path (or the launch scripts, which now
register), sets tasks with `seat task`, and reports what is wrong, missing
or confusing; each report becomes a small fix with a test, committed and
pushed to `refactor`. The sequence Jason set stays: seat registration (done),
then reply-from-board, then the WebUI on Dewey's Console design absorbs the
board as its first screen. Close #1503 when Jason says the page answers "who
Gate B passed 2026-09-12 (seat registration shown and used on the board).
Piece 2, reply-from-board (#1505; brief in the plan page, section "Piece
2: reply-from-board", approved by Jason 2026-09-12), is built and pushed
2026-09-12: a text box and Send in the detail of registered, live rows;
`POST /api/reply` runs `tools/tmux/agent-send.sh -s <session> -S
"<host>:control-board" [-L <socket>] -m <text>` and returns the exit code,
stdout and stderr; the page shows `delivered` or `failed` with the stderr.
No send-keys, queue, history or broadcast; no change to `packages/seat` or
`agent-send.sh`. Board suite 98/98.
Gate C's first exchange happened 2026-09-12 ("pizza?" to darkwing:
delivered, read back within one scan; the seat's send-back to
`control-board` was refused as expected, so every board message now ends
with a fixed trailer telling the seat to answer in its own session).
Next action: Jason confirms Gate C on the trailer build (restart the board
on 7331, answer a `waiting` seat, the row turns `working` with the reply
as its newest user message and the seat answers in its own session).
Record the pass or the failure in the plan page and here. Then the WebUI on Dewey's Console design absorbs
the board as its first screen. Close #1503 when Jason says the page answers "who
is waiting on me" without him opening a terminal. Out of scope until he
asks: auth or provider registry, roster schema changes, hooks/plugins, comms,
memory, multiple sessions per seat, stopping seats, new root files. The