Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph hyperhive/hive-c0re
Author SHA1 Message Date
iris
febeb0d395 hive-c0re logs each container build with build_id, agent, kind, start and finish lines
Every output line of a nixos-container operation already reached the journal
with its command line. They now also carry the build-log row id, the agent and
the kind, and a start and a finish line (status, runtime) bracket them, so the
swarm log store can group a build and a board can list builds.
2026-11-01 17:18:58 +01:00
atlas
9a773349a8 a failed container start shows the unit's own journal lines in the op output 2026-11-01 17:06:36 +01:00
atlas
f5a609911c read privateUsers from the closure record at start, and move the data owner option under hive-controller 2026-11-01 17:06:18 +01:00
atlas
3ca660e558 record whether an agent's config sets privateUsers in its closure record 2026-11-01 17:06:18 +01:00
damocles
3c09e14a76 drop the config and /applied mounts: an agent reads its config by cloning agent-configs, and the prompt says so 2026-11-01 17:02:12 +01:00
damocles
41e6136caf forge seed: clear the whole applied dir when a seed fails, so the template starts from nothing 2026-11-01 15:30:33 +01:00
damocles
25295fd33f drop the proposed config repo: applied seeds from forge main, and the dead pending-init topology list goes with it 2026-11-01 15:30:33 +01:00
atlas
567cd12300 closure_pullable judges an agent by its own pins, not the whole meta head 2026-11-01 14:26:13 +01:00
atlas
23b0c4cd55 overlay config .git only when the source has one; record a failed start in the op output 2026-11-01 14:06:19 +01:00
atlas
d30cb7d122 keep authelia's oidc client secrets in the store, not on disk
The mint creates each client's secret in the swarm secret store and writes only the digest to disk. It mints only when the store answers and holds none. A new unit moves the plaintext files an earlier release left into the store and removes each once the store holds the same value. The bridge reads its secret from the store into /run before each start. The secret publisher unit and its path unit are gone.
2026-10-30 16:57:58 +01:00
atlas
9193f37963 derive per-agent egress entries from operator-linked accounts 2026-10-30 12:28:51 +01:00
atlas
e46ad07226 add a per-agent egress log mode 2026-10-30 08:52:22 +01:00
atlas
221c3f35a1 remove the hive-c0re forge-credential chain nothing reads any more
With no nix build on the hive, the boot publish of the forge token for nix has no reader. Removes the ForgeSweep node, the token file, the git credential helper and hive-c0re's forge gitconfig sections.
2026-10-29 22:55:31 +01:00
atlas
6b800600e2 bind a container apply to the closure realised for the agent, and record the deployed pins on drift
hive-priv applies only the path its last RealiseClosure returned for that agent. On drift the swap and create record the pins of the commit the closure was built from.
2026-10-29 22:36:58 +01:00
atlas
4590b04cac remove the hive's local build of agent closures
A rebuild or create downloads the closure the swarm built and applies it; with none to deploy it fails and changes nothing. hive-priv takes a store path instead of an internal/meta commit and builds nothing.
2026-10-29 22:17:07 +01:00
atlas
da16487800 move the squid host options to deploy.hive-controller.squid 2026-10-29 09:53:20 +01:00
atlas
7e2f4ce7c8 always include a hive's own allowedDomains in the rendered swarm-wide list 2026-10-29 08:25:22 +01:00
atlas
c5a876b845 derive an agent's backend hosts into the egress allow list at the controller 2026-10-29 08:25:22 +01:00
atlas
74f463c40e move the c0re host options to deploy.hive-controller 2026-10-29 01:08:41 +01:00
damocles
bdda69a080 drop the leftover matrix sweep references in docs and comments 2026-10-28 23:04:55 +01:00
damocles
6dbb18b6d4 drop the hive-side matrix code: sweep, hivectl matrix and the apiUrl option 2026-10-28 23:04:55 +01:00
atlas
c9abc2a42b make squid's allowed domains editable at runtime in the swarm ui 2026-10-28 23:01:43 +01:00
damocles
ae9c3444bc test the invite room check and the no-homeserver sweep, drop the last space wording 2026-10-28 21:07:32 +01:00
damocles
fd01848d4d also stop provisioning the hive space and make hivectl matrix invite take a room 2026-10-28 20:57:41 +01:00
damocles
c7f3706597 stop provisioning the hive-chat room in the matrix sweep 2026-10-28 20:44:48 +01:00
atlas
22522b386a log the proxy-credential, cache-miss and users-file passes at info, with counts in the message 2026-10-28 19:57:53 +01:00
atlas
b551eb02ff send agent traffic through squid once its hive announces it 2026-10-28 17:24:34 +01:00
atlas
0b99f17bc3 render squid's unrestricted-users list from each agent's flag 2026-10-28 17:23:33 +01:00
atlas
375290e409 create downloads the agent's cached closure before building 2026-10-28 15:10:00 +01:00
atlas
52d532ff5a render squid's users file from this hive's proxy credentials 2026-10-28 13:50:35 +01:00
atlas
c16cf1756f download an agent's cached closure in prebuild, building locally when that fails 2026-10-28 10:23:45 +01:00
atlas
d241e64ab1 test the run_node dispatch and the reconcile, signal, drain and purge failure paths 2026-10-28 10:22:22 +01:00
atlas
398b2af44b test the remaining job-queue executors through the host seam 2026-10-28 08:49:23 +01:00
atlas
5486fc0333 report per agent whether a hive can pull its latest closure from the cache
for each agent the hive looks up its record in agent-closures, fetches the closure's narinfo from the cache with the pull token and checks that a signature by the cache's public key covers it. the result is a log line and the gauge hyperhive.agent.closure_pullable, with a reason label when it is 0. nothing is downloaded and deploys still build locally. part 3 of 3: the probe needs the cache facts and the closure read grant from parts 1 and 2.
2026-10-28 01:19:56 +01:00
atlas
a55d55e494 read the cache facts on the hive and let hives read the closure bucket
hive-c0re reads its cache facts from the store every five minutes and writes /run/hyperhive/attic/{netrc,substituter,public-key}, each 0600. it accepts only an https url, so the pull token never travels in clear. hives get a read grant on the agent-closures bucket, and swarm-queue-client a reader for it. part 2 of 3: nothing uses the files or the reader until the probe lands.
2026-10-28 01:19:56 +01:00
atlas
61292e865e add a host seam to the job-queue executors and test them 2026-10-27 21:02:31 +01:00
atlas
24beb167d8 hive-c0re: export the agent's unrestricted internet flag as a gauge 2026-10-27 14:44:54 +01:00
atlas
bcb15805d0 hive-c0re: fill the new flag when seeding imported permissions 2026-10-27 14:44:41 +01:00
atlas
7dd5d30da8 remove the /shared bind from agent containers 2026-10-26 21:33:05 +01:00
atlas
0c6e8fc5a2 move hiveName to deploy.hive-controller; only a hive host needs a name 2026-10-26 18:47:49 +01:00
atlas
d893097ffe remove the unread forge-core-token at startup 2026-10-25 21:45:58 +01:00
atlas
0f4566c8d3 remove the legacy meta repo's .git and the meta remotes at startup 2026-10-25 21:45:58 +01:00
atlas
e592078868 move client-cert gauges behind an otel feature of swarm-secret-client, drop the crate 2026-10-25 19:02:49 +01:00
atlas
078696aaee export bao client-cert not_before/not_after gauges and alert past 80% of lifetime 2026-10-25 19:02:49 +01:00
atlas
b79896c237 hive reads the forge for nix as its own account, not core
hive-c0re copies the hive's store read token to /run/hyperhive/forge-hive-token
for nix's git credential helper, and no longer mints, reads or falls back to
the core admin token. drops the core user sweep, avatar upload, webhook
cleanup and hive-priv's RunForgeAdmin.
2026-10-25 18:06:48 +01:00
atlas
b6b568e97e drop the hive's push of the legacy core/meta repo
Nothing reads core/meta: builds come from internal/meta. Remove push_meta, ensure_meta_remote, meta_read_access, ensure_repo, the per-agent forge sync that only served them, and the git commit path in meta.rs; remove_permission_files now just deletes the seed files.
2026-10-25 16:58:38 +01:00
atlas
bd54372fcc describe core/meta as the legacy permission repo; drop stale meta-flake prose
Comments, docs and the hive-c0re README no longer say the hive renders, locks or pushes a meta flake. core/meta is the legacy permission-seed repo that meta::remove_permission_files still commits to; builds come from internal/meta (meta_rev.rs). Docs note that a start of a stale stopped agent can fail until the swarm's update pins the config.
2026-10-25 15:32:16 +01:00
atlas
4aa11b3a94 build agents only from internal/meta; delete the hive's local meta flake
The hive no longer renders, locks or commits a meta flake. A rebuild's
MetaSync node picks the internal/meta commit and records it with the
hyperhive and config pins it holds; Prebuild, Swap and Create build from it,
and a head that does not pin the agent's current config fails the build
naming the agent. hive-priv's meta_rev is required.

