The new stop control has a narrow job
VS Code 1.142 adds a stop action to the background-shell list for Copilot harness sessions. The release notes define the boundary: the action stops one attached shell that the agent started for its current request. The shell then leaves the list. Detached shells run independently and cannot be stopped from that interface.[1]
That narrow scope is good interface design. A stop control should name the thing it can stop. It should not imply that the session, host, or every process beneath them has ended.
A visible process is not the same as an owned process.
The window no longer owns every turn
The Agent Host is a dedicated process that owns supported agent sessions. VS Code documents that an active turn can continue after its project window closes while the Agent Host remains running. On a local desktop, the application must remain running. On a remote machine, both the machine and the process serving the session must remain running.[2]
The Local harness follows another rule. Its editor window owns the session, so closing that window stops ongoing work. Two sessions can look similar while their stop boundaries differ.
Client tools add another dependency. A host-owned session can survive a disconnected window, but browser tools and extension tools supplied by that client remain available only while the client stays connected. Session survival does not preserve every capability.
Sandboxing does not settle ownership
VS Code applies its agent sandbox to supported terminal commands and their child processes. The documentation also says that the sandbox is not a virtual machine or user-account boundary. It restricts file and network access. It does not tell you which interface owns a process or which stop action reaches it.[3]
Keep four records for long-running work: the process identifier, its owner, its execution host, and the action that stops it. Record detached work separately. If the interface cannot stop that work, show the command or system control that can.
Use stop verbs that match the mechanism
Use "close" for a view, "stop shell" for one attached command, "stop session" for the active work unit, and "stop host" for the process that owns host-backed sessions. Do not use "cancel" as a universal label.
The release also exposes the difference between hiding and deleting. VS Code session docs say that closing a chat tab hides it without deleting it, while deletion is permanent.[4] Interface copy should name whether an action changes visibility, work, or stored history.