refactor(frontend): move S3TT1NGS to its own /settings.html page (#1464 step 2)

Extracts the operator-local preferences (browser-notification toggle)
out of the dashboard tab strip into a standalone /settings.html page,
reached from the H0M3 hub — same minimal-chrome pattern as /flow.html
and /logs.html. The dashboard tab strip is now purely operational.

- new settings.{html,css,js}; settings.js binds NOTIF + renders the
  shared server-warnings banner (matching the other standalone pages).
- drop the S3TT1NGS tab + pane from dashboard.html; the NOTIF.bind()
  toggle wiring moves to settings.js. The dashboard keeps NOTIF.show()
  (approvals / questions) — it reads the same browser permission +
  localStorage mute flag the settings page sets, so firing still works.
- move .notif-row / .btn-notif from dashboard.css to settings.css.
- add a Settings tile to the H0M3 hub; wire the new entries into
  build.mjs and update the nix/frontend.nix asset manifest comment.

First slice of #1464 step 2; the ST4TS page extraction follows separately.
This commit is contained in:
iris 2026-06-08 23:28:28 +02:00 committed by mara
commit d9c66de069
9 changed files with 124 additions and 62 deletions

View file

@ -16,9 +16,10 @@
# $out/dashboard/ the hive-c0re dashboard assets (full layout in
# frontend/packages/dashboard/build.mjs):
# index.html (H0M3 hub, served at /) dashboard.html (operator SPA,
# served at /dashboard.html) flow.html logs.html favicon.svg
# static/{home,tabs,flow,logs,stream-worker}.js{,.map}
# static/{colors,theme,common,home,dashboard,flow,logs}.css
# served at /dashboard.html) flow.html logs.html settings.html
# favicon.svg
# static/{home,tabs,flow,logs,settings,stream-worker}.js{,.map}
# static/{colors,theme,common,home,dashboard,flow,logs,settings}.css
# $out/agent/ the per-agent default UI (layered with
# hyperhive.frontend.extraFiles at activation time)
# index.html stats.html screen.html