Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph hyperhive/docs
Author SHA1 Message Date
iris
7ea051bdfc docs: fix the contraction Vale flags in the setup intro 2026-11-09 21:40:00 +01:00
iris
fbb20a11d2 docs: the setup page leads with swarmctl setup, with sample output
The first-run page opened with ten hand-run steps and a pointer to the
interactive tool. It now opens with swarmctl setup, a sample session and a
sample of setup status, and the by-hand steps follow as a reference.
2026-11-09 21:40:00 +01:00
damocles
eda7120f08 hive-forge: post inline review comments with pr reviews --at, number diff lines with pr diff --numbered 2026-11-09 21:39:44 +01:00
iris
c85233efd4 docs: say which services singleHostSwarm leaves off, and format the table
The services intro claimed singleHostSwarm runs every service with no further
setting. The CI runner is never derived, and the builder and cache need their
store identities on the host. The overview table is also formatted the way
treefmt wants it.
2026-11-09 21:27:43 +01:00
iris
c9bdad0170 docs: add an overview table of the swarm services
A short blurb per service with its enable option and a link to its section
or page, so an operator on a single host can see what each one is and which
two (builder, CI runner) are worth a look before switching on.
2026-11-09 21:27:43 +01:00
iris
97671e28d5 docs: move implementation sections out of the handbook pages
Three handbook pages carried sections an operator never reads, named after
source paths and build internals. They move to pages under 4-implementation,
and each handbook page keeps a short pointer.

- forge.md: the notification poller (what it polls, how it formats,
  de-duplicates and marks notifications read) is now
  agent-tools/forge-notify.md. The forge page keeps a short Notifications
  section.
- matrix.md: the retired hive-side matrix code, the evaluation assertions and
  the fluffychat-web build fixes are now networking/matrix-homeserver.md.
- github.md: the Implementation section (how `gh` and `git push`
  authenticate, and the GitHub poller) is now agent-tools/github.md.

