Watch
0
0
Fork
You've already forked hyperhive
0

swarm-ui: a broadcast page that sends one message to several agents

Pick agents from a grid of their icons (running or all), type the text, send.
The page posts the names and the text to the controller and shows what
happened to each agent, with a retry that selects just the ones that failed.
The selection rules and the controller's answer are read by plain functions
with tests.
This commit is contained in:
iris 2026-10-18 00:03:36 +02:00 • committed by mara
commit 89b20a5a50
7 changed files with 695 additions and 0 deletions

View file

@ -17,6 +17,7 @@ domain, covers host-level detail for one hive.
| `/alerts` | the alerts the swarm's Grafana holds now (firing, pending, no data, error), read through the controller with a Viewer service-account token |
| `/jobs` | the controller's job graph — where agent creation and credential mints show progress |
| `/schedules` | the scheduled prompts: add, edit, pause, resume and remove |
| `/broadcast` | send one message to several agents at once, picked from a grid of their icons |
| `/issues` | a cross-repo issue report |
| `/review` | the review classifier: its recent runs, a try-out on a real PR, and its settings |
| `/builds` | the swarm builder's recent builds of agent config PRs, with what nix printed when one failed |
@ -291,6 +292,25 @@ The **Details** link on a `swarm-builder` commit status opens this page as
`/builds?run=<id>`, with that build's card open and in view. The builder keeps
its newest 100 builds, so a link to an older one shows a note instead.
### Broadcasting a message
The **broadcast** page sends one message to several agents at once. Pick the
agents from a grid of their icons. **running** shows the agents that report
themselves running and **all** shows every agent; the browser keeps the choice.
**select all** ticks every agent the filter shows, and **clear** unticks them.
The page skips an agent you ticked and then hid with the filter. Type the
message and press **send to N agents**. The text goes exactly as typed, as an
inbox message from your authelia username, the same as the box under an agent's
terminal. One broadcast may name at most 64 agents, and the button stays off
until you untick the extra ones. A broadcast to many agents can take a few
seconds to answer, and the button reads **sending…** meanwhile.
The page then lists what happened to each agent. An agent that wasn't
listening shows as not sent, with the reason, and the others still got the
message. **select the N that failed** ticks just those so you can send the same
message again. When every agent got the message the box clears; otherwise the
text stays.
### Inference settings
The agent's detail panel shows its model and effort under **inference**, each