Skip to content

[FEATURE]: A running subagent cannot be steered, cancelled, or aborted individually #38966

Description

@iceteaSA

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

Once a subagent is running there is no way to intervene on it specifically. If it goes off-track you either wait for it to finish and discard the result, or interrupt the whole session — which takes down the parent and every sibling with it.

For background dispatches this is the difference between a small correction and losing the work. A subagent that is 80% right and heading the wrong way on the last step has no path back; a runaway one burns tokens until it stops on its own.

The three needs are genuinely different:

  • Correct it and let it continue — it is salvageable, and its progress is worth keeping
  • Stop it, but keep what it has — wrong direction, partial findings still useful
  • Stop it now — runaway, or wedged, and the partial work is not worth waiting for

Suggested behaviour

Per-subagent steer / cancel / abort, from the parent (as tools) and from the human (TUI).

Points worth deciding rather than discovering:

  • Delivery has to land somewhere. A child inside a long tool call cannot react until that call returns, so a graceful stop is turn-boundary-soft and needs a hard fallback that does not wait.
  • The child should never block on an interrupt — reading a pending one at its own boundary avoids introducing a new wait, and a new wait is a new deadlock.
  • Attribution matters in the transcript. "Cancelled by user" and "cancelled by parent" are different events and reading them as the same thing makes debugging an unattended run harder than it needs to be.
  • Reasons are untrusted input — they reach the model and the UI, so they need escaping and a length cap.

Version

v1.18.5

Additional context

PR #32425 implements this behind an experimental flag. Supersedes the intent of #21458, #23534, and #28738, all of which were closed by the inactivity bot rather than resolved.

Activity

  1. github-actions commented on Jul 26, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of or closely related to existing issues. Please check:

    If these don't fully cover the scope here (particularly the three-way steer/cancel/abort distinction and the transcript attribution point), it may be worth linking them rather than closing as duplicate.

  2. changed the title [-]A running subagent cannot be steered, cancelled, or aborted individually[/-] [+][FEATURE]: A running subagent cannot be steered, cancelled, or aborted individually[/+] on Jul 26, 2026
  3. iceteaSA commented on Jul 26, 2026

    @iceteaSA
    Author

    Checked the duplicate flags.

    #32431 (stuck subagents can't be nudged/restarted) is the closest — it asks for nudge/retry within an existing subagent session, which is the "steer" case here. It is a subset rather than the same issue: this also covers cancel-preserving-partial-work and hard abort. Worth noting that a PR implementing the full surface should demonstrate the stuck-session recovery before claiming to close #32431, not assume it follows.

    #27511 (suspend/resume) overlaps on the graceful-stop mode but asks for resumable suspension, which is a different guarantee than cancel — a cancel/abort implementation should not claim it.

    #36424 is about background shell commands lacking a cancellation handle. Different subject; the overlap is the word "cancel". Not a duplicate.

  4. yurii-sio2 commented on Aug 2, 2026

    @yurii-sio2

    Confirm. This is a real problem.
    At least earlier we could stop subagent execution, but now we can't.

  5. yurii-sio2 commented on Aug 26, 2026

    @yurii-sio2

    Please return back the ability to give instructions to a subagent.

    Sometimes a main agent doesn't give instructions with all the details and there is a need to add these to the subagent call.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions