Preview a rerun/retry of a step: the resolved scope, and whether expired Workspace Snapshots widened it (ADR-0061 s5).
const url = 'https://example.com/v1/runs/example/steps/example/rerun-plan';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/v1/runs/example/steps/example/rerun-planParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Run id
Step id
Responses
Section titled “Responses”GET …/steps/{step}/rerun-plan body: what a rerun/retry of this step would
actually execute — before the user confirms it (ADR-0061 s5, and
ADR-0027’s rule that smart never means mysterious).
A read-only dry run. The interesting case is a widened one: a Run reopened
after its Workspace Snapshots expired cannot rerun just the step you pointed
at, because the inputs that step consumes no longer exist — so the scope
expands upstream to regenerate them, in the limit back to clone. That is a
bigger action than the button implies, so it has to be visible first.
object
Each expired input that caused the widening: the consuming step, the step that produced the missing snapshot, and its CAS root.
One expired Workspace Snapshot behind a widened rerun (ADR-0061 s5).
object
The step whose input workspace is incomplete.
The upstream step that produced the missing snapshot.
The CAS merkle root the store no longer holds.
Every step that would re-execute, sorted — the invalidation set after any widening.
The steps the rerun effectively starts from (no dependency inside the
set). [target] on an ordinary rerun; on a widened one this is the phrase
the affordance says out loud — “this re-runs from clone”.
The same set as invalidated, execution-ordered and carrying each
member’s WHY (git-bug 4afaa3e) — computed by the engine, identically for
this preview and for the plan a POST rerun/retry executes and returns.
One member of a rerun plan, with its WHY (git-bug 4afaa3e).
object
The in-set step this one is here because of: the cascade parent
(minimum in-set need by id, deterministic) or, for regenerate, the
consumer whose expired input dragged it in. Absent only on the target.
A gate (ADR-0008): the rerun pauses for approval here — the plan never claims a gate will run.
Why it is in the set.
The step that re-runs (a gate re-arms and pauses instead of running).
The step the plan is for.
The subset of invalidated present only because a Workspace Snapshot
expired: upstream steps dragged in to regenerate data. Empty on an
ordinary rerun.
Example
{ "steps": [ { "reason": "target" } ]}No such run or step