diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 7525e47b..92116fe9 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -289,6 +289,37 @@ to confirm; `@*` broadcasts). `POST /op-send` drops frame re-renders both the terminal row and the inbox section. Manager is addressed as `@root`. +## L0GS page (`/logs.html`) + +A dedicated log-viewer page (not a tab pane — a separate HTML page), +linked from the SETTINGS tab's `◆ L0GS ◆ →` entry. Minimal chrome: +a `← dashboard` back link and a three-item sub-tab strip. Tab +routing is hash-based (`#build`, `#agent`, `#system`); default is +`#build`. + +**BUILD sub-tab** — all-agents build log history. Fetches +`GET /api/build-logs?limit=30` on load and on `↻ refresh`. Renders +a scrollable list of build entries; each row is a collapsible button +showing status badge (`live` / `ok` / `fail`), agent name, elapsed +duration, build kind, age, and the invocation command line. +Expanding a row fetches the full stdout+stderr via +`GET /api/build-logs/id/{id}`. A live in-progress build shows a +`live` badge and a growing `…` duration chip; when complete, the row +re-renders with the final status. `status === null` = still running. + +**AGENT sub-tab** — per-container journald viewer. Two selects: agent +name (populated from `GET /api/state`) and unit filter +(`hive-ag3nt.service` / `(full machine journal)`). Fetches +`GET /api/journal/{name}?unit=&lines=500` on refresh. Output +rendered as a `
` block.
+
+**SYSTEM sub-tab** — host-side service logs. Unit selector (currently
+only `hive-c0re.service`). Fetches
+`GET /api/journal-host?unit=hive-c0re.service&lines=500` on activation
+and on `↻ refresh`. Rendered as a `
` block. Available to the
+operator unconditionally (not capability-gated — the endpoint lives
+on the hive-c0re dashboard, behind the gateway).
+
 ## Container row
 
 A full-height **square agent icon** (5em, capped) on the left. The