pub async fn advance_execution_workflow<D: ExecutionWorkflowStageDriver>(
layout: &BackupLayoutGuard,
expected_workflow: &ArtifactChecksumRecord,
retained: &BTreeMap<u64, RetainedStageEvidence>,
stage_limit: NonZeroUsize,
driver: &mut D,
) -> Result<ExecutionWorkflowAdvance, ExecutionWorkflowRunError<D::Error>>Expand description
Advance at most stage_limit absent stages of one prepared original workflow.
Prepare once with create_execution_workflow, retaining the original declarations
before effects. Every call uses the same complete occupied-stage evidence admission
as run_retained_execution_workflow. A pause happens only between settled stages,
never halfway through a transfer. The limit bounds stage callbacks, not each stage’s
original finite effect allowance or elapsed time. All admission, custody, durable
reply retention and effect-specific qualification remain mandatory driver duties.
Pending observations/mutations, partial preparation or changed originals refuse
before any callback; the bound cannot reset them or supply resend permission.
A failed/cancelled callback retains original uncertainty. Inspect it through
read_execution_workflow_progress and reconcile through the original owners.
Complete replay invokes no driver callbacks, regardless of the selected limit.
§Errors
Retains the existing typed preparation, checkpoint, original-evidence and driver failures.