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
|
|
@ -168,26 +168,31 @@ pub fn applied_dir(name: &str) -> PathBuf {
|
|||
applied_root().join(name)
|
||||
}
|
||||
|
||||
/// `applied/.<name>.hyperhive-rev` — marker recording the flake rev an
|
||||
/// agent was last successfully rebuilt against (auto-update staleness check).
|
||||
/// `applied/.<name>.hyperhive-rev` — marker recording the hyperhive commit
|
||||
/// `internal/meta` pinned when an agent was last successfully built (the boot
|
||||
/// reconcile's staleness check).
|
||||
#[must_use]
|
||||
pub fn applied_rev_marker(name: &str) -> PathBuf {
|
||||
applied_root().join(format!(".{name}.hyperhive-rev"))
|
||||
}
|
||||
|
||||
/// `meta/` — the meta flake working tree (inputs, `flake.lock`, `.git`).
|
||||
/// `applied/.<name>.config-rev` — marker recording the config commit
|
||||
/// `internal/meta` pinned when an agent was last successfully built (the
|
||||
/// dashboard's deployed chip). Absent for an archetype agent.
|
||||
#[must_use]
|
||||
pub fn applied_config_marker(name: &str) -> PathBuf {
|
||||
applied_root().join(format!(".{name}.config-rev"))
|
||||
}
|
||||
|
||||
/// `meta/` — plain state beside the hive's other files (`topology.json`,
|
||||
/// the swarm limits, the permission seed files) and, on a hive that predates
|
||||
/// `internal/meta`, a leftover git repo.
|
||||
// nix: bind-mounted read-only into agent containers as `/meta` (the harness nix modules) — must match.
|
||||
#[must_use]
|
||||
pub fn meta_root() -> PathBuf {
|
||||
state_root().join("meta")
|
||||
}
|
||||
|
||||
/// `meta/flake.lock` — the meta flake lock (read for input rev display).
|
||||
#[must_use]
|
||||
pub fn meta_flake_lock() -> PathBuf {
|
||||
meta_root().join("flake.lock")
|
||||
}
|
||||
|
||||
/// `meta/.git/index.lock` — git index lock; checked before meta git ops
|
||||
/// so a stale lock from a crashed process can be cleared.
|
||||
#[must_use]
|
||||
|
|
|
|||
Loading…
Reference in a new issue