docs/README.md and the agent-tools README list the new pages, and AGENTS.md's
note on mixed operator and implementation docs now says to move the detail
and leave a pointer.
2026-11-09 21:27:43 +01:00
iris
da071e3fa9 docs: use neutral placeholder agent names in examples
The setup page's first-agent example named the agent iris, and a user
copied it verbatim. Use <name> there, with a line saying the name is free
to choose, and agent1/agent2 in the hivectl, schedule and label examples.
2026-11-09 21:09:18 +01:00
iris
73f875eab8 swarm ui: a stored claude login closes the dialog and shows a toast
The login dialog stayed open with a success line after the code was
accepted, though nothing is left to do in it. It now closes and a toast
says the login is stored. The toast is a new swarm-ui primitive: a short
note raised with showToast, rendered by a ToastHost at the app root, gone
after a few seconds or on click.
2026-11-09 20:50:32 +01:00
atlas
892675628d nats and bao can listen on a routable address, opt-in 2026-11-09 17:42:20 +01:00
damocles
c41429e473 hive-matrix-mcp: sync with sliding sync when the server has it, classic /sync otherwise 2026-11-09 15:38:57 +01:00
atlas
52cdfe84a0 keep the mirror hint off forge errors, forward the hyperhive mirror from any controller host 2026-11-09 13:07:41 +01:00
atlas
a6b5bafa83 seed a hyperhive/hyperhive mirror so update_meta finds it on a fresh swarm 2026-11-09 12:19:46 +01:00
atlas
d55cf9ed80 swarmctl setup status shows progress at a glance 2026-11-09 11:55:32 +01:00
atlas
1c3b37e46a page pending_logins from hh-hive-warning for hives without the needs-login gauge 2026-11-09 10:56:50 +01:00
atlas
790975ac8d fold needs-login gauge into a snapshot registrar, fix doc wording 2026-11-09 10:42:43 +01:00
atlas
9043be4a61 export hyperhive.agent.needs_login and alert per agent 2026-11-09 10:35:16 +01:00
atlas
9d62ef44b5 nix trusts the swarm's root through its own CA bundle, so root's nix clients reach the cache 2026-11-08 18:37:34 +01:00
atlas
44caa72c19 swarmctl: interactive setup walks the first-run ceremony
swarmctl setup with no subcommand checks the setup status first, then takes the open steps one at a time: prompts for input, shows a running action as one live line, prints the store keys, root token and new password under a warning until the operator confirms, and names the deploy option for a step this host cannot do. It calls the code of bao init, bao grant-bootstrap, user add, forge make-admin, agent create, agent permissions set and agent set-state. Refuses without root or a terminal.
2026-11-08 18:11:39 +01:00
atlas
2e23f3debf swarm-controller: count default-branch merges and lines per repo 2026-11-08 18:11:27 +01:00
atlas
c25cf3d48a hive-priv: fetch the swarm signature from attic before verifying a locally valid closure 2026-11-08 11:49:51 +01:00
atlas
70e7885a28 docs: egress dashboard data transferred by domain panel 2026-11-08 11:20:10 +01:00
atlas
ef68baa00f pull swarm closures through the nix daemon: substituters in the fragment, merged root-only netrc 2026-11-08 11:06:28 +01:00
atlas
817c222951 container stats: sample the ci runner's container 2026-11-08 10:34:13 +01:00
atlas
530137a7bb hive-c0re: queue another knowledge pull soon after a failed one, backing off to 5 minutes 2026-11-08 09:19:48 +01:00
atlas
a20596fa59 swarmctl: add bao init and bao grant-bootstrap
init prints the store's keys and root token once and keeps none; with
--and-grant it goes on to the granter bootstrap in the same process.
grant-bootstrap does that step alone, reading the root token from a
hidden prompt or stdin. The token reaches bao only as BAO_TOKEN in the
child's environment.
2026-11-08 09:09:13 +01:00
atlas
e9321297c0 swarm-grafana: a host dashboard for the collector's system metrics
Adds host.json (hive and host filters over the hostmetrics series),
registers it in the provisioned dashboard list, lists it in the swarm
services handbook, and adds a module-eval case that it ships and every
query filters on both variables.
2026-11-08 09:01:21 +01:00
damocles
1c3b5e52cf drop the host side of the agent broker send
Remove the agent-side Send and AckUntil requests, their hive-c0re handlers
(handle_send with its 4 KiB size cap, handle_ack_until) and Broker::ack_until.
Everything that existed only for them goes with them: the OkWarn response
(its sole producer was Send's reserved-name warning), Recv's max parameter
and RECV_BATCH_MAX (the harness never asked for more than one message),
OPERATOR_SEND_REFUSAL, and the MESSAGE_MAX_BYTES / check_size limit (the
reminder timer keeps its own copy of the cap, so its comment is reworded).

Messages.remaining stays on the wire (default on read) because a harness
built before this change still requires it. Update the conventions docs.
2026-11-08 08:56:39 +01:00
atlas
aeef4634e1 report the btrfs-subvolume root in host filesystem metrics 2026-11-08 03:03:49 +01:00
atlas
319dd6a808 alert when claude usage runs ahead of the clock, per account 2026-11-08 02:05:50 +01:00
atlas
dab7768869 scope the cache access to hive-core: client-side nix copy, daemon trusts only the key 2026-11-08 01:56:55 +01:00
atlas
ecd4445680 hive-c0re pulls closures through the nix daemon; hive-priv verifies the swarm signature before applying 2026-11-08 01:56:55 +01:00
atlas
448b703995 hivectl agent watch: document control-char replacement and the quiet exit on a closed pipe 2026-11-08 01:55:16 +01:00
damocles
8154c5da02 docs: vale fixes in the messaging paragraph 2026-11-08 01:40:10 +01:00
damocles
bffb2c07a8 drop the hyperhive send/recv/ack_until tools: agents message over matrix 2026-11-08 01:40:10 +01:00
damocles
64c0b8b3f0 docs: send_dm and open_dm accept a bare agent name 2026-11-07 23:01:02 +01:00
atlas
61a334c847 swarmctl setup status shows where the setup ceremony stands 2026-11-07 17:20:21 +01:00
atlas
78b0451ed1 hive-priv: overlay the knowledge .git only when the clone has one, so agents start before the first clone 2026-11-07 15:13:35 +01:00
damocles
513530ae35 matrix-mcp: auto-join only on accounts that live on the swarm homeserver 2026-11-07 14:10:06 +01:00
damocles
852d98e8dd docs: the daemon auto-joins invites from the own homeserver 2026-11-07 14:10:06 +01:00
iris
a47edaec5b docs: drop the sentence that says the dashboard row has no forge links
A page documents what is there, not what was removed.
2026-11-07 13:43:44 +01:00
iris
d516bb890c remove the forge links from the hive dashboard and the agent page
Each agent row on the hive dashboard, and the agent page's link menu, linked
to the agent's forge profile and its config repo. Both are gone, with what
only they used:

- hive-agent no longer builds the two links, the `Forge` link kind, or the
  `forge_public_url` field of its state, and no longer reads
  `HIVE_FORGE_PUBLIC_URL`. The agent page's link menu and the dashboard row's
  icon strip (which skips a forge link an agent not yet rebuilt still sends)
  drop their forge handling.
- hive-c0re's dashboard state no longer carries `forge_public_url`.
- `HIVE_FORGE_PUBLIC_URL` is no longer forwarded to agents through the meta
  flake (the forwarded-variable list, its test fixture, the controller's
  settings and the VM test), so the next meta flake render differs by that
  one line. hive-c0re still reads it for the forge URL a hive publishes, so
  `swarm.forge.publicUrl` stays, with its description corrected.
- The docs stop describing the links.
2026-11-07 13:43:44 +01:00
atlas
1b6d7f3c99 swarm: a failed facts copy counts in the held-deploys gauge 2026-11-07 12:59:50 +01:00
atlas
79c1b6d81d swarm: a deploy goes out only once its closure is cached and the hive has its cache facts 2026-11-07 12:28:44 +01:00
iris
0e84fe8bc4 docs: the handbook follows the three layers: swarm, hives, agents
The handbook's sections were agent-lifecycle, integrations, swarm, tools,
trust-boundary and web-ui, which do not follow how the system is built, so a
reader could not tell which layer a page is about. Its pages now sit in
swarm/, hives/ and agents/, with the accounts an agent can hold outside the
system in external-accounts/.

- swarm/: forge, matrix and the knowledge repo join the swarm pages, and so
  does the swarmctl reference.
- hives/: the dashboard, hivectl and its reference, and the operator/agent
  boundary, with a README that takes over the old web-ui and tools pages.
- agents/: the roster, persistence, config changes, the agent's own web page
  (was web-ui/agent) and the security model, with a README.
- external-accounts/: GitHub and GitLab.

Pages are moved whole; none is split yet. Every reference follows: relative
links in the docs, `docs/2-handbook/...` paths in code comments, the nix
checks that regenerate the CLI references and the ignore list, and docs/README.md,
whose handbook section is now by layer.
2026-11-07 12:19:36 +01:00
atlas
263b21021a swarm-controller: ask the builder for the archetypes again soon after a failed pass 2026-11-07 11:54:23 +01:00
iris
560afef2b6 swarm ui: the issue report card is named "issues"
The reports tab holds cards, so a card named "issue report" repeats the word.
The card is now "issues", beside "pull requests", and the handbook says the
same.
2026-11-07 11:46:05 +01:00
iris
944fd5b726 swarm ui: a diff column on the pull requests card, and "approved" as its header
The pull requests card gets a diff column, the lines a PR adds and removes
(`+120 −8`), sortable on the total. The controller takes the counts from the
forge's pull request list, so no call is added. The column that said "has all
approvals" is now headed "approved".
2026-11-07 11:46:05 +01:00
iris
f633963b77 swarm ui: a pull requests card on the reports tab
The reports tab gets a "pull requests" card under the issue report. It lists
the open PRs of every repo, or of one picked in a repo select, with the
columns a reviewer or merger filters on: author, labels, requested
reviewers, base branch, WIP (the forge's draft flag), approvals against the
base branch's protection rule, has all approvals, conflicts, protected base
and CI. Every column sorts, the small-set columns filter by picking values,
and the browser keeps the filters and the repo. No filter applies at first.

swarm-controller resolves each row so the page makes no calls of its own:
GET /api/pr-report and GET /api/repos/{org}/{repo}/pr-report. The required
approvals come from the first matching branch protection rule (an
unprotected base asks for none); an approval counts when it is the
reviewer's latest decision, on the current head, neither stale nor
dismissed and official.

A free-text table cell gets a minimum width, so a table with many columns
scrolls sideways instead of wrapping a title to a word a line.
2026-11-07 11:46:05 +01:00
iris
cffe8895df review classifier: the most classifications a run carries is a setting
The limit was a constant of ten in swarm-wire, so a repo with eleven rules
could not be reviewed and nothing short of a rebuild changed it. It is now
`max_classifications` in the classifier settings, beside
`max_concurrent_reviews`: 1 to 1000, ten until set, and a document stored
before the field decodes with the default. The classifier settings form in
the swarm UI gets a "rules per review" field, and the try-out's add button
stops at the saved limit instead of a hard-coded ten.

The controller checks a try-out, and a requested review's rules file, against
the setting where the run starts. The rules file itself may hold up to the
1000 the setting allows, so raising the limit needs no change to a repo.
A review whose rules exceed the limit posts a no-verdict comment saying so.

A run's reply deadline was a constant that covered ten classifications, a
minute plus three each. It is now computed from the run's own size, so a
bigger run waits as long as it needs and a default-sized one still waits 31
minutes. The classifier's answer window in the queue permissions covers the
biggest run the setting allows.
2026-11-07 11:32:04 +01:00
atlas
b8b55ba23e credentials-reference: a hand-edited public-key on the in-swarm cache is overwritten 2026-11-07 10:40:07 +01:00