docs(web-ui): state current dashboard behaviour, drop changelog wording
Rewrites 12 sentences in docs/web-ui/dashboard.md that described current state as a change from something earlier (moved/no longer/ gone/was) or stated what a field/page doesn't exist without saying what replaced it. Verified each against the current code at forge/main before rewriting. Refs #3902
This commit is contained in:
parent
fb2fff0668
commit
843c9ad016
1 changed files with 18 additions and 22 deletions
|
|
@ -16,7 +16,7 @@ from the dashboard tab strip.
|
||||||
- **← home back-link**: top-left of the chrome, links to the H0M3 hub
|
- **← 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.
|
at `/`. Every surface links back to the hub rather than to each other.
|
||||||
- **Tab strip**: `◆ SW4RM ◆`, `◆ Y3R C4LL ◆`, `◆ P3RM1SS10NS ◆`,
|
- **Tab strip**: `◆ SW4RM ◆`, `◆ Y3R C4LL ◆`, `◆ P3RM1SS10NS ◆`,
|
||||||
`◆ SCH3DUL3S ◆`. In-page tabs only — the SYST3M panels moved to the
|
`◆ SCH3DUL3S ◆`. In-page tabs only — the SYST3M panels live on the
|
||||||
standalone **C0R3** page (`/core.html`), and FL0W / L0GS / ST4TS /
|
standalone **C0R3** page (`/core.html`), and FL0W / L0GS / ST4TS /
|
||||||
M4TR1X live on their own pages too, all reachable from the
|
M4TR1X live on their own pages too, all reachable from the
|
||||||
H0M3 hub (not the tab strip). Count pills on SW4RM
|
H0M3 hub (not the tab strip). Count pills on SW4RM
|
||||||
|
|
@ -92,9 +92,8 @@ in_reply_to, file_refs).
|
||||||
browser's `localStorage` — preferences **don't** sync between devices and
|
browser's `localStorage` — preferences **don't** sync between devices and
|
||||||
**don't** survive a profile wipe. One section today (browser
|
**don't** survive a profile wipe. One section today (browser
|
||||||
notifications); future preferences land here as sibling `<h3>` blocks
|
notifications); future preferences land here as sibling `<h3>` blocks
|
||||||
in `dashboard.html`. Was its own S3TT1NGS page/tile (`/settings.html`)
|
in `dashboard.html` — a standalone page for one toggle wouldn't earn
|
||||||
until mara moved it in here — a standalone page for one toggle didn't
|
its own tile.
|
||||||
earn its own tile.
|
|
||||||
|
|
||||||
**◇ browser notifications** — `🔔 enable notifications` button when
|
**◇ browser notifications** — `🔔 enable notifications` button when
|
||||||
permission ungranted; `🔕 mute / 🔔 unmute` toggle once granted
|
permission ungranted; `🔕 mute / 🔔 unmute` toggle once granted
|
||||||
|
|
@ -111,15 +110,15 @@ instead — it's agent-terminal-only, unrelated to this section.
|
||||||
|
|
||||||
## C0R3 page (`/core.html`)
|
## C0R3 page (`/core.html`)
|
||||||
|
|
||||||
Passive / rare-interaction state. No longer a dashboard tab — it's a
|
Passive / rare-interaction state, reached from the **Core** tile on the
|
||||||
standalone page reached from the **Core** tile on the H0M3 hub (served at
|
H0M3 hub (served at
|
||||||
`/core.html`), with the same minimal chrome as `/logs.html`: a `← home`
|
`/core.html`), with the same minimal chrome as `/logs.html`: a `← home`
|
||||||
back-link + a `createTabStrip` sub-tab nav (**K3PT ST4T3** default,
|
back-link + a `createTabStrip` sub-tab nav (**K3PT ST4T3** default,
|
||||||
then **C0NT41N3R L04D**). The page is its own esbuild bundle (`core.js`)
|
then **C0NT41N3R L04D**). The page is its own esbuild bundle (`core.js`)
|
||||||
that cold-loads `/api/state` and subscribes to `/api/dashboard/stream` for
|
that cold-loads `/api/state` and subscribes to `/api/dashboard/stream` for
|
||||||
`tombstones_changed`, `capabilities_changed`, and `tool_groups_changed`
|
`tombstones_changed`, `capabilities_changed`, and `tool_groups_changed`
|
||||||
(the latter two re-render the stale-perms sub-section when permission
|
(the latter two re-render the stale-perms sub-section when permission
|
||||||
data changes). (Rebuild queue and meta inputs have moved to the BU1LDS
|
data changes). (Rebuild queue and meta inputs live on the BU1LDS
|
||||||
page — see below.)
|
page — see below.)
|
||||||
|
|
||||||
**K3PT ST4T3** — two sub-sections on one pane:
|
**K3PT ST4T3** — two sub-sections on one pane:
|
||||||
|
|
@ -199,9 +198,8 @@ pipeline) with an `onUpdate` callback to drive the two things below it
|
||||||
that the generic view doesn't show. The component owns fetching, cold
|
that the generic view doesn't show. The component owns fetching, cold
|
||||||
and live: `GET /api/jobq/graph` on mount, and a refetch via the mount
|
and live: `GET /api/jobq/graph` on mount, and a refetch via the mount
|
||||||
handle's `.refresh()` on every `rebuild_queue_changed` SSE tick (that
|
handle's `.refresh()` on every `rebuild_queue_changed` SSE tick (that
|
||||||
event is a bare `{ seq }` trigger — it carried a typed queue snapshot
|
event is a bare `{ seq }` trigger carrying no queue payload; both
|
||||||
until every consumer had moved to the generic endpoint, and now carries
|
dashboard pages treat the tick as a pure refetch trigger).
|
||||||
none; both dashboard pages treat the tick as a pure refetch trigger).
|
|
||||||
|
|
||||||
Each row is one root graph node (`parent: null`); a multi-step op's
|
Each row is one root graph node (`parent: null`); a multi-step op's
|
||||||
per-agent subgraphs and sub-steps render as nodes within that one
|
per-agent subgraphs and sub-steps render as nodes within that one
|
||||||
|
|
@ -222,7 +220,7 @@ own domain concept (the component knows nothing about that endpoint).
|
||||||
**Rows carry no source chip, kind label, timing, or build-log
|
**Rows carry no source chip, kind label, timing, or build-log
|
||||||
deep-link** — the generic graph wire doesn't carry those fields, and
|
deep-link** — the generic graph wire doesn't carry those fields, and
|
||||||
rows deliberately present exactly what the endpoint provides rather
|
rows deliberately present exactly what the endpoint provides rather
|
||||||
than reconstructing chrome hive-c0re no longer sends. Settled entries
|
than reconstructing chrome hive-c0re doesn't send. Settled entries
|
||||||
render their **full step tree**, not just a bare summary — the wire
|
render their **full step tree**, not just a bare summary — the wire
|
||||||
doesn't filter `Done` nodes out.
|
doesn't filter `Done` nodes out.
|
||||||
|
|
||||||
|
|
@ -274,8 +272,8 @@ the panel shows a pulsing "⏳ meta-update running" banner and disables
|
||||||
the update button (snapshot field `meta_update_running`,
|
the update button (snapshot field `meta_update_running`,
|
||||||
live event `meta_update_running`).
|
live event `meta_update_running`).
|
||||||
|
|
||||||
**BUILD L0GS** — all-agents build log history (moved from `/logs.html`).
|
**BUILD L0GS** — all-agents build log history. Lazy-loaded on first tab
|
||||||
Lazy-loaded on first tab activation; autorefreshes when
|
activation; autorefreshes when
|
||||||
`rebuild_queue_changed` fires. Fetches `GET /api/build-logs?limit=30`.
|
`rebuild_queue_changed` fires. Fetches `GET /api/build-logs?limit=30`.
|
||||||
Renders a scrollable list of build entries; each row is a collapsible
|
Renders a scrollable list of build entries; each row is a collapsible
|
||||||
button showing status badge (`live` / `ok` / `fail`), agent name,
|
button showing status badge (`live` / `ok` / `fail`), agent name,
|
||||||
|
|
@ -550,10 +548,9 @@ nginx container at `/matrix/` when
|
||||||
`HIVE_MATRIX_GUI_ENABLED` env var → `state.matrix_gui_enabled` in
|
`HIVE_MATRIX_GUI_ENABLED` env var → `state.matrix_gui_enabled` in
|
||||||
`/api/state`; the gateway does the actual static serving.
|
`/api/state`; the gateway does the actual static serving.
|
||||||
|
|
||||||
There's no tile for it on the H0M3 hub (removed along with Forge's —
|
The operator reaches it from the swarm-ui LinksMenu, not a H0M3 hub
|
||||||
see the H0M3 section above). The operator reaches it from the swarm-ui
|
tile (see `docs/swarm/ui.md::Quick links`), and logs in once with the
|
||||||
LinksMenu instead (see `docs/swarm/ui.md::Quick links`), and logs in
|
in-host tuwunel homeserver URL (`http://localhost:8008` or whatever
|
||||||
once with the in-host tuwunel homeserver URL (`http://localhost:8008` or whatever
|
|
||||||
the matrix module exposes).
|
the matrix module exposes).
|
||||||
|
|
||||||
The unified nginx-front re-root to
|
The unified nginx-front re-root to
|
||||||
|
|
@ -620,7 +617,7 @@ A dedicated log-viewer page (not a tab pane — a separate HTML page),
|
||||||
reachable from the Logs tile on the H0M3 hub. Minimal chrome:
|
reachable from the Logs tile on the H0M3 hub. Minimal chrome:
|
||||||
a `← home` back link and a three-item sub-tab strip. Tab
|
a `← home` back link and a three-item sub-tab strip. Tab
|
||||||
routing is hash-based (`#agent`, `#infra`, `#system`); default is
|
routing is hash-based (`#agent`, `#infra`, `#system`); default is
|
||||||
`#agent`. (Build log history has moved to the BU1LDS page — see above.)
|
`#agent`. (Build log history lives on the BU1LDS page — see above.)
|
||||||
|
|
||||||
**AGENT sub-tab** — per-container journald viewer. Two selects: agent
|
**AGENT sub-tab** — per-container journald viewer. Two selects: agent
|
||||||
name (populated from `GET /api/state`) and unit filter
|
name (populated from `GET /api/state`) and unit filter
|
||||||
|
|
@ -774,7 +771,7 @@ life). Two consequences for anything rendering it:
|
||||||
(`NodeKind`'s `&str` conversion, the same strings the graph wire's node
|
(`NodeKind`'s `&str` conversion, the same strings the graph wire's node
|
||||||
labels carry), not a fixed set. Treat it as an opaque display
|
labels carry), not a fixed set. Treat it as an opaque display
|
||||||
string; don't switch on specific values. `restarting` in
|
string; don't switch on specific values. `restarting` in
|
||||||
particular no longer exists, because no node kind is unique to a
|
particular doesn't exist, because no node kind is unique to a
|
||||||
restart.
|
restart.
|
||||||
- It's **not** exclusively operator-initiated, and **not** limited
|
- It's **not** exclusively operator-initiated, and **not** limited
|
||||||
to rebuild-shaped work — `running_transients()` in hive-c0re is
|
to rebuild-shaped work — `running_transients()` in hive-c0re is
|
||||||
|
|
@ -1226,8 +1223,7 @@ payload):
|
||||||
every queue mutation (enqueue, state transition, dedup collapse,
|
every queue mutation (enqueue, state transition, dedup collapse,
|
||||||
terminal-history trim). Unlike the snapshot events below it ships
|
terminal-history trim). Unlike the snapshot events below it ships
|
||||||
no state at all: the client re-fetches `GET /api/jobq/graph`, which
|
no state at all: the client re-fetches `GET /api/jobq/graph`, which
|
||||||
is where it reads the queue from cold too. No
|
is where it reads the queue from cold too.
|
||||||
`/api/state.rebuild_queue` exists — it went with the typed projection.
|
|
||||||
- `schedules_changed` (seq, schedules: `Vec<WireSchedule>`) —
|
- `schedules_changed` (seq, schedules: `Vec<WireSchedule>`) —
|
||||||
full snapshot of all scheduled prompts. Emitted after every
|
full snapshot of all scheduled prompts. Emitted after every
|
||||||
operator mutation via the `/api/schedules` surface (new /
|
operator mutation via the `/api/schedules` surface (new /
|
||||||
|
|
@ -1276,7 +1272,7 @@ shaped yet). Every other section — approvals,
|
||||||
transients, containers, operator inbox, message flow —
|
transients, containers, operator inbox, message flow —
|
||||||
derives from `/api/dashboard/stream` after the initial snapshot,
|
derives from `/api/dashboard/stream` after the initial snapshot,
|
||||||
maintaining its own client-side store and applying events on
|
maintaining its own client-side store and applying events on
|
||||||
top. The 5s periodic poll is gone.
|
top.
|
||||||
<!-- vale write-good.Passive = YES -->
|
<!-- vale write-good.Passive = YES -->
|
||||||
|
|
||||||
Generalised form helpers: `form[data-confirm="…"]` pops
|
Generalised form helpers: `form[data-confirm="…"]` pops
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue