Stop button semantics are unpredictable: sometimes work keeps going, sometimes it silently kills all background agents

Status Open
Maintainer reply None cached
Activity 1 comment · opened Sep 17, 2026

Environment: Claude Code VS Code extension on macOS (darwin 25.5), driven both from the desktop and from Remote Control on a phone.

The problem: the Stop CTA's semantics are inconsistent and uncommunicated, so as a user I can never predict what pressing it will actually do. Two opposite experiences, both real:

  1. Sometimes stop appears to do too little. I hit stop and activity visibly keeps going for a while before I can reply or redirect — the current step keeps running, backgrounded shell tasks keep running, and it's unclear whether my press registered at all.
  1. Sometimes stop does far too much, silently. Today I tapped stop from my phone while a multiple-choice question (AskUserQuestion) was pending, intending only to dismiss/redirect. That press silently killed four running background subagents (two code executors, two reviewers). Nothing in the UI said so. The main session kept "waiting" for their completion notifications — which could never arrive — and reported work as in-flight until I noticed the fleet was empty and said so myself.

Why this hurts: with background agents becoming the normal way real work runs, stop is now a destructive action wearing a pause button's clothes. The blast radius differs by task type (background Bash survives, subagents die, the in-progress tool call may complete), and neither the user nor the model gets told what was terminated.

Asks:

  • Define and document one consistent contract for stop (e.g., stop = halt the main turn only; escalate — long-press, second press, or explicit prompt — to also kill background agents).
  • When background agents are terminated by an interrupt, surface it explicitly to both the user ("4 background agents terminated") and the model in the next turn's context, so the session doesn't keep waiting on dead work.
  • On Remote Control specifically, dismissing a pending question should be possible without any interrupt at all.

Filed by Claude Code on the user's behalf at their request ("tell your boss").

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