hyperhive/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 4db8a8cd3d feat(#1843): static-serve the dashboard via the gateway, hive-c0re API-only
nginx proxied `<hive>/` straight to hive-c0re:7000, and hive-c0re served the
dashboard dist itself via `tower_http::ServeDir` (from `HIVE_STATIC_DIR` baked
into its service env). So a frontend-only change rebuilt the hive-c0re unit and
restarted the core daemon — every operator session dropped its SSE stream for a
pure CSS/JS change.

The gateway nginx now static-serves the dashboard dist directly; hive-c0re's
dashboard router is API-only. The split uses the Accept-header SPA fallback (the
same `map $http_accept` pattern the matrix/agent vhosts already use), so no
backend prefix has to be enumerated: a browser navigation (Accept: text/html)
whose path is not an on-disk asset gets the SPA index.html; everything else
(every /api route, the bare action/mutation routes, the two SSE streams, the
knowledge webhook — all Accept != text/html) falls through `try_files` to the
`@c0re` named location and is reverse-proxied to hive-c0re. A new c0re route
needs no gateway change.

- hive-c0re.nix: expose the themed dist as a new internal read-only option
  `services.hyperhive.c0re.servedFrontend`; drop `HIVE_STATIC_DIR` from the
  service env (the router no longer serves files).
- hive-gateway.nix: read that option in host-module scope (dashboardDist),
  static-serve `dashboard/` with the Accept-header `try_files ... @c0re` split;
  `@c0re` carries `proxy_buffering off` + a 1d read timeout for the SSE streams
  and a duplicated auth_basic block (named locations do not inherit it). The
  dashboard map is unconditional; the matrix map stays gated on the matrix GUI.
- dashboard.rs: drop the ServeDir fallback + the HIVE_STATIC_DIR resolution; the
  router 404s unmatched paths (the gateway only proxies non-static requests).
- hive-c0re/Cargo.toml: drop the now-unused tower-http dependency.
- docs/gateway.md: document the dashboard static split + the `@c0re` fall-through.

The store path is reachable inside the gateway nspawn container (shared
/nix/store), mirroring how HIVE_AGENT_FRONTEND_DIR already exposes the per-agent
UIs. The gateway and c0re changes must land together (atomic cutover) or the
dashboard 404s — this needs a watched gateway + c0re rebuild.
2026-06-22 01:18:01 +02:00
..
tools hive-c0re: hivectl subvol upgrade — migrate an agent state dir to a btrfs subvolume 2026-06-21 21:05:22 +02:00
web-ui docs(web-ui): deny dialog uses themedPrompt textarea, not window.prompt 2026-06-22 00:33:59 +02:00
agent-hierarchy.md docs: agent-hierarchy default-parent is root, not the manager 2026-06-22 00:41:42 +02:00
approvals.md docs(#1014): update stale root→ruth references in conventions, approvals, agent-hierarchy 2026-06-02 22:48:10 +02:00
boundary.md docs: move privsep socket-activation + child-state rw rationale out of code comments 2026-06-08 21:58:12 +02:00
ci.md docs(ci): document jobTimeout, fix forge.ci option path 2026-06-15 11:37:50 +02:00
conventions.md docs: document the build + local-check workflow in conventions 2026-06-19 12:23:01 +02:00
coordinator.md hive-c0re: graceful agent stop — quiesce harness, flush state, then stop 2026-06-19 11:50:59 +02:00
forge.md fix(#1637): don't label later activity (bodiless reviews) as new PR 2026-06-13 12:20:21 +02:00
gateway.md feat(#1843): static-serve the dashboard via the gateway, hive-c0re API-only 2026-06-22 01:18:01 +02:00
gotchas.md docs: note that linking workspace binaries locally needs nix develop (libsqlite3) 2026-06-05 21:30:57 +02:00
knowledge.md docs(knowledge): document the hive-forge AGit no-fork contribution flow 2026-06-05 20:54:25 +02:00
matrix.md feat(#551): gate server-side e2ee behind opt-in matrix.allowEncryption (default off) 2026-06-10 19:12:36 +02:00
network.md docs(network): document container-side route + resolver wiring for isolation 2026-06-10 21:49:01 +02:00
persistence.md hive-c0re: back agent state dirs with btrfs subvolumes 2026-06-19 13:46:39 +02:00
security.md fix: update PrivRequest table to match actual hive-sh4re::priv_proto variants 2026-06-05 18:40:44 +02:00
swarm.md docs: clarify certFingerprint does not govern matrix federation tls 2026-06-06 00:21:52 +02:00
terminal-rendering.md agent-ui: real fixed-width icon column for terminal rows 2026-06-22 00:41:24 +02:00
turn-loop.md docs: drop stale two-loop/two-binary framings (single hive serve loop) 2026-06-10 20:01:52 +02:00
web-ui.md docs(web-ui): sync dashboard docs after the SYST3M → C0R3 page move 2026-06-10 21:49:12 +02:00