hyperhive/docs
Repository files (latest commit first)
Filename Latest commit message Latest commit date
iris 37161cd136 dashboard: replace <hive-jobq-graph> with a shared Preact component
Ports the shadow-DOM <hive-jobq-graph> custom element
(frontend/packages/shared/src/jobq-graph/) to a Preact component
(JobqGraph.js) shared by the dashboard and swarm-ui, per hyperhive#3310.

- JobqGraph.js: written with plain h() calls (no JSX) so the same file
  compiles unmodified under both the dashboard's text-loader CSS config
  and swarm-ui's JSX config. Exports `JobqGraph` for JSX use and
  `mountJobqGraph(container, props)` for the dashboard's non-JSX
  imperative mount, returning a `{refresh(), update()}` handle matching
  the old custom element's public surface. Same rendering contract as
  before: indented state tree, payload.label verbatim, payload.data as
  a generic key/value list, "waits on: <label>" text for Node-kind deps,
  per-state filter checkboxes, optional cancel button.
- jobq-graph.css: light-DOM adaptation of the old shadow-scoped
  stylesheet (:host -> .jg-root, otherwise unchanged).
- dashboard/src/builds.js: local mountJobqGraph() renamed to
  mountRebuildQueue() to avoid colliding with the newly-imported shared
  mountJobqGraph; cancel handling is now a plain onCancel callback
  instead of a DOM CustomEvent listener (no shadow boundary to cross
  anymore).
