refactor(dashboard): drop FL0W/L0GS/M4TR1X page-links from the tab strip (#1464)

Follow-up to the route swap (#1501): now that every separate page is
reachable from the H0M3 hub, the dashboard tab strip should hold only
real in-page tabs, not the "→" links out to other pages (mara: "remove
links to the pages from dashboard - only actual tabs stay here").

- dashboard.html: remove the `tab-matrix`, `tab-flow`, and `tab-logs`
  `.tab-link` entries (and the stale `tab-count-flow` pill slot — the
  operator inbox moved to Y3R C4LL). The dashboard strip is now SW4RM /
  Y3R C4LL / SYST3M / P3RM1SS10NS / SCH3DUL3S / P33RS / ST4TS / S3TT1NGS.
- tabs.js: drop the now-dead `tab-matrix` matrix_gui_enabled gate (the
  H0M3 Matrix tile is gated by home.js instead) and the obsolete
  `#tab-count-flow` comment. Kept the contextual deep-links into the log
  viewer (an agent's logs, a build entry's log) — those are functional
  content links, not navigation chrome.
- flow.css: remove the dead `.dashboard-chrome.flow-chrome` +
  `.tabbar .tab.active.tab-link` rules — the flow page uses a slim
  back-link header, not the dashboard tabbar, and `.tab-link` no longer
  exists anywhere.

npm run build green (flow.css 1.8kb). No residual references.
This commit is contained in:
iris 2026-06-07 21:03:53 +02:00 committed by mara
commit 91fff60c34
3 changed files with 15 additions and 76 deletions

View file

@ -3901,10 +3901,8 @@ window.marked = marked;
const peers = s.peer_hives || [];
if (peersTab) peersTab.hidden = peers.length === 0;
renderPeerHives(peers);
// Gate the M4TR1X → tab strip entry — see
// docs/web-ui.md::Tab strip for the matrix_gui_enabled rationale.
const matrixTab = $('tab-matrix');
if (matrixTab) matrixTab.hidden = !s.matrix_gui_enabled;
// (The M4TR1X surface is reachable from the H0M3 hub now, not the
// dashboard tab strip — home.js gates its tile on matrix_gui_enabled.)
// Hive identity: update the chrome banner + page title once the
// server-side display names are known. `hive_name` / `swarm_name`
// come from HYPERHIVE_HIVE_NAME / HYPERHIVE_SWARM_NAME env vars
@ -4604,11 +4602,6 @@ window.marked = marked;
// target (whole-schedule cancellation or all-targets-cancelled
// means "not waiting on the worker"; those don't pull attention).
setTabCount('schedules', activeScheduleCount());
// FL0W pill count: lives in ./flow.js now (it has the inbox
// derived store). Dashboard tab strip's `#tab-count-flow` slot
// stays hidden by default; future plumbing could broadcast the
// count via localStorage / BroadcastChannel if both pages are
// open.
// Re-render overflow dropdown so badges stay in sync.
updateTabbarOverflow();
@ -4620,6 +4613,6 @@ window.marked = marked;
refreshTabCounts();
setInterval(refreshTabCounts, 1000);
// Flow-specific code (inbox-pill wiring, broker terminal init, the
// @-mention composer) lives in ./flow.js — loaded only by /flow.html.
// Flow-specific code (broker terminal init + the @-mention composer)
// lives in ./flow.js — loaded only by /flow.html.
})();