docs(web-ui): sync dashboard docs after the SYST3M → C0R3 page move

The C0R3 page PR moved the SYST3M tab off the dashboard onto the
standalone /core.html page, leaving the web-ui docs describing a tab that
no longer exists.

- dashboard.md: retitle the "SYST3M tab" section to "C0R3 page
  (/core.html)" and reframe its intro — it's now a standalone page off the
  H0M3 hub with a createTabStrip sub-tab nav (default R3BU1LD QU3U3), its
  own core.js bundle on /dashboard/stream; the dashboard keeps only the
  rebuild-queue state for the SW4RM "building…" badges.
- correct the chrome tab-strip list to the actual in-page tabs
  (SW4RM / Y3R C4LL / P3RM1SS10NS / SCH3DUL3S) and note SYST3M / ST4TS /
  S3TT1NGS / FL0W / L0GS / M4TR1X are all standalone pages off H0M3.
- fix the container-load poll reference (core.js, while the C0NT41N3R
  L04D sub-tab is active) and the stray "SYST3M ›" panel references.
- drive-by: the schedules endpoint doc said "SYST3M scheduled-prompts
  panel" — it's the SCH3DUL3S panel; corrected.
- web-ui.md index: same tab-list correction + C0R3 page pointer.
This commit is contained in:
iris 2026-06-10 21:40:04 +02:00 committed by mara
commit 0d013aefbb
2 changed files with 26 additions and 14 deletions

View file

@ -13,7 +13,8 @@ This doc has been split for readability. Pick the section you need:
per-agent relative paths, `data-async` form pattern, side panel,
atomic repaint.
- **[Dashboard layout](web-ui/dashboard.md)** — tab contents
(SW4RM, Y3R C4LL, SYST3M, P3RM1SS10NS, SCH3DUL3S, P33RS, S3TT1NGS), container row,
(SW4RM, Y3R C4LL, P3RM1SS10NS, SCH3DUL3S) + the standalone C0R3 page
(`/core.html` — the old SYST3M panels), container row,
topology tree, selection bar, approval card, browser
notifications, dashboard endpoints + event channel.
- **[Per-agent page](web-ui/agent.md)** — header, main terminal,

View file

@ -15,11 +15,12 @@ from the dashboard tab strip.
**Chrome header** (fixed, overlays the active tab pane):
- **← home back-link**: top-left of the chrome, links to the H0M3 hub
at `/`. Every surface links back to the hub rather than to each other.
- **Tab strip**: `◆ SW4RM ◆`, `◆ Y3R C4LL ◆`, `◆ SYST3M ◆`,
`◆ P3RM1SS10NS ◆`, `◆ SCH3DUL3S ◆`, `◆ ST4TS ◆`,
`◆ P33RS ◆` (hidden when `swarm.peers` is empty), and `◆ S3TT1NGS ◆`.
In-page tabs only — FL0W / L0GS / M4TR1X live on their own pages,
reachable from the H0M3 hub (not the tab strip). Count pills on SW4RM
- **Tab strip**: `◆ SW4RM ◆`, `◆ Y3R C4LL ◆`, `◆ P3RM1SS10NS ◆`,
`◆ SCH3DUL3S ◆`. In-page tabs only — the SYST3M panels moved to the
standalone **C0R3** page (`/core.html`), and FL0W / L0GS / ST4TS /
S3TT1NGS / M4TR1X live on their own pages too, all reachable from the
H0M3 hub (not the tab strip). Peer hives render as a headline under
SW4RM rather than a tab. Count pills on SW4RM
(container count), Y3R C4LL (pending approvals + questions + unread
operator messages), and SCH3DUL3S (active schedules); P33RS and
S3TT1NGS have no count.
@ -120,9 +121,19 @@ messages are visible from any tab even while inactive. Backed by
`GET /api/operator-inbox``{ messages: [...] }` (id, from, body, at,
in_reply_to, file_refs).
## SYST3M tab
## C0R3 page (`/core.html`)
Passive / rare-interaction state.
Passive / rare-interaction state. No longer a dashboard tab — it's a
standalone page reached from the **Core** tile on the H0M3 hub (served at
`/core.html`), with the same minimal chrome as `/logs.html`: a `← home`
back-link + a `createTabStrip` sub-tab nav (**R3BU1LD QU3U3** default,
then **M3T4 1NPUTS**, **K3PT ST4T3**, **C0NT41N3R L04D**). The page is its
own esbuild bundle (`core.js`) that cold-loads `/api/state` and subscribes
to `/dashboard/stream` for the same live events as the dashboard
(`rebuild_queue_changed`, `meta_inputs_changed`, `meta_update_running`,
`tombstones_changed`). The dashboard keeps the rebuild-queue *state* (it
drives the "building…" badges on SW4RM agent cards) but no longer renders
these panels.
**M3T4 1NPUTS** — inputs in `meta/flake.lock` the operator can
selectively `nix flake update`, rendered as an indented tree:
@ -182,9 +193,9 @@ short (~200 ms) two-read interval; memory shows current + peak with a
bar against the `memory.max` quota. Backed by
`GET /api/container-resources` (`container_stats.rs`), which reads the
files read-only (world-readable; no `hive-priv`) and skips agents whose
scope dir is absent (= not running). Pull-only: `tabs.js` polls every
5 s **only while the SYST3M tab is active** (CPU needs a fresh sample
each refresh), and stops on tab change. Network is intentionally
scope dir is absent (= not running). Pull-only: `core.js` polls every
5 s **only while the C0NT41N3R L04D sub-tab is active** (CPU needs a fresh
sample each refresh), and stops on sub-tab change. Network is intentionally
omitted — agents share the host netns, so there is no per-container net
counter (per-agent network needs the netns-isolation roadmap in
`docs/network.md`).
@ -617,7 +628,7 @@ fetch entirely.
operator-initiated transient is set, the card surfaces a
`building…` / `meta-updating…` badge sourced from
`rebuildQueueState` — so the SW4RM tab shows the same
rebuild progress visible on the SYST3M tab's R3BU1LD QU3U3.
rebuild progress visible on the C0R3 page's R3BU1LD QU3U3.
The row visual splits queued vs running: a **queued** entry shows
only the pending-state pill (no row tint, so a long queue doesn't
paint half the tab amber); a **running** entry keeps the amber
@ -916,7 +927,7 @@ that's a browser-level decision, not ours.
rollup, swarm model mix, and a labelled `est_cost_usd`. Window
defaults to `24h`.
- `GET /api/container-resources` — live per-agent-container CPU +
memory from cgroup v2 (SYST3M C0NT41N3R L04D panel). Returns one
memory from cgroup v2 (C0R3 C0NT41N3R L04D panel). Returns one
row per running agent (`name`, `cpu_pct`, `mem_current_bytes`,
`mem_peak_bytes`, `mem_max_bytes`); samples CPU over ~200 ms so the
call briefly awaits. Skips non-running agents (no scope dir). No
@ -951,7 +962,7 @@ that's a browser-level decision, not ours.
unknown capability strings are rejected (400). `guard_agent_name`
applied.
- `GET /api/schedules` — list all schedules (active and
recently cancelled) for the SYST3M scheduled-prompts panel.
recently cancelled) for the SCH3DUL3S scheduled-prompts panel.
- `POST /api/schedules` — operator-direct schedule create:
`{ targets, body, first_fire_at_unix, interval_seconds?, description? }`.
Agent-initiated schedules go through the approval queue instead