dashboard: show meta-update progress in the META INPUTS panel

post_meta_update returns 200 immediately and runs the nix flake
update + agent-rebuild ripple in a background task, so the META
INPUTS panel looked idle for the whole multi-minute window (#259).

Track in-flight runs with a Coordinator atomic counter, exposed via
an RAII MetaUpdateGuard held across run_meta_update. Surface it as
the meta_update_running snapshot field plus a MetaUpdateRunning SSE
event (flipped only when the count crosses 0, so concurrent runs
flip the flag once). The panel shows a pulsing in-progress banner
and disables the update button while a run is active.
This commit is contained in:
iris 2026-05-22 21:54:28 +02:00
parent 20d2b48fe5
commit 2f1b846baf
6 changed files with 119 additions and 3 deletions

View file

@ -111,7 +111,11 @@ the previous process's socket release resolves itself.
`agent-<n>` 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`.
`POST /meta-update`. The lock bump + rebuild ripple runs in the
background; while it does, the panel shows a pulsing "⏳
meta-update running" banner and the update button is disabled
(snapshot field `meta_update_running`, live event
`meta_update_running`).
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)