Runtime / closure and recovery

In development

Recovery is a declared runtime path

Millrace keeps retries, waits, interventions, refusals, cancellations, and closure explicit so an operator can understand what happens next.

Page state reviewed 2026-08-15. The page does not expand the release evidence.

A blocked result is not a missing state

A workflow can declare different consequences for different blocked conditions: retry, recovery stage, lineage pause, quarantine, or a durable operator wait. The runtime records the result and exposes the selected options instead of hiding the decision in an agent transcript.

The runtime guide describes this as workflow data. There is no universal recovery ladder that applies to every graph.

Operator waits and intervention

The operator can inspect waits and interventions through the CLI and submit an option selected by the workflow. That decision is recorded and applied through the same transition boundary as an agent result. The operator action does not bypass the compiled plan.

Closure has prerequisites

Completion is a legal selected action applied to current durable state. Queue closure can be refused when work is claimed, a runner session is live or lost, or cleanup remains unresolved. A refusal preserves the state that needs inspection; it does not silently delete the work or claim that the target is complete.

Read the getting-started operator section for the documented inspection and intervention surfaces.