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 d76d54c412 frontend: preact 11.2.0
All four packages move from preact 10.29.8 to 11.2.0. The new types need four
small changes in swarm-ui and the shared dropdown: a ref that may be empty is
typed RefObject<T | null>, HTMLAttributes is imported from preact instead of
read from the JSX namespace, and TextField's type is the five kinds it is
used with, asserted once for the input's new union. npm-deps-hash follows the
lockfile.
2026-11-07 08:41:32 +01:00
..
packages frontend: preact 11.2.0 2026-11-07 08:41:32 +01:00
.gitignore frontend: add npm workspace scaffold under frontend/ 2026-05-23 14:51:01 +02:00
npm-deps-hash frontend: preact 11.2.0 2026-11-07 08:41:32 +01:00
package-lock.json frontend: preact 11.2.0 2026-11-07 08:41:32 +01:00
package.json frontend: npm dependencies updated 2026-11-06 22:22:41 +01: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).