Rename "Abandon run" to "Stop run", and let a stopped run be resumed #51
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Redo on a step of an abandoned run looks like it works and does nothing. On soundcheck#32's run (
run_01M3F8PTF3EWBCB721BP869E9N, minimalist) I abandoned it duringopenspec.apply[4], then wanted to redo that step with a larger context per agent.POST /api/steps/{id}/redoaccepts it:step_redonever checks the run's status.ready.running/blocked(scheduler.py~L841). Abandoning also cancelled every downstream step and stopped the run'sopencode serve.The step sits at
readyforever, and the run cannot be continued. Starting a new run from the issue throws away everything that already succeeded.Proposal
stopped), with existingabandonedruns read as stopped.runningand itsopencode serveis restarted;pending, and the step that was stopped mid-attempt gets a fresh attempt (the stopped one is kept as superseded, as a redo does);succeeded.Open questions
failedrun also resumable, or only stopped ones?Done when
Also in scope: redesign the Redo confirmation
The redo stage (
RedoStageinui/src/components/StepInspector.tsx) needs a redesign, and it belongs here because it shares words with Stop and Resume. What's wrong with it today:What it should be
One screen answering three questions at a glance, in the console's own type:
Then the optional reason and the confirm button. On a stopped run, the button reads "Resume and redo". Explanations go behind ⓘ tips, as elsewhere after #49.
Shipped in #53 (
7c9da17) and archived asopenspec/changes/archive/2026-09-26-stop-and-resume-runs.POST /api/runs/{id}/stop;/abandonkept). Stored status and event names are unchanged, so old runs replay as before.POST /api/runs/{id}/resume) re-opens a stopped or failed run and puts back to pending what the stop ended, plus failed and unreachable steps of a failed run. Each runs as a new attempt from its entry checkpoint; succeeded steps stay. Refused for succeeded, live, archived and reclaimed runs, with a reason.Root cause, for the record: redo already re-opened ended runs, but a stop cancelled every later step and nothing ever un-cancelled them, so the run dead-ended one step after the redo.