Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/hive-meta-flake
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 5950363a10 swarm-controller: render, lock and commit internal/meta
A new update_meta node renders internal/meta's flake.nix with
hive-meta-flake, the renderer hive-c0re uses: hyperhive pinned to its
forge main, each custom agent a hive places pinned to its agent-configs
main, all over https, and the swarm-wide values from
SWARM_CONTROLLER_META_FLAKE (set by swarm-controller.nix from
services.hyperhive.swarm.*). The swarm builder locks it, and the
controller commits flake.nix and flake.lock in one commit and gives
every hive's forge account read on the repo. A render equal to the
committed flake.nix sends no lock and commits nothing.

It runs at start, when hyperhive's main moves, before the deploy of a
merged config PR and before the first deploy of a new agent; those
deploys now wait for it. agent_web_port moves into hive-meta-flake so
both callers compute the same port; hive-c0re re-exports it.

On deploy: internal/meta appears on the forge and follows every merge.
No hive builds from it yet.

Refs #4857
2026-10-24 21:13:24 +02:00
..
src swarm-controller: render, lock and commit internal/meta 2026-10-24 21:13:24 +02:00
Cargo.toml move the meta flake render into the hive-meta-flake crate 2026-10-24 21:13:24 +02:00
README.md move the meta flake render into the hive-meta-flake crate 2026-10-24 21:13:24 +02:00

hive-meta-flake

The meta flake's flake.nix text: one nixosConfigurations.<agent> per agent, each built from hyperhive's agent-base plus the agent's config input or archetype.

Pure string rendering, with no IO and no environment reads. The caller passes the hyperhive pin, the agents with their pins, and the values every agent container gets. hive-c0re and swarm-controller both call render_flake, so there is one renderer.