Removed: meta.rs sync/lock/render, the manual-rebuild relock, the boot
sweep's hyperhive bump (MetaLock), the update-meta-inputs form and its
panel, MetaWindow, the hive's hyperhive_rev setting.

Kept: agent_set::refresh holds what sync_agents also did (topology.json, the
gateway's agent-socket map and nginx include), called from spawn, destroy,
rebuild and the migration.

The boot reconcile and the stale-start upgrade compare the agent's marker
with the hyperhive pin of internal/meta; the dashboard's deployed chip reads
the config marker a successful build writes.
2026-10-25 15:32:16 +01:00
iris
cd41e1d510 swarm-ui, hive dashboard, agent page: one profile menu with the signed-in user, avatar and authelia links
The swarm UI's user menu moves to @hive/shared and takes the whoami URL and
authelia's URL as props; the swarm UI keeps a thin wrapper, and the hive
dashboard and the per-agent page mount the same component. The dashboard's
nginx vhost proxies /api/whoami to authelia (the agent page is served from
the same vhost), and hive-c0re's state carries authelia_public_url, set from
services.hyperhive.swarm.authelia.url. The agent page shows the menu only
behind the gateway.
2026-10-25 15:25:20 +01:00
atlas
2f00f9041f agent permissions: drop hive-c0re's swarm-agent-permissions.json fallback, fail closed before the first read
Removes the HiveCopy hand-off: hive-c0re no longer writes each agent's
entry from swarm-agent-permissions.json into its runtime dir as
swarm-permissions.json, and the harness and subagent daemon no longer
read it. hive-c0re keeps the file as its own last read of the swarm for
the manage_root_agent mounts. Also removes permissions_import::pending(),
its only caller being the hand-off. No nix provisioned the copy, so no
nix option is removed and no tombstone is needed.

Rule after this change: until an agent's first successful read of its
key it holds no permissions (no execution, so no bash), and a subagent it
starts holds the same. After a read a set key wins, [] holds none and an
unset key is the default. A failed read keeps the last value, so an
unreachable queue at start keeps the agent closed until a read succeeds.
The harness logs once at warn that it starts closed.

Fixes #5315
2026-10-25 02:17:32 +02:00