| Filename | Latest commit message | Latest commit date |
|---|---|---|
`docs/` was reorganised into topic subdirectories and the references to it were not moved with it. Thirteen distinct paths and three relative links no longer resolved, spread across nix, css, html, js, markdown and .prettierignore — a stale pointer is not a markdown problem, it is wherever someone wrote a path down. Each mapping resolved to exactly one target. `docs/matrix.md` was the sole ambiguous basename: .prettierignore lists `docs/tools/matrix.md` separately and that entry still resolves, so the stale one is the integrations doc. The three relative links were each one `../` too deep — from `<crate>/src/` two levels reach the repo root. `hive-agent/src/login.rs` already had the correct form, in the same crate, at the same depth. .prettierignore is repointed rather than dropped, though nothing in the tree runs prettier: no treefmt entry, no CI job, no package script. Whether that config should exist at all is a separate question from whether it names files that do. |
||
| .. | ||
| 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 issue #273 for the design proposal and the four-commit shape (npm scaffold → nix derivations → container plumbing → Rust cutover).