| Filename | Latest commit message | Latest commit date |
|---|---|---|
Dialog previously forced every caller to a fixed width: 90vw; max-width: 44em shell regardless of content — fine for the create-agent form's wide two-panel layout (the only caller until now), but a ConfirmDialog's short paragraph then wrapped at its own narrower max-width while the shell stayed the wide default, leaving a dead gutter before the close button (mara filed a screenshot showing exactly this). First pass added a narrow prop/second CSS class for ConfirmDialog to opt into a smaller fixed width. Review pointed at the actual root cause one level up: width: 90vw is a forced width, not a cap — a native dialog's own UA default is width: fit-content. Switching .ui-dialog to width: fit-content; max-width: min(90vw, 44em) lets each caller size to its own content naturally: the create-agent form still hits the 44em cap (same rendered width as before, confirmed via screenshot), ConfirmDialog's paragraph settles at its own intrinsic width with no extra prop, no second CSS class, and no second hardcoded number to keep in sync with the first. |
||
| .. | ||
| 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).