feat(#2485): remove vestigial Noop + StartupSweep residuals
Since the boot sweep (#2450) and meta-update cascade (#2476) became single DAGs that grow subgraphs in-place, nothing constructs the old fan-out anchors/parents anymore: - NodeKind::Noop (the old boot_root grouping anchor) — no constructors. - Template::StartupSweep / Source::StartupSweep (the old fan-out parent template + cascade-child source) — replaced by Template::Boot and Source::AutoUpdate/MetaUpdate respectively. Drops the three variants + their as_str arms + the Noop executor arm, and refreshes the stale fan-out/anchor doc comments (Boot/MetaUpdate/Source docs, coordinator.md, dashboard.md). Frontend: the queue-kind glyph moves from the dead startup_sweep to boot (which had none), and the dead rqe-source-startup_sweep style is dropped. No behaviour change — pure dead-variant removal.
This commit is contained in:
parent
a73216e8be
commit
fbbd5d921c
9 changed files with 27 additions and 45 deletions
|
|
@ -98,9 +98,6 @@ pub(super) async fn run_node(coord: &Arc<Coordinator>, claim: &Claim) -> Result<
|
|||
NodeKind::WriteDropin => run_write_dropin(coord, claim).await,
|
||||
NodeKind::WritePermFile => run_write_perm_file(coord, claim, &ctx).await,
|
||||
NodeKind::ApprovalDeploy => run_approval_deploy(coord, claim).await,
|
||||
// A pure grouping anchor (boot root): no work, completes immediately so
|
||||
// its child DAGs settle it and the boot tree resolves.
|
||||
NodeKind::Noop => Ok(NodeOutput::default()),
|
||||
NodeKind::SetWanted { up } => run_set_wanted(coord, claim, *up),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,11 +115,6 @@ pub enum NodeKind {
|
|||
/// deploy stays inside `actions.rs` in v1 — deliberately not
|
||||
/// modeled as scheduler nodes (see the design doc §9).
|
||||
ApprovalDeploy,
|
||||
/// No-op anchor that completes immediately with no work. Vestigial since
|
||||
/// the boot sweep became one in-DAG graph (no `boot_root` anchor / child
|
||||
/// DAGs) — slated for removal with the other `StartupSweep` residuals.
|
||||
/// Holds no lease and no build slot.
|
||||
Noop,
|
||||
/// Write the agent's durable power intent (`wanted = Up` when `up`, else
|
||||
/// `Offline`) as a first-class DAG node, at the head of a power-op
|
||||
/// template so the downstream `Reconcile` reads it. Replaces the old
|
||||
|
|
@ -154,7 +149,6 @@ impl NodeKind {
|
|||
NodeKind::WriteDropin => "write_dropin",
|
||||
NodeKind::WritePermFile => "write_perm_file",
|
||||
NodeKind::ApprovalDeploy => "approval_deploy",
|
||||
NodeKind::Noop => "noop",
|
||||
NodeKind::SetWanted { .. } => "set_wanted",
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -210,11 +210,10 @@ pub fn meta_update(
|
|||
}
|
||||
}
|
||||
|
||||
// The boot is now assembled inline in `workers/auto_update.rs::submit_boot_tree`
|
||||
// as ONE DAG (a sweep `MetaLock` root that grows rebuild subgraphs in-DAG, plus
|
||||
// a `Reconcile` root per drifted agent) — no `boot_root` Noop anchor, no
|
||||
// `startup_sweep` parent template, no per-agent child DAGs. The old single-use
|
||||
// `boot_root` / `startup_sweep` builders were inlined there and removed.
|
||||
// The boot is assembled inline in `workers/auto_update.rs::submit_boot_tree`
|
||||
// as ONE `Boot` DAG (a sweep `MetaLock` root that grows rebuild subgraphs
|
||||
// in-DAG, plus a `Reconcile` root per drifted agent) — no anchor node and no
|
||||
// per-agent child DAGs.
|
||||
|
||||
/// Validate a spec before it enters the queue: node ids are dense
|
||||
/// (index = id), deps reference existing nodes, and the dep graph is
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
//! Boot reconcile: on `hive-c0re serve` boot, (a) run the config path
|
||||
//! for agents whose per-agent rev marker is stale — a `StartupSweep`
|
||||
//! DAG (meta hyperhive lock bump) fanning out `Rebuild` children for
|
||||
//! the stale agents whose `wanted` power intent is `Up` — and (b)
|
||||
//! for agents whose per-agent rev marker is stale — one `Boot` DAG
|
||||
//! (meta hyperhive lock bump) that grows a `Rebuild` subgraph for each
|
||||
//! stale agent whose `wanted` power intent is `Up` — and (b)
|
||||
//! converge every other drifted agent to its persisted `wanted` via
|
||||
//! `Reconcile` DAGs. Two rules keep boot-time nix work minimal:
|
||||
//!
|
||||
|
|
@ -194,10 +194,10 @@ pub fn topology_sort(
|
|||
}
|
||||
|
||||
/// Boot reconcile (see the module doc): classify every agent by rev
|
||||
/// freshness + persisted `wanted` intent, submit one `StartupSweep`
|
||||
/// DAG (hyperhive lock bump → fan-out rebuilds for stale wanted-up
|
||||
/// agents) when anything is stale, and `Reconcile` DAGs for agents
|
||||
/// whose observed power state drifted from `wanted`. Returns Ok even
|
||||
/// freshness + persisted `wanted` intent, submit one `Boot` DAG
|
||||
/// (hyperhive lock bump growing an in-DAG rebuild subgraph per stale
|
||||
/// wanted-up agent) when anything is stale, and `Reconcile` DAGs for
|
||||
/// agents whose observed power state drifted from `wanted`. Returns Ok even
|
||||
/// if some submissions failed.
|
||||
pub async fn run(coord: Arc<Coordinator>) -> Result<()> {
|
||||
let containers = match lifecycle::list().await {
|
||||
|
|
@ -287,8 +287,8 @@ pub async fn run(coord: Arc<Coordinator>) -> Result<()> {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
/// Submit this boot's work as **one DAG** (no `boot_root` Noop anchor, no
|
||||
/// per-agent child DAGs). Node 0 is the sweep `MetaLock` (only when
|
||||
/// Submit this boot's work as **one DAG** (no anchor node, no per-agent
|
||||
/// child DAGs). Node 0 is the sweep `MetaLock` (only when
|
||||
/// something is stale) — its executor bumps the hyperhive lock, then grows
|
||||
/// one rebuild subgraph per stale agent into *this same* DAG (rooted on the
|
||||
/// `MetaLock`, so they build against the post-bump lock; see
|
||||
|
|
|
|||
Loading…
Reference in a new issue