hyperhive/docs/web-ui/README.md
iris 53ce83ff56 docs(web-ui): fix Stats/Peers/Settings tab-strip miscategorization
argus review on hyperhive#2986: the README listed Stats/Peers/Settings
alongside Permissions/Schedules as dashboard tabs. Checked the actual
frontend rather than trusting dashboard.md prose (which is internally
inconsistent on this - some section headers say "tab" for things that
turned out not to be):

- stats.html and settings.html are real separate bundles
  (frontend/packages/dashboard/src/{stats,settings}.{html,js}) - same
  shape as builds.html/core.html/logs.html, moved to the "own page"
  list.
- Peers is neither a tab nor a page - swarm.js::renderPeerHives
  confirms it is a card list rendered inside the SW4RM tab
  (#peers-block/#peers-section), gated on state.peer_hives being
  non-empty. Folded into the SW4RM bullet instead of listing it as its
  own item anywhere.

The dashboard tab strip is genuinely just four: SW4RM, Y3R C4LL,
P3RM1SS10NS, SCH3DUL3S.
2026-08-02 23:30:39 +02:00

98 lines
4.7 KiB
Markdown

# Dashboard & Web UI
The operator-facing entry point for running a hive day to day. If you
want implementation detail — wire formats, DOM structure, event
plumbing — see [Dashboard layout](dashboard.md), [Per-agent
page](agent.md), [Shape](shape.md), and [CSS theme variables](css-vars.md)
below; this page only covers what you actually do here.
## Where things are
Everything starts at the **H0M3 hub**, served at `/` — a grid of tiles
linking to every surface (Dashboard, Flow, Logs, Builds, Stats,
Settings, Core, Credentials, plus Matrix/Forge when enabled). Every
page links back to H0M3, so you're never more than one click from the
hub.
The **dashboard** itself (`/dashboard.html`) is where you'll spend most
of your time. It's a single page with exactly four tabs:
- **SW4RM** — every agent, live. This is the default tab and the one
you'll check most. When the hive has peer hives configured, they show
up here too, as a card list under the main container list — not a
separate tab.
- **Y3R C4LL** — anything waiting on *you*: pending approvals and
agent questions. If an agent needs a decision from you, it's here.
- **P3RM1SS10NS** — what tools and system-level access each agent has.
- **SCH3DUL3S** — scheduled prompts and agent self-reminders.
Everything else lives on its own page instead, all reachable from the
H0M3 hub: **Flow** (`/flow.html`, the raw live message stream across
the whole swarm), **Logs** (`/logs.html`, per-agent and host
journals), **Stats** (`/stats.html`, swarm-wide usage stats), **Settings**
(`/settings.html`, your local browser preferences), **Builds** (`/builds.html`, the rebuild
queue and build history), **Core** (`/core.html`, tombstones and
container resource use), and **Credentials** (`/credentials.html`,
provisioning matrix/GitHub/forge accounts per agent).
Each agent also has its own page — a full terminal view of that
agent's session, reachable by clicking its name anywhere in the
dashboard, or directly at `/agent/<name>/` (or `http://<host>:<port>/`
if the gateway isn't in front).
## The things you'll actually do
**Check on an agent.** SW4RM shows every container as a row: name,
whether it's running, what it's currently doing (a live status pill —
`rebuilding…`, `starting…`, and so on — while something's in flight),
and quick links (stats, screen, forge profile). Click the name to open
its terminal and watch it work in real time.
**Answer something an agent is waiting on.** Y3R C4LL is the one tab
worth checking regularly — it's everything that needs *you*: approvals
for config changes, and questions an agent has asked and is blocked on.
The tab's count pill tells you at a glance if anything's pending.
**Approve or reject a config change.** Agent config changes (new
packages, env vars, MCP servers) go through an approval queue rather
than landing automatically — you'll see them on Y3R C4LL, with a diff
of what's changing.
**Start, stop, restart, or rebuild an agent.** Select one or more
agents on SW4RM (click the icon) and use the selection bar, or use the
per-agent `⋮` menu on a single row. Rebuilding re-applies that agent's
current config; use it after approving a change, or whenever an agent
shows as "needs update."
**Watch a build.** BU1LDS shows the rebuild queue live, plus a
streaming log of whatever's currently building. Useful right after
approving a change or bumping a flake input.
**Grant or revoke a tool/capability.** P3RM1SS10NS is a checkbox matrix
— rows are agents, columns are tool groups or capabilities. Nothing
takes effect until you hit **save all** at the bottom of the tab; a
save queues a rebuild for whichever agents actually changed.
**Read an agent's logs.** The Logs page's AGENT tab pulls a live
journald view for any agent + service; the per-agent `⋮` menu's
**journal logs →** link jumps straight there, pre-filtered.
**Set up a schedule or check on a reminder.** SCH3DUL3S covers both —
recurring or one-shot prompts you schedule for one or more agents, and
reminders agents have set for themselves.
**Provision an account for an agent.** The Credentials page covers
Matrix, GitHub, and external-forge accounts per agent, without editing
that agent's config repo.
## More depth
- **[Dashboard layout](dashboard.md)** — every tab and standalone page,
in full implementation detail: endpoint shapes, event wiring, exact
badge-derivation rules.
- **[Per-agent page](agent.md)** — the per-agent terminal, composer,
side panel, slash commands, and per-agent endpoints.
- **[Shape (shared by both)](shape.md)** — the SPA skeleton, SSE
multiplexing, and other plumbing shared across every page.
- **[CSS theme variables](css-vars.md)** — the colour system, for
anyone touching the frontend's CSS.