| Filename | Latest commit message | Latest commit date |
|---|---|---|
The backend dropped the agent hierarchy's parent field, so every container is a root and buildAgentTree/treePrefixDom could only ever produce a single-level flat list — the .tree-prefix CSS lane rules already matched nothing. Replaced with sortedContainerRows, a plain alphabetical sort, and dropped the now-dead .tree-prefix/.tree-lane/ data-depth CSS and the depth/isLast/ancestorIsLast fields from the row fingerprint and buildContainerLi's signature. No visible behavior change - the rendered list was already flat, just via dead machinery. Docs updated to describe the simpler implementation directly instead of narrating the removal (kept the heading name since swarm.js still points a comment at it). |
||
| .. | ||
| packages | ||
| .gitignore | ||
| npm-deps-hash | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
hyperhive frontend
npm workspaces project for the hyperhive browser-facing assets:
packages/shared/— shared modules used by both surfaces (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).
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; the
build derivation is wired up in nix/packages/frontend.nix. Per-agent
additions are layered on top of the default agent dist via the
hyperhive.frontend.extraFiles option in agent.nix.
Why npm + esbuild
- Hermetic: dependencies vendored via the checked-in lockfile;
buildNpmPackagein nix uses it as the source-of-truth so the output is reproducible without network access at build time. - esbuild: vanilla-JS bundler, no framework runtime overhead.
Each workspace's
build.mjsis ~30 lines. - Single-PR migration: see the tracked design proposal and the four-commit shape (npm scaffold → nix derivations → container plumbing → Rust cutover).