From c15eb8508520360787ae497ae7b239ae5d9e3b70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Wed, 20 May 2026 11:39:01 +0200 Subject: [PATCH] docs: web-ui.md dashboard section list matches index.html add the M3T4 1NPUTS + QU3U3D R3M1ND3RS sections that the list was missing, fix the ordering, and list the retry-reminder / meta-update endpoints. --- docs/web-ui.md | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/docs/web-ui.md b/docs/web-ui.md index 8e9135e..a200c1a 100644 --- a/docs/web-ui.md +++ b/docs/web-ui.md @@ -91,7 +91,13 @@ the previous process's socket release resolves itself. age + claude-creds badge). Two actions: `⊕ R3V1V3` (queues a Spawn approval; existing state is reused), `PURG3` (wipes state + applied dirs; `POST /purge-tombstone/{name}`). -4. **M1ND H4S QU3STI0NS** — pending operator-targeted `ask` +4. **M3T4 1NPUTS** — inputs in `meta/flake.lock` the operator can + selectively `nix flake update` (hyperhive first, then + `agent-` rows). Checking inputs + submitting bumps the lock + in `/meta/` and rebuilds the selected agents in sequence; each + outcome reaches the manager as a `rebuilt` system event. + `POST /meta-update`. +5. **M1ND H4S QU3STI0NS** — pending operator-targeted `ask` questions, i.e. rows with `target IS NULL` (peer-to-peer questions live in the same table but never surface here) (amber pulsing border). Free-text fallback always rendered @@ -101,16 +107,23 @@ the previous process's socket release resolves itself. with `[cancelled]`. Questions with a `ttl_seconds` show a `⏳ MM:SS` chip; the host-side watchdog auto-cancels with `[expired]` when the deadline fires. -5. **0PER4T0R 1NB0X** — recent messages addressed to `operator`, +6. **QU3U3D R3M1ND3RS** — reminders agents have scheduled for + themselves (via the `remind` tool) but not yet delivered. + Each row shows the owner, due time, and message; a `CANC3L` + button hard-deletes (`POST /cancel-reminder/{id}`) and a + `R3TRY` button re-arms one whose delivery failed + (`POST /retry-reminder/{id}`). Backed by `GET /api/reminders`. +7. **P3NDING APPR0VALS** — the queue (see "Approval card" + below). The R3QU3ST SP4WN form lives at the top of this + section since submitting it immediately queues an approval + that lands directly below. +8. **0PER4T0R 1NB0X** — recent messages addressed to `operator`, derived client-side from the dashboard event stream (no longer a snapshot field). Cold load seeds from `/dashboard/history`'s 200-message backfill; subsequent `sent` events with `to == "operator"` are appended live. Cap 50, newest-first. -6. **P3NDING APPR0VALS** — the queue. The R3QU3ST SP4WN form - lives at the top of this section since submitting it - immediately queues an approval that lands directly below. -7. **MESS4GE FL0W** — live broker tail wrapped in a +9. **MESS4GE FL0W** — live broker tail wrapped in a `.terminal-wrap` (same chrome as the per-agent terminal). Cold load backfills the last ~200 messages from `/dashboard/history`; live frames arrive on @@ -266,6 +279,10 @@ not ours. - `GET /api/reminders` — list pending reminders for the dashboard's queued-reminders panel. - `POST /cancel-reminder/{id}` — hard-delete a pending reminder. +- `POST /retry-reminder/{id}` — re-arm a reminder whose delivery + failed (clears the failure state so the scheduler retries). +- `POST /meta-update` — `nix flake update` the selected + `meta/flake.lock` inputs, then rebuild the affected agents. - `GET /dashboard/stream` — unified live event channel: broker `sent` / `delivered`, plus the mutation events listed below. Each frame carries `seq`.