Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph

6,504 commits

Author SHA1 Message Date
iris
4b1012056c hive-agent: order a stored login by when the store wrote it, not by its number
A delete removes the leaf's metadata, so the KV number restarts at 1. A login
made right after a delete, before the next poll, was version 1 again and
looked no newer than the recorded 1, so it never installed. The version file
now records the store's write time next to the number and a later write
installs whatever its number. A record from before the time was kept falls
back to the number and gets its time when the same number is read again.
2026-11-09 23:03:08 +01:00
iris
5f5933fde9 docs, swarm ui: a deleted login now logs the agent out, and the dialog and docs say so
With the harness poll, an agent that holds a session logs out within 5
minutes of its stored login being deleted. The confirmation and the
claude-login page said the agent keeps its session.
2026-11-09 23:03:08 +01:00
iris
a2c9e9a8d4 hive-agent: a logged-in agent polls the swarm login, and logs out when it is deleted
wait_for_login read the store leaf only while the agent waited for a login.
A logged-in agent now reads it every 5 minutes, and a paused one once before
it resumes, so a login made or deleted in the swarm UI reaches an agent that
never failed. A newer version is installed; a store that answers nothing
stored after a version was installed means the stored login was deleted, and
the agent is logged out as /api/logout does it, with the recorded version
forgotten so the next login installs. A read that fails changes nothing.
2026-11-09 23:03:08 +01:00
iris
71a4d1d255 swarm ui: the PR report's approvals column filters on whether the rule is met
The report had an approvals column (1/2) and a separate approved column.
They are one fact, so approvals now carries the filter, complete or missing,
and the approved column is gone.
2026-11-09 22:44:10 +01:00
iris
cac9b40714 swarm ui: the delete confirmation says the agent keeps its session
The dialog only said the agent has to log in again, which reads as a logout.
It now says the agent is not logged out and keeps its current session, and a
delete that succeeded shows the empty row at once instead of waiting on the
re-read.
2026-11-09 22:22:29 +01:00
iris
7dd147adb4 swarm ui: show when an agent's claude login was stored, and delete it
The agent's settings get a claude login row: when the swarm stored the
login, read by the minter from the leaf's metadata, or that none is, with a
delete that removes every version after a confirmation. New minter steps
(status, delete), controller routes (GET claude-login, DELETE
claude-login/stored) and a read and delete grant on the leaf's metadata,
pinned in the module-eval check.
2026-11-09 22:22:29 +01:00
damocles
a0a3f9a70c hive-agent: test the in-agent socket's request dispatch 2026-11-09 22:16:48 +01:00
atlas
fbbdf26a19 gateway: per-vhost public flag, private listen addresses, and IPv6 listeners 2026-11-09 21:40:36 +01:00
iris
74754d1584 docs: the setup sample counts four steps left, as swarmctl does
steps_left leaves the optional steps out, so with steps 6 to 9 open and step
10 optional the sample reads 4, not 5.
2026-11-09 21:40:00 +01:00
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
b6af390581 grafana: the data-transferred-by-domain panel steps at 5 minutes and draws bars
Squid logs a tunnel's bytes once, when it closes, so a large download was
one point in a small bucket and read as instantaneous. The panel now has a
5 minute minimum interval and bars, so that point is a visible bar. The
module-eval check pins both.
2026-11-09 21:14:46 +01:00
iris
ea407823c1 docs: finish the neutral agent names in the hivectl source and the swarmctl README
hivectl-cli.md is generated from the clap doc comment, so the example name
moves into cli.rs; the swarmctl README's create and schedule examples use
agent1/agent2 like the handbook pages.
2026-11-09 21:09:18 +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
c1d3b29710 swarm ui: the issue report shows a table skeleton while it loads
The report waited behind a bare line of text; the pull request report, the
hives and the alerts already show their table's shape. Use the same
TableSkeleton here.
2026-11-09 20:58:28 +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
atlas
4b71bd97eb wg-hive: derive test keys from a fixed seed so every store agrees 2026-11-09 17:26:17 +01:00
damocles
15964a06f8 swarm-controller: put a failed jobq node's error in the log message 2026-11-09 17:02:59 +01:00
damocles
8b228404a7 hive-c0re: put a failed job_queue node's error in the log message 2026-11-09 17:01:20 +01:00
atlas
2a0ebe35ba run authelia's digest under a real shell, not the service user's nologin 2026-11-09 15:50:23 +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
damocles
24c5c02942 hive-priv: never leave an agent dir or the agents root root-owned on a fresh host 2026-11-09 14:19:31 +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
dbdbed4dcc swarmctl: clippy redundant closure in color_wanted 2026-11-09 11:55:32 +01:00
atlas
e37e8c3327 swarmctl readme: header sample shows the unknown count 2026-11-09 11:55:32 +01:00
atlas
a4b9088a12 setup status: count steps that cannot be observed as unknown in the header 2026-11-09 11:55:32 +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
5af927bfaa module-eval: match the system bundle path with its string context discarded 2026-11-08 18:59:59 +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
526cfbec1b swarmctl setup: an existing ruth keeps her permissions
declare_ruth stored the default set plus manage_root_agent over whatever ruth held, so a rerun dropped permissions granted since. It now reads her record and adds manage_root_agent only when it is missing, and writes nothing when she holds it. A new ruth still gets the defaults plus manage_root_agent.
2026-11-08 18:11:39 +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
4fae6a7766 module-eval: pin the forge board's vcs metric names against vcs_metrics.rs 2026-11-08 18:11:27 +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
3550cc0e1b module-eval: the egress dashboard now has 15 panels in the access-log layout 2026-11-08 11:20:10 +01:00
atlas
70e7885a28 docs: egress dashboard data transferred by domain panel 2026-11-08 11:20:10 +01:00
atlas
0566b501bd egress dashboard: data transferred by domain over time 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
63ae5d6cbf otel: look up unrestricted_internet by agent, skip the ci container 2026-11-08 10:34:18 +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