From 0d013aefbba638b9797d7b7d8a43cb8ca228f2ab Mon Sep 17 00:00:00 2001 From: iris Date: Wed, 10 Jun 2026 21:40:04 +0200 Subject: [PATCH] =?UTF-8?q?docs(web-ui):=20sync=20dashboard=20docs=20after?= =?UTF-8?q?=20the=20SYST3M=20=E2=86=92=20C0R3=20page=20move?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- docs/web-ui.md | 3 ++- docs/web-ui/dashboard.md | 37 ++++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/docs/web-ui.md b/docs/web-ui.md index 058d41f7..ed52f3d3 100644 --- a/docs/web-ui.md +++ b/docs/web-ui.md @@ -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, diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 440ff87b..e25187ea 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -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