From fcca929fde167b1916e31b87a7c4b97631612722 Mon Sep 17 00:00:00 2001 From: atlas Date: Thu, 16 Jul 2026 14:44:56 +0200 Subject: [PATCH] docs: refresh coordinator.md for the current one-DAG model The #2439 agent-per-node chain removed submit-time dedup, DAG parent_id, and child-DAG fan-out (everything grows in-DAG via append_subgraph). Update three stale spots in docs/coordinator.md: the DAG is no longer a dedup unit; in-DAG-appended nodes (not fan-out child DAGs) surface under the same polled DAG id; and there is no cancel_children / parent-child cascade anymore. --- docs/coordinator.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/coordinator.md b/docs/coordinator.md index 23762e3e..03b64e04 100644 --- a/docs/coordinator.md +++ b/docs/coordinator.md @@ -18,7 +18,7 @@ fast-lane follow-up, the meta-update cascade pre-enqueue — are all just DAG ### Two levels: DAG and node -The **DAG** is the unit of dedup / cancel / approval-resolution and the +The **DAG** is the unit of cancel / approval-resolution and the dashboard group; the **node** is the unit of scheduling / execution / build-log / step label. Deps are intra-DAG edges only (`AfterOk` by default: the dep must succeed, a failed/cancelled dep cancels the dependent — @@ -154,8 +154,9 @@ The admin-socket responses carry the submitted DAG ids; `hivectl` polls `HostRequest::QueueDag` (~1s) and prints a progress line per DAG — roll-up glyph, template, agent, node chain with the running node's step label — so CLI verbs block until their jobs finish (`--no-wait` opts out; failures exit -non-zero). Fan-out children joining a polled parent show up in the same -loop. +non-zero). Nodes appended in-DAG (a `MetaLock` growing per-agent rebuild +subgraphs, a `Reconcile` fanning its `Start`/`Stop`) join the same DAG, so +they surface under that DAG's id in the same loop — no separate child DAGs. ### Scheduler semantics @@ -194,7 +195,7 @@ has no single agent to key a dedup on), so every submit enqueues a fresh DAG; whether any dedup needs reintroducing is tracked as a follow-up. Cancel only applies to still-fully-queued DAGs (an in-flight nix build isn't -interruptible); `cancel_children` cancels a parent's still-queued child DAGs. +interruptible) — each op is one DAG now, so there are no child DAGs to cascade to. Roll-up state: `Failed` if any node failed, else `Running` / `Queued` / `Cancelled` / `Done`. The snapshot retains the 5 most recent terminal DAGs per template.