diff --git a/docs/web-ui/README.md b/docs/web-ui/README.md index 12201218..d3b95f21 100644 --- a/docs/web-ui/README.md +++ b/docs/web-ui/README.md @@ -10,9 +10,8 @@ below; this page only covers what you actually do here. Everything starts at the **H0M3 hub**, served at `/` — a grid of tiles linking to every surface (Dashboard, Flow, Logs, Builds, Stats, -Settings, Core, Credentials, plus Matrix/Forge when enabled). Every -page links back to H0M3, so you're never more than one click from the -hub. +Settings, Core, Credentials). Every page links back to H0M3, so you're +never more than one click from the hub. The **dashboard** itself (`/dashboard.html`) is where you'll spend most of your time. It's a single page with exactly four tabs: diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 6cad964d..9dac4cbb 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -687,25 +687,16 @@ re-renders the terminal row. The root agent is addressed as `@root`. ## H0M3 page (`/`) The H0M3 hub is the primary landing page (served at `/` by default). A -responsive grid of link tiles — Dashboard, Flow, Logs, Matrix (when enabled), -Forge (when enabled), among others (Builds, Stats, Settings, Core, -Credentials, API) — each pointing to their respective surfaces. The **API** -tile always shows (unlike Matrix/Forge, see below) and links to the -Swagger UI at `/api/docs`. The page -is a pure portal with no tab-bar or SSE subscriptions. Typography + colours -inherit from the shared theme (Catppuccin Mocha via `common.css` + `theme.css`). -Optional tiles are hidden until `home.js` confirms their availability: -Matrix is hidden until `home.js` confirms `matrix_gui_enabled` (same gating as -the dashboard's M4TR1X tab); Forge is hidden until `home.js` confirms both -`state.forge_present` **and** `state.forge_public_url` (sourced from -`services.hyperhive.forge.publicUrl`, which defaults to the gateway vhost URL -when `behindGateway=true` and is `null` otherwise) and fills the href from the -latter — never guessed from the operator's browser hostname + a container -port, which is only right by accident off plain localhost. Operators without -matrix or forge enabled — or with forge on but no public URL configured — -never see a dead or wrong link. `home.js` also fills the swarm/hive identity -line at the top. All dashboard sub-pages include a `← Home` back-link for -navigation. +responsive grid of link tiles — Dashboard, Flow, Logs, Builds, Stats, +Settings, Core, Credentials, API — each pointing to their respective +surfaces, all unconditionally shown (no gating). The page is a pure +portal with no tab-bar or SSE subscriptions. Typography + colours inherit +from the shared theme (Catppuccin Mocha via `common.css` + `theme.css`). +`home.js` fills the swarm/hive identity line at the top. All dashboard +sub-pages include a `← Home` back-link for navigation. + +No Matrix or Forge tile here — those surfaces (`/matrix/`, the forge's own +public URL) are reached directly, not linked from the dashboard UI. ## L0GS page (`/logs.html`) diff --git a/frontend/packages/dashboard/src/home.js b/frontend/packages/dashboard/src/home.js index ce020a77..0225f556 100644 --- a/frontend/packages/dashboard/src/home.js +++ b/frontend/packages/dashboard/src/home.js @@ -1,9 +1,7 @@ // H0M3 page script. The page is static markup; this only does // a few small things off a single `/api/state` read: -// 1. reveal the Matrix tile when the matrix GUI is enabled (same -// gating as the dashboard's M4TR1X tab — no dead link otherwise); -// 2. fill the swarm/hive identity line when configured; -// 3. render the shared server-warnings banner (top of every page). +// 1. fill the swarm/hive identity line when configured; +// 2. render the shared server-warnings banner (top of every page). // No SSE — a portal doesn't need live updates. // // It also drives the decorative matrix-rain backdrop (#matrix-rain) — @@ -25,25 +23,6 @@ async function init() { renderServerWarnings(state.server_warnings); - if (state.matrix_gui_enabled) { - const tile = $('home-tile-matrix'); - if (tile) tile.hidden = false; - } - - // Forge tile: reveal only when the hive-forge container is up AND - // the operator has stated a public URL for it - // (services.hyperhive.forge.publicUrl, surfaced as - // state.forge_public_url) — hidden rather than guessed from - // `location.hostname` + the direct :3000 port, which is only - // correct by accident on deployments that aren't plain localhost. - if (state.forge_present && state.forge_public_url) { - const tile = $('home-tile-forge'); - if (tile) { - tile.href = state.forge_public_url; - tile.hidden = false; - } - } - const ident = $('hive-identity'); if (ident && (state.swarm_name || state.hive_name)) { const parts = [state.swarm_name, state.hive_name].filter(Boolean); diff --git a/frontend/packages/dashboard/src/index.html b/frontend/packages/dashboard/src/index.html index ad4d0428..3aa97541 100644 --- a/frontend/packages/dashboard/src/index.html +++ b/frontend/packages/dashboard/src/index.html @@ -100,9 +100,9 @@ provision per-agent matrix + github accounts - + @@ -111,29 +111,6 @@ interactive OpenAPI spec (Swagger UI) - - - - - - diff --git a/frontend/packages/dashboard/src/tabs.js b/frontend/packages/dashboard/src/tabs.js index 08fa8b0a..4be7010d 100644 --- a/frontend/packages/dashboard/src/tabs.js +++ b/frontend/packages/dashboard/src/tabs.js @@ -188,8 +188,8 @@ window.marked = marked; // names from here instead of refetching on every keystroke). window.__hyperhive_state = s; renderServerWarnings(s.server_warnings); - // (The M4TR1X surface is reachable from the H0M3 hub now, not the - // dashboard tab strip — home.js gates its tile on matrix_gui_enabled.) + // (The M4TR1X surface is reachable directly at /matrix/ when enabled + // — no link in the dashboard tab strip or the H0M3 hub.) // Hive identity: render the swarm/hive name as a headline at the // top of the SW4RM pane + update the page title once the // server-side display names are known. `hive_name` / `swarm_name`