feat(dashboard): generic server-warnings banner on every page (#1518)
Per operator request: instead of a disk-specific alert, surface a generic
server-warnings banner at the very top of every page, so new system
warnings can be added backend-side with no frontend change.
- hive-c0re `host_stats`: `server_warnings() -> Vec<ServerWarning>`
(`{ kind, level, message }`). The threshold logic lives server-side; the
host disk-pressure check (a `statvfs` probe of `/nix`: ≥85% used → warn,
≥95% → crit) is the first and only producer today. No new deps (libc).
- `/api/state` carries `server_warnings` (replaces the disk-specific
field). Empty when all clear.
- frontend: `renderServerWarnings` / `initServerWarnings` in `common.js`
inject a sticky top-of-<body> banner and render the list, coloured by
`level`. Wired on every page — dashboard (live, via refreshState),
FL0W, L0GS, H0M3. No per-warning frontend code; adding a warning kind
is a pure backend change.
cargo check/clippy/fmt + npm run build green. Closes #1518.
This commit is contained in:
parent
d9d2a52221
commit
5d0f3d060b
10 changed files with 241 additions and 6 deletions
|
|
@ -25,6 +25,17 @@ from the dashboard tab strip.
|
|||
S3TT1NGS have 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
|
||||
on **every** page (dashboard + the stand-alone FL0W / L0GS / H0M3
|
||||
pages), injected at the top of `<body>` by `renderServerWarnings` in
|
||||
`common.js`. Driven by `state.server_warnings` — a list of
|
||||
`{ kind, level, message }` from hive-c0re's `host_stats::server_warnings`
|
||||
— and coloured by `level` (`warn` amber / `crit` red). The backend owns
|
||||
the threshold + message, so adding a new system warning needs no
|
||||
frontend change. The only producer today is the host disk-pressure
|
||||
check (a `statvfs` probe of `/nix`: ≥85% used → `warn`, ≥95% → `crit`,
|
||||
e.g. `⚠ host nix store N% full (G GiB free) — garbage-collect …`).
|
||||
Hidden when there are no warnings.
|
||||
- **Browser tab title** — `hive / c0re` by default; updated to
|
||||
`<swarm> / <hive>` once `hive_name` / `swarm_name` arrive in the
|
||||
state snapshot. When there are pending approvals or unanswered
|
||||
|
|
|
|||
Loading…
Reference in a new issue