Move dashboard settings into Y3R C4LL tab, drop standalone S3TT1NGS page
mara (issue #3817): remove the home link + page, put the setting toggle into the Y3R C4LL tab. Deleted settings.html/.js/.css; the browser-notification toggle (the only content there) now renders as a ◆ PR3F3R3NC3S ◆ section under Y3R C4LL's approvals/inbox, wired the same way (NOTIF.bind()/NOTIF.show() in common.js — no behavior change, just a new mount point). Updated build.mjs's entry lists and every doc/comment that pointed at the old page.
This commit is contained in:
parent
146db58bab
commit
b33bb7a3d3
14 changed files with 106 additions and 175 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`, `#settings`) drives which pane is
|
||||
`#permissions`, `#schedules`) 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.
|
||||
|
|
@ -18,16 +18,15 @@ from the dashboard tab strip.
|
|||
- **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
|
||||
M4TR1X live on their own pages too, all reachable from the
|
||||
H0M3 hub (not the tab strip). Count pills on SW4RM
|
||||
(container count), Y3R C4LL (pending approvals + unread
|
||||
operator messages), and SCH3DUL3S (active schedules); S3TT1NGS has no
|
||||
count.
|
||||
operator messages), and SCH3DUL3S (active schedules).
|
||||
- **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 + every stand-alone page — FL0W, L0GS,
|
||||
H0M3, C0R3, BU1LDS, CR3D3NTIALS, ST4TS, S3TT1NGS), injected at the top
|
||||
H0M3, C0R3, BU1LDS, CR3D3NTIALS, ST4TS), injected at the top
|
||||
of `<body>` by `renderServerWarnings` in `common.js`. Driven by
|
||||
`state.server_warnings` — a list of `{ kind, level, message }` — and
|
||||
coloured by `level` (`warn` amber / `crit` red). The backend owns the
|
||||
|
|
@ -100,6 +99,27 @@ 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).
|
||||
|
||||
**◆ PR3F3R3NC3S ◆** — operator-local preferences. State lives in the
|
||||
browser's `localStorage` — preferences do NOT sync between devices and
|
||||
do NOT survive a profile wipe. One section today (browser
|
||||
notifications); future preferences land here as sibling `<h3>` blocks
|
||||
in `dashboard.html`. Was its own S3TT1NGS page/tile (`/settings.html`)
|
||||
until mara moved it in here — a standalone page for one toggle didn't
|
||||
earn its own tile.
|
||||
|
||||
**◇ browser notifications** — `🔔 enable notifications` button when
|
||||
permission ungranted; `🔕 mute / 🔔 unmute` toggle once granted
|
||||
(mute silences the dispatch without revoking the OS-level
|
||||
permission). On unsupported origins (non-secure context, or
|
||||
browsers without the `Notification` API) the controls hide and a
|
||||
single status line explains why. See `### Browser notifications`
|
||||
below for the dispatch model + the three signals the dashboard
|
||||
emits OS notifications on.
|
||||
|
||||
The "expand tool output panels" toggle lives on the per-agent page's
|
||||
own settings popover (`SettingsMenu`, `@hive/shared/settings-menu.js`)
|
||||
instead — it's agent-terminal-only, unrelated to this section.
|
||||
|
||||
## C0R3 page (`/core.html`)
|
||||
|
||||
Passive / rare-interaction state. No longer a dashboard tab — it's a
|
||||
|
|
@ -595,32 +615,10 @@ 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.
|
||||
|
||||
## S3TT1NGS tab
|
||||
|
||||
Operator-local preferences. State lives in the browser's
|
||||
`localStorage` — preferences do NOT sync between devices and
|
||||
do NOT survive a profile wipe. One section today (browser
|
||||
notifications); future preferences land here as sibling `<h3>`
|
||||
blocks in `settings.html`.
|
||||
|
||||
**◇ browser notifications** — `🔔 enable notifications` button when
|
||||
permission ungranted; `🔕 mute / 🔔 unmute` toggle once granted
|
||||
(mute silences the dispatch without revoking the OS-level
|
||||
permission). On unsupported origins (non-secure context, or
|
||||
browsers without the `Notification` API) the controls hide and a
|
||||
single status line explains why. See `### Browser notifications`
|
||||
below for the dispatch model + the three signals the dashboard
|
||||
emits OS notifications on.
|
||||
|
||||
The "expand tool output panels" toggle used to live here too; it
|
||||
moved into the per-agent page's own settings popover (`SettingsMenu`,
|
||||
`@hive/shared/settings-menu.js`) since it's agent-terminal-only and
|
||||
this tab is shared with swarm-ui — see that component's file comment.
|
||||
|
||||
The FL0W page does NOT host this pane — settings live only on the
|
||||
dashboard's S3TT1NGS tab (reach it via the FL0W page's `← home`
|
||||
The FL0W page does NOT host the PR3F3R3NC3S pane — it lives only on the
|
||||
dashboard's Y3R C4LL tab (reach it via the FL0W page's `← home`
|
||||
back-link → Dashboard). Notifications still fire on the FL0W page when
|
||||
they're enabled here, because `NOTIF.show()` in
|
||||
they're enabled there, because `NOTIF.show()` in
|
||||
`common.js` depends on `Notification.permission` + the
|
||||
`hyperhive.notify.muted` localStorage key, not on the buttons
|
||||
existing in the page DOM.
|
||||
|
|
@ -1091,9 +1089,9 @@ Pure frontend (`Notification` API). Two signals trigger them:
|
|||
- new pending approval (per id, delta on `/api/state`)
|
||||
- new broker message sent `to: "operator"` (live via SSE)
|
||||
|
||||
The toggle controls live in the `S3TT1NGS` tab (`#settings`); see
|
||||
that section above for the user-facing shape. Dispatch logic lives
|
||||
in `common.js::NOTIF`.
|
||||
The toggle controls live in the Y3R C4LL tab's ◆ PR3F3R3NC3S ◆
|
||||
section; see that section above for the user-facing shape. Dispatch
|
||||
logic lives in `common.js::NOTIF`.
|
||||
|
||||
First `/api/state` after page load seeds "seen" sets without
|
||||
firing — only items that arrive while the page is open count.
|
||||
|
|
|
|||
Loading…
Reference in a new issue