docs+nix: fix stale peer-hives-dashboard references (hyperhive#3294)
Follow-up to the peer-hives removal: docs/web-ui/dashboard.md drops the whole "P33R H1V3S" section + its stale #peers hash and tab-strip mentions; docs/swarm/README.md's runtime-effects list and cross-references point at swarm-ui's roster page instead. Nix comments in hive-c0re/environment.nix, swarm.nix and swarm-wireguard.nix that described HYPERHIVE_PEERS/certFingerprint as dashboard-consumed are updated to say what's actually still true (agent identity only). Deliberately NOT removed: the `certFingerprint` nix option itself. It has no remaining Rust consumer, but deleting a documented, potentially already-set option is a bigger, breaking change than removing dead display code — flagged in docs/swarm/README.md with a note instead of silently dropped, so an operator or reviewer can make that call explicitly rather than have it made for them here.
This commit is contained in:
parent
016ab70e31
commit
8c8f0e2758
5 changed files with 39 additions and 67 deletions
|
|
@ -7,7 +7,7 @@
|
|||
The dashboard is served at `/dashboard.html` (with the home page at `/`).
|
||||
It has a fixed chrome header at the top and a `<main>` that shows exactly
|
||||
one tab pane at a time. The URL hash (`#swarm`, `#call`, `#system`,
|
||||
`#permissions`, `#schedules`, `#peers`, `#settings`) drives which pane is
|
||||
`#permissions`, `#schedules`, `#settings`) drives which pane is
|
||||
active; hash changes don't reload the page. FL0W, L0GS, and the optional
|
||||
M4TR1X client are separate pages reachable from the H0M3 hub at `/`, not
|
||||
from the dashboard tab strip.
|
||||
|
|
@ -19,11 +19,10 @@ from the dashboard tab strip.
|
|||
`◆ 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
|
||||
H0M3 hub (not the tab strip). Count pills on SW4RM
|
||||
(container count), Y3R C4LL (pending approvals + questions + unread
|
||||
operator messages), and SCH3DUL3S (active schedules); P33RS and
|
||||
S3TT1NGS have no count.
|
||||
operator messages), and SCH3DUL3S (active schedules); S3TT1NGS has no
|
||||
count.
|
||||
- **Banner-thin** (`░▒▓█▓▒░ HYPERHIVE / HIVE-C0RE / WE ARE THE WIRED ░▒▓█▓▒░`)
|
||||
— sits below the tab strip.
|
||||
- **Server-warnings banner** — a generic, sticky top-of-page strip shown
|
||||
|
|
@ -642,44 +641,6 @@ the model id, longest match wins) mapping to
|
|||
`{ input, output, cache_read, cache_write }` USD-per-million-token
|
||||
prices. Models not covered fall back to hive-c0re's built-in estimate.
|
||||
|
||||
## P33R H1V3S (within the SW4RM tab)
|
||||
|
||||
Peer hives in this swarm. Not its own tab — a headline block
|
||||
(`#peers-block`) rendered under the SW4RM tab's container list (see
|
||||
"Chrome header" above: "Peer hives render as a headline under SW4RM
|
||||
rather than a tab"). The block is hidden when the
|
||||
`state.peer_hives` array from `/api/state` is empty — i.e. when
|
||||
`services.hyperhive.swarm.hives` holds no hive other than this one.
|
||||
When at least one peer is present the `hidden` attribute is removed
|
||||
and the cards render.
|
||||
|
||||
**P33R H1V3S** — each peer renders as a card row: a hexagon icon
|
||||
(`⬡`), the peer's DNS domain as the primary name, and the peer
|
||||
dashboard HTTPS URL as a clickable secondary link. Clicking the
|
||||
URL opens the peer hive's dashboard in a new tab.
|
||||
|
||||
### Backend wiring
|
||||
|
||||
The host daemon reads `services.hyperhive.swarm.peerHives` from the
|
||||
nix config (the `swarm.hives` directory minus this hive), serialises
|
||||
each entry as `{ name, url }` into `state.peer_hives: Vec<PeerHiveView>`,
|
||||
and includes the field in the `/api/state` snapshot. `tabs.js`
|
||||
reads `state.peer_hives` on every `refreshState` call and calls
|
||||
`swarm.js::renderPeerHives(peers)`, which rebuilds the `#peers-section`
|
||||
div from scratch.
|
||||
|
||||
The `name` field is the peer's DNS domain (its entry's `domain`, not
|
||||
the attrset key — the key is the hive's name); `url`
|
||||
is `https://{domain}/`. Both are derived from the env var
|
||||
`HYPERHIVE_PEERS` (a JSON array of `{ domain, cert_fingerprint }`
|
||||
objects) that the nix module writes into the c0re container
|
||||
environment. `cert_fingerprint` is null for CA-trusted (e.g.
|
||||
Let's Encrypt) peers and non-null to pin a self-signed cert.
|
||||
`parse_peer_hives()` in `hive-c0re/src/dashboard/state_snapshot.rs`
|
||||
converts each entry to the
|
||||
`PeerHiveView { name: domain, url: "https://domain/" }` shape the
|
||||
frontend reads.
|
||||
|
||||
## S3TT1NGS tab
|
||||
|
||||
Operator-local preferences. State lives in the browser's
|
||||
|
|
|
|||
Loading…
Reference in a new issue