- dashboard + shared package.json: added preact as a dependency (matches
  swarm-ui's existing pin, 10.29.8) - the dashboard was a vanilla-JS MPA
  with no Preact/JSX pipeline before this.
- Removed the old hive-jobq-graph.js/.css entirely (confirmed via grep
  it had exactly one consumer, dashboard/src/builds.js, so this is a
  clean swap, not parallel maintenance of two implementations).
- Updated stale doc-comment references to the old element name in
  builds.html, tabs.js, swarm.js, docs/web-ui/dashboard.md, and
  hive-c0re/src/job_queue/mod.rs.

Verified: npm run build (whole frontend workspace) and npm run
typecheck (swarm-ui) both clean; cargo build/clippy/test -p hive-c0re
all clean (331 tests, 0 failures); headless-chromium screenshot of
/builds.html against a mock GET /api/jobq/graph payload confirms full
visual/behavioral parity with the old custom element (tree, filter
checkboxes, cancel buttons, error text, waits-on line, data list, live
build log panel).

This covers the dashboard-replacement half of hyperhive#3310 only. The
swarm-ui half (rendering the CreateAgent DAG on the agent-creation page)
is downstream of hyperhive#3306/#3124 landing - no swarm-ui page exists
yet to mount it in.
2026-08-16 15:18:25 +02:00
..
crates docs: rename docs/components to docs/crates 2026-08-12 13:32:55 +02:00
swarm docs(swarm): say how to make a hive report, not that nothing does 2026-08-16 13:14:03 +02:00
tools docs(matrix): fix invite-wake mechanism and todo message format 2026-08-15 12:45:22 +02:00
turn-loop docs(turn-loop): fix wrong HelperEvent lifecycle-event list 2026-08-15 12:45:22 +02:00
web-ui dashboard: replace <hive-jobq-graph> with a shared Preact component 2026-08-16 15:18:25 +02:00
agent-hierarchy.md docs(agent-hierarchy): fix stale topology.rs path, ManagerRequest, dead reminder_scheduler.rs ref, and hardcoded forge URLs 2026-08-15 12:45:22 +02:00
approvals.md docs(approvals): fix stale internal refs verified against source 2026-08-15 12:45:22 +02:00
boundary.md docs(boundary): fix answer-question path and nonexistent AgentRequest type 2026-08-15 12:45:22 +02:00
ci.md docs(ci): fix stale nix option namespace and ensure_mirrors file path 2026-08-15 12:45:22 +02:00
conventions.md docs(conventions): fix one more stale hive-c0re.nix bare-file ref 2026-08-15 12:45:22 +02:00
coordinator.md docs(coordinator): fix stale DAG-history cap, wire request name, infra container list 2026-08-15 12:45:22 +02:00
forge.md docs(forge): fix stale nix option namespace (services.hyperhive.swarm.forge) 2026-08-15 12:45:22 +02:00
gateway.md docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
github.md docs(github): move impl detail below the operator-facing sections 2026-08-02 23:54:55 +02:00
gotchas.md docs(gotchas): fix wrong claim that hyperhive-events.sqlite lives in state dir 2026-08-15 12:45:22 +02:00
knowledge.md docs(knowledge): fix stale collaborator model and webhook delivery claims 2026-08-15 12:45:22 +02:00
matrix.md docs(matrix): fix stale matrix.<hive> vhost + assertion-list claims 2026-08-15 12:45:22 +02:00
network.md docs(network): fix stale forge/matrix zone claim in resolver behaviour 2026-08-15 12:45:22 +02:00
observability.md docs(otel): say what the agent->collector hop is and is not 2026-08-15 11:46:24 +02:00
persistence.md docs(persistence): fix stale facts — reminders/todos moved in-container, vacuum ownership, topology writer, matrix glob, qgroup quotas shipped 2026-08-15 12:45:22 +02:00
pr-review-gate.md docs: revise per review — no specific example, gate is per-repo config, soften auto-merge framing 2026-08-04 17:23:12 +02:00
README.md docs: rename docs/components to docs/crates 2026-08-12 13:32:55 +02:00
security.md docs(security): fix stale forge.rs path, GetAgentMeta validator, hive-priv table 2026-08-15 12:45:22 +02:00
setup.md docs: link the secrets page from setup, fix a dropped word 2026-08-14 13:22:43 +02:00
snapshot-store.md docs(snapshot-store): cross-link the state subvolume to persistence.md 2026-08-15 12:45:22 +02:00
terminal-rendering.md docs(terminal-rendering): re-attribute dispatch logic to stream_enrich.rs, fix Write/TodoWrite/Bash dead-path claims 2026-08-15 12:45:22 +02:00
web-ui.md docs(web-ui): point port-hash detail at gotchas.md instead of restating it 2026-08-15 12:45:22 +02:00

hyperhive docs

Depth reference for hyperhive — the substrate, not the pitch (that's the top-level README / website). Every page here stands alone; pick the one matching your task rather than reading top to bottom. For the auto-generated NixOS options reference (every services.hyperhive.* / hyperhive.* option, host and agent), see the options site instead — this tree is prose, that one's generated straight from the module declarations.

Getting started

  • Bringing a fresh hive online?setup.md (first-run hivectl bootstrap).
  • What does the dashboard look like, and how do I use it?web-ui/ — the operator-facing starting point; its own sub-pages (shape, dashboard, agent, css-vars) go deeper into implementation.
  • What tools does an agent (or the operator) have available?tools/hivectl (yours) plus every agent's MCP tool surface (bash, forge, lifecycle, matrix, scheduling).

Dashboard & agent UI internals

Turn loop, config, approvals

  • How does claude get its prompt, and what tools does it have?turn-loop/ — the loop, binary shape, turn outcomes; sub-pages: claude-invocation, config, mcp.
  • How do config changes flow from manager to operator to container?approvals.md (two-step spawn, approval state machine, flake.lock validation).
  • What state survives destroy / purge / restart?persistence.md.

Trust boundary & security

  • What's the operator/agent trust boundary? What's a capability?boundary.md.
  • Agent trust model, prompt-injection threat model, credential isolation?security.md.
  • Who can do what to whom — agent hierarchy and privilege?agent-hierarchy.md.

Accounts & integrations

  • How do per-agent forge accounts work? What does forge_notify poll, and how does it format wake messages?forge.md (the hive's own Forgejo); tools/forge.md for the hive-forge CLI verbs agents actually call.
  • How does the matrix-tuwunel container work? Multiple accounts per agent?matrix.md (the homeserver); tools/matrix.md for the MCP tool surface and hyperhive.matrixAccounts.
  • How do I give an agent a GitHub account (gh + git push)? How is the PAT injected?github.md.
  • What does hivectl do? Provisioning, gateway users, container shells?tools/hivectl.md (the curated guide); tools/hivectl-cli.md for the exhaustive, auto-generated flag reference.

Networking & swarms

  • What nginx vhosts does the gateway serve? How does matrix discovery work?gateway.md.
  • How does DNS resolution work in agent containers? What's the bridge network for?network.md.
  • How do I connect two hives into a swarm?swarm/ (peer hives, TLS trust).
  • Where do agent snapshots go? How does the swarm's btrfs receive endpoint authenticate a pushing hive?snapshot-store.md.

Scheduler, CI, observability

  • How does the rebuild queue work? What are queue kinds and sources?coordinator.md.
  • How does the CI runner work? What's the auto-registration flow?ci.md.
  • How do I export Claude Code metrics (tokens, cost, tool calls) to Prometheus/Grafana?observability.md.

Crate reference

  • What does a specific Rust crate do, on its own terms?crates/ — every workspace crate's own README.md, one level up from source (hyperhive#3051); the crate itself is still the source of truth, this is just a walkable mirror.

Process & conventions

  • Naming, commit style, wire protocol, the data-async pattern?conventions.md.
  • Why does the nspawn flag look like that?gotchas.md (bind mounts, conf flags, other NixOS/nspawn quirks).
  • What is /knowledge? How does the hive-wide knowledge repo sync, and how do I contribute a document?knowledge.md.