Skip to main content
The canonical stage vocabulary is declared by STAGES in src/lib/types.ts.
awaiting_source_resolution pauses extraction until an operator retries, removes, replaces, or reconnects a failed source and seals a new manifest revision. failed is terminal until an eligible deterministic retry creates the next authorized transition. Only application transactions advance the stage. Agents, SQS messages, logs, and external providers cannot do so directly. See Production flow and State ownership. The evidence packet is assembled and persisted during verification. It is an artifact and audit event, not a job stage.

Operational control state

controlState is independent of status and stage: controlEpoch starts at 0 and increments for every accepted control or steering mutation. Commands must present the current epoch. This prevents a stale browser, steering request, or duplicate operator action from overwriting a newer decision. Pause and cancellation do not rewrite an already-dispatched external effect. Such an effect still requires observation, verification, or uncertain-outcome reconciliation. Each stage outbox generation has a distinct operation and execution identity. A redo can therefore execute a previously completed stage without overwriting or replaying the earlier generation’s durable claim.
Last modified on September 14, 2026