Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/frontend
Repository files (latest commit first)
Filename Latest commit message Latest commit date
iris 70917b7dd0 swarm-ui: hives are a folded card on the agents page, and hide developer details also hides the components tab
The hives nav tab and route go, with no redirect; the roster is a card above
the agents panel that starts folded and is read on the first open. The
settings toggle is renamed from hide debug output to hide developer details,
as it now also drops the components tab (the page still answers at
/components); the stored preference keeps its key.
2026-10-26 17:56:10 +01:00
..
packages swarm-ui: hives are a folded card on the agents page, and hide developer details also hides the components tab 2026-10-26 17:56:10 +01:00
.gitignore frontend: add npm workspace scaffold under frontend/ 2026-05-23 14:51:01 +02:00
npm-deps-hash frontend: regenerate npm-deps-hash after dropping dompurify and marked from the dashboard workspace 2026-10-22 07:36:47 +02:00
package-lock.json dashboard: remove the state-file endpoint, the file_refs path scan and the unused marked and dompurify deps 2026-10-22 07:36:47 +02:00
package.json swarm-ui: bootstrap new swarm-level frontend (Preact + wouter + TS + JSX) 2026-08-11 21:31:44 +02:00
README.md dashboard: the SW4RM tab is the agents tab 2026-10-15 09:50:49 +02:00

hyperhive frontend

npm workspaces project for the hyperhive browser-facing assets:

  • packages/shared/ — shared modules used by every surface (terminal pane, Catppuccin palette + body typography).
  • packages/dashboard/ — the hive-c0re dashboard SPA.
  • packages/agent/ — the per-container web UI (default agent page, stats, screen).
  • packages/swarm-ui/ — the swarm-level operator UI shell (hives, agents, jobs, issue-report pages).

Build

npm install            # one-off; uses the checked-in package-lock.json
npm run build          # builds every workspace into packages/*/dist/

The Rust binaries serve packages/dashboard/dist/ and packages/agent/dist/ via tower_http::ServeDir at runtime; nix/packages/frontend.nix wires up the build derivation. The services.hyperhive.agent.frontend.extraFiles option in agent.nix layers per-agent additions on top of the default agent dist.

Why npm + esbuild

  • Hermetic: dependencies vendored via the checked-in lockfile; buildNpmPackage in nix uses it as the source-of-truth so the output is reproducible without network access at build time.
  • esbuild: agent and swarm-ui are Preact apps; dashboard is a vanilla-JS + custom-element MPA with a few Preact-rendered pages (builds.js, agents.js, imported by the dashboard entry); shared holds both kinds of module. No framework runtime beyond Preact where it's used. Each workspace's build.mjs is a short esbuild script.
  • Single-PR migration: see the tracked design proposal and the four-commit shape (npm scaffold → nix derivations → container plumbing → Rust cutover).