H0M3: remove Forge/Matrix tiles from hive home
mara (issue #3816): remove the swarm-service links (forge, matrix) from the hive home hub. Both surfaces are still reachable directly (forge's own public URL, /matrix/); they just no longer get a tile on H0M3. Dropped the now-dead reveal/href-fill logic in home.js and updated the two docs that described the old gating.
This commit is contained in:
parent
6ccd634afb
commit
2490181055
5 changed files with 19 additions and 73 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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`)
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -100,9 +100,9 @@
|
|||
<span class="home-tile-desc">provision per-agent matrix + github accounts</span>
|
||||
</a>
|
||||
|
||||
<!-- API tile: no gating, unlike Forge/Matrix below — the OpenAPI
|
||||
spec + Swagger UI are always served by hive-c0re itself
|
||||
(docs/web-ui/dashboard.md::Dashboard endpoints). -->
|
||||
<!-- API tile: the OpenAPI spec + Swagger UI are always served by
|
||||
hive-c0re itself (docs/web-ui/dashboard.md::Dashboard
|
||||
endpoints), so this tile is never gated/hidden. -->
|
||||
<a class="home-tile" href="/api/docs">
|
||||
<span class="home-tile-head">
|
||||
<span class="home-tile-icon" aria-hidden="true">🧬</span>
|
||||
|
|
@ -111,29 +111,6 @@
|
|||
<span class="home-tile-desc">interactive OpenAPI spec (Swagger UI)</span>
|
||||
</a>
|
||||
|
||||
<!-- Forge tile: hidden until home.js confirms the hive-forge
|
||||
container is up (state.forge_present); home.js also fills the
|
||||
href from state.forge_public_url (or the :3000 fallback), so
|
||||
operators without a forge never see a dead link. -->
|
||||
<a class="home-tile" id="home-tile-forge" href="#" target="_blank" rel="noopener" hidden>
|
||||
<span class="home-tile-head">
|
||||
<span class="home-tile-icon" aria-hidden="true">⚒</span>
|
||||
<span class="home-tile-label">Forge</span>
|
||||
</span>
|
||||
<span class="home-tile-desc">issues · pull requests · agent-config repos</span>
|
||||
</a>
|
||||
|
||||
<!-- Matrix tile: hidden until home.js confirms the matrix GUI is
|
||||
enabled (state.matrix_gui_enabled), mirroring the dashboard
|
||||
tab gating so operators without it don't see a dead link. -->
|
||||
<a class="home-tile" id="home-tile-matrix" href="/matrix/" hidden>
|
||||
<span class="home-tile-head">
|
||||
<span class="home-tile-icon" aria-hidden="true">💬</span>
|
||||
<span class="home-tile-label">Matrix</span>
|
||||
</span>
|
||||
<span class="home-tile-desc">matrix chat client</span>
|
||||
</a>
|
||||
|
||||
</nav>
|
||||
</main>
|
||||
</div><!-- /.page-content -->
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
Loading…
Reference in a new issue