Rerun, requeue, resume or steer
Resume, restart, requeue, steer, take over, stop, and dismiss do different jobs.
Resume, restart, requeue, steer, take over, stop, and dismiss do different jobs. Use the row that matches the situation.
| Situation | Action | Command |
|---|---|---|
| The run is still going and needs a hint | Steer with a note | kusaw note <run> "..." |
| The run failed and the task needs another try | Requeue, optionally with a note | kusaw requeue <run> --note "..." |
| A step failed for a passing reason (a flaky test) | Resume or restart | kusaw resume <run> --failed-only or kusaw restart <run> |
| You want to finish it by hand | Take over | MCP kusaw_take_over tool (no CLI command) |
| You don't want it any more | Stop or dismiss | kusaw stop <run> or kusaw dismiss <run> |
kusaw serve has to be running to pick up these requests.
| Action | CLI | Dashboard |
|---|---|---|
| Steer a live run | kusaw note <run> "..." | — |
| Requeue | kusaw requeue <run> [--note "..."] | Requeue (note optional) |
| Resume failed repos | kusaw resume <run> --failed-only | Resume failed repos |
| Restart the run | kusaw restart <run> (needs --yes when there is no terminal) | Restart run |
| Take over | MCP kusaw_take_over tool | Shown on the run after take-over; the Dashboard does not offer Take over |
| Stop | kusaw stop <run> | Stop all stops every running run; stop one run from the CLI |
| Dismiss | kusaw dismiss <run> | Dismiss |
| Unpause the queue | kusaw resume | Resume |
Steer a live run
Use this when a run is running or waiting_for_human and you want to add a hint without stopping it.
kusaw note <run> "Keep the public API unchanged."
kusaw note <run> --file note.md # or --file - to read stdinThe note is stored on the run and given to the next step that starts. With steer.live: true and a Claude Code that accepts streaming input, it is also sent into the step that is running now. Notes that no step received yet are prefilled into a later requeue. A note is at most 4,000 characters, and a run takes at most 20 notes. kusaw runs show <run> lists them and how each was delivered (live, next step, or next iteration).
Requeue
Use this when the run is needs_attention, failed, or stopped, and the task should get another try. The note is optional. Without --note, the CLI reuses any steer notes the run never delivered.
kusaw requeue <run>
kusaw requeue <run> --note "The flaky test is fixed on main; try again."
kusaw requeue <run> --workflow <name> # move the new run to another workflowRequeue starts the next run of that task on a new branch factory/<task>-<seq>. It starts from the run's last checkpoint (after spec-check), or from its base commit when there is no checkpoint. Your note goes first, as try-1 feedback and to every step, followed by the last findings. The new run joins the back of the queue.
Requeue is refused when:
- the run is in any other state, including
rejected. A rejected run is final: add the task again withkusaw add. - the run was partially delivered. Use resume or restart.
- the run's branch no longer exists.
- the task already has an unfinished run.
On the Dashboard, Requeue shows where the new run starts, the findings it carries, and the equivalent kusaw requeue command. When the old run is needs_attention, it is dismissed automatically and its branch is kept.
Resume or restart
Use this when a step failed for a passing reason (a flaky test) and the task itself is fine.
kusaw resume <run> --failed-onlyreruns the failed repositories in the worktrees that were kept. The run id, branch, and change-set id stay the same. Dashboard: Resume failed repos.kusaw restart <run>reruns every repository from its base commits. Without a terminal it exits 2 and asks for--yes. Dashboard: Restart run. Earlier commits are kept atrefs/kusaw/backup/<run>/<n>.
kusaw resume with no run id still unpauses the queue. That is not a rerun.
Take over
Use this when you want to finish the work by hand. Take over stops a queued, running, or waiting run and keeps its worktrees. There is no take-over CLI command; use the kusaw_take_over tool of kusaw mcp. The Dashboard shows a taken-over run and does not offer Take over.
The run ends stopped with reason taken_over. Continue on the kept branch and worktree, then kusaw dismiss <run> (Dashboard Dismiss) to remove the worktree. The branch stays.
Stop or dismiss
kusaw stop <run>— you don't want this run any more while it is still queued, running, or waiting. Worktrees are removed. Dashboard Stop all is the factory-wide form (kusaw stop --all): every running or finalizing run stops and the queue pauses.kusaw dismiss <run>— the run is alreadyneeds_attentionor taken over. Dismiss removes the worktree and keeps the branch. You can still requeue afterwards.
If it goes wrong
Run "<run>" can't be requeued from <status>. Use a run in needs_attention, failed or stopped, or one rejected because something was missing or couldn't be run on this computer.— requeue only from those states. A run rejected because a tool was missing or a permission was denied can be requeued once you fix that.Run "<run>" was rejected (<reason>) and can't be requeued. Add its saved spec again: kusaw add <spec_path> --factory <factory>— a retry won't fix this reason (for example unclear_spec). Run the printedkusaw addcommand.Run "<run>" was partially delivered. Use resume --failed-only or restart instead.— see Resume or restart.Branch "<branch>" for run "<run>" no longer exists.— the branch was deleted, so there is nothing to start from. Add the task again withkusaw add.Task "<task>" already has an unfinished run "<run>".— finish, stop, or dismiss that run first.- Resume with a run id needs
--failed-only.kusaw resumewith no run id only unpauses the queue. - Restart needs confirmation — pass
--yes, or confirm Restart run on the Dashboard. Run "<run>" is not in needs_attention or taken over (<status>).— dismiss is for those runs only. Stop a live run withkusaw stop <run>.- The run stays
queued— the queue is Paused.kusaw resumewith no run id, or Resume. Run <run> is <status>, so it can't take a note. Use kusaw requeue <run> --note "..." instead.—kusaw noteonly works while the run isrunningorwaiting_for_human.Live steering is on, but this Claude Code doesn't accept streaming input; notes will wait for the next step.— the note is kept and given to the next step.