pub struct RunGraphOutcome {
pub outcomes: BTreeMap<TaskId, RunOutcome>,
pub task_errors: BTreeMap<TaskId, RunTaskError>,
pub invariant_violations: Vec<RuntimeInvariantViolation>,
}Expand description
Outcome of a single run_graph invocation.
outcomes carries one entry per task that reached a terminal
state through the lookup-then-spawn pipeline; each entry is a
RunOutcome::Completed wrapping the underlying
CompletedRecord. Tasks for which the pipeline returned
Err are absent from outcomes and present in task_errors.
Tasks the cascade skipped per EXEC-010 are absent from both
maps in this revision; a follow-up commit lands the formal
RunOutcome::Skipped entries.
invariant_violations carries run-level diagnostics for
EXEC-019 (runtime cycle) and EXEC-020 (output overlap).
The Vec is empty on a clean run; a non-empty Vec means the
scheduler detected a workspace-level invariant violation
during the run. Partial per-task outcomes are preserved
alongside; crate::exit_code::exit_code_for consults both
maps and the violation Vec to classify the run for
EXEC-021.
Fields§
§outcomes: BTreeMap<TaskId, RunOutcome>Per-task outcome in canonical (ProjectName, TaskName)
order.
task_errors: BTreeMap<TaskId, RunTaskError>Per-task error captured when the lookup-then-spawn
pipeline returned Err (failed cache lookup, spawn error,
stream-read error, store error, etc.). The cascade treats
an Err task the same way as an Ok(Failed) task: hard
descendants are marked skip; unrelated subgraphs continue.
invariant_violations: Vec<RuntimeInvariantViolation>Run-level diagnostics for runtime DAG invariants
(EXEC-019 cycle, EXEC-020 output overlap). Order is
detection order: the scheduler appends one entry per
detected violation as it discovers them.