pub struct NodeCancelOutcome {
pub node_id: NodeId,
pub cancelled: bool,
pub already_terminal: bool,
pub rolled_up: Option<Status>,
}Expand description
Outcome of a cancel_node transaction — a single-node, branch-preserving
cancel for one live fan-out child.
Per-node cancel deliberately leaves the run non-terminal while any sibling is
still live (design §2.5 — a stuck child is unblocked without killing the
batch). But when this cancel settles the last live node, the run is rolled
up in the same locked transaction (rolled_up) rather
than deferred to the supervisor — so a run whose supervisor has died is never
stranded non-terminal (llm-review C1).
Fields§
§node_id: NodeIdThe node this call targeted (fully resolved).
cancelled: boolTrue when this call ensured the node carries a terminal cancel in the
source-of-truth log — either by synthesizing and durably appending a fresh
cancel node.report, or by re-folding a prior interrupted cancel’s
already-logged event (crash convergence, no duplicate append). False when
the node was already terminal on entry (see already_terminal).
already_terminal: boolTrue when the node was already terminal on entry (merged, failed, or a
prior cancel already folded) — a clean idempotent no-op, never a fresh
cancel. Mutually exclusive with cancelled.
rolled_up: Option<Status>Some(status) when this cancel settled the last live node and therefore
rolled the whole run up to a terminal status under the same lock
(Cancelled when no sibling failed, Failed when one did). None when
siblings remain live (the run stays live) or the run was already terminal
on entry. Lets the CLI tell the operator whether the run itself is now
settled rather than implying a rollup that might never come.
Trait Implementations§
Source§impl Clone for NodeCancelOutcome
impl Clone for NodeCancelOutcome
Source§fn clone(&self) -> NodeCancelOutcome
fn clone(&self) -> NodeCancelOutcome
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more