pub enum Status {
Pending,
Running,
Blocked,
Done,
Failed,
Cancelled,
}Expand description
Run/node status (design.md §1.2).
Done, Failed, and Cancelled are terminal: once a run or node
reaches one of them its status must never change again. The reducer
enforces this — apply_run_status, apply_node_status, and
apply_node_report are all no-ops once Status::is_terminal holds — so
a late-arriving event (e.g. an agent success report racing a run cancel)
cannot resurrect a settled state. Only the status field is frozen;
other projection fields may still be mutated by non-status events.
Variants§
Pending
Created but not yet started.
Running
Actively executing.
Blocked
Stalled awaiting input (e.g. an open discussion).
Done
Completed successfully (terminal).
Failed
Completed with failure (terminal).
Cancelled
Terminated before completion by an operator or parent (terminal).
Implementations§
Source§impl Status
impl Status
Sourcepub fn is_terminal(self) -> bool
pub fn is_terminal(self) -> bool
True for the terminal states Done | Failed | Cancelled. A run or
node in a terminal state is settled: the reducer treats any further
status transition as a no-op. “Settled” applies to status only —
non-status projection fields (e.g. Node::children via
child.spawned, or manifest counters) can still change.