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.
This commit is contained in:
parent
cea4827918
commit
4aa11b3a94
64 changed files with 1042 additions and 3793 deletions
|
|
@ -15,6 +15,7 @@ use clap::{Parser, Subcommand};
|
|||
// root so `crate::broker::…` style paths keep resolving unchanged.
|
||||
mod actions;
|
||||
mod agent_config;
|
||||
mod agent_set;
|
||||
mod container_view;
|
||||
mod coordinator;
|
||||
mod dashboard;
|
||||
|
|
@ -241,10 +242,9 @@ async fn cmd_serve(
|
|||
let coord = Arc::new(Coordinator::open(&db, env, model_prices, build_slots)?);
|
||||
// Idempotent pre-flight: rewrite pre-meta-layout applied
|
||||
// repos, ensure proposed repos carry the `applied`
|
||||
// remote, bootstrap the meta repo, repoint containers at
|
||||
// `meta#<name>` (one-shot, guarded by a marker file).
|
||||
// Runs before the boot reconcile, so agents are built against meta.
|
||||
if let Err(e) = migrate::run(&coord).await {
|
||||
// remote, refresh the files that follow the agent set.
|
||||
// Runs before the boot reconcile.
|
||||
if let Err(e) = migrate::run().await {
|
||||
tracing::warn!(error = ?e, "startup migration failed");
|
||||
}
|
||||
// Before any agent starts, so the bind mounts it gets from the stored
|
||||
|
|
@ -402,7 +402,7 @@ async fn cmd_serve(
|
|||
// unregister_agent. No recurring poll needed — c0re owns the listeners.
|
||||
mcp_sockets::sync_on_start(coord.clone()).await;
|
||||
// Job-queue scheduler: drives the global DAG queue (rebuild /
|
||||
// meta-update / spawn / power ops). Concurrency comes from the
|
||||
// spawn / power ops). Concurrency comes from the
|
||||
// build-slot count + per-agent leases inside the queue, not from
|
||||
// multiple workers — cheap nodes (graceful signals, drains,
|
||||
// reconciles) overlap nix-heavy ones structurally. Call sites
|
||||
|
|
|
|||
Loading…
Reference in a new issue