Watch
0
0
Fork
You've already forked hyperhive
0

build agents from internal/meta when it pins their config

A rebuild's MetaSync resolves the head of the swarm's internal/meta once and
records it; the prebuild and the swap build that flake instead of the hive's
own, and a first deploy does the same in Create. hive-priv takes the commit as
a validated meta_rev on UpdateContainer and CreateContainer and builds from its
own forge URL (HIVE_PRIV_FORGE_URL).

The head is used only when its flake lists the agent at the config commit the
forge's main is at; otherwise, and when the repo has no commit or this hive has
no core token file for nix's git, the hive renders locally as before.

hive-c0re's and hive-priv's gitconfig now share the forge credential helper and
rewrite the forge's https URLs to http, which hive-priv lacked.
This commit is contained in:
atlas 2026-10-24 14:59:43 +02:00
commit 7c0a622d41
19 changed files with 831 additions and 64 deletions

View file

@ -349,12 +349,22 @@ async fn exec(
PrivRequest::KillContainer { ref name } => container::kill_container(name).await,
PrivRequest::UpdateContainer { ref name, stream } => {
container::container_flake_action("update", name, stream, writer).await
PrivRequest::UpdateContainer {
ref name,
stream,
ref meta_rev,
} => {
container::container_flake_action("update", name, meta_rev.as_deref(), stream, writer)
.await
}
PrivRequest::CreateContainer { ref name, stream } => {
container::container_flake_action("create", name, stream, writer).await
PrivRequest::CreateContainer {
ref name,
stream,
ref meta_rev,
} => {
container::container_flake_action("create", name, meta_rev.as_deref(), stream, writer)
.await
}
PrivRequest::DestroyContainer { ref name } => container::destroy_container(name).await,