Skip to content

TPI) Agent host Copilot CLI async shell #319093

@anthonykim1

Description

@anthonykim1

Refs: #318511, #318505

  • macOS
  • linux
  • windows

Complexity: 3


Verify that Agent Host Copilot CLI surfaces async shell/background completions as a follow-up turn when the custom terminal tool is disabled.

Prerequisites:

  • Use the latest VS Code Insiders
  • Sign in to GitHub Copilot
  • Enable chat.agentHost.enabled
  • Set chat.agentHost.customTerminalTool.enabled to false (so the SDK native shell tool is used)
  • Install and authenticate Copilot CLI

Part 1: Background shell completion while idle

  • Start an Agent Host Copilot CLI chat
  • Ask Copilot to run a long-running command in the background (for example a build, a sleep-based task, or a script that finishes after some delay), then let the turn finish so the session is idle
  • When the background shell completes, confirm a new system-initiated follow-up turn appears automatically
  • Confirm the follow-up shows a compact system-initiated label rather than a fabricated user message

Part 2: Completion arriving during an active turn

  • Kick off a background/detached shell, then keep Copilot busy with another request so a turn is active when the background work finishes
  • Confirm the completion is shown inline within the active turn (no extra duplicate turn is spawned)

Part 3: Chained async shells

  • Use a single prompt that drives two sequential async shells across turns, for example:
    Do what I say.
    Step 1: Run "sleep 6 && echo SHELL_A_DONE" as an async shell, then end your turn.
    After SHELL_A_DONE notification arrives, in your follow-up turn:
    Step 2: Run "sleep 6 && echo SHELL_B_DONE" as an async shell, then end that turn too.
    
  • Confirm the first async shell launches and the turn ends
  • Confirm the SHELL_A_DONE completion arrives as a system-initiated follow-up turn that then launches the second async shell
  • Confirm the SHELL_B_DONE completion arrives as its own follow-up turn and the marker can be read back

Part 4: Exploratory

  • Try several background/async commands and note any cases where:
    • completion is missed or never surfaces
    • duplicate or stale turns appear
    • the follow-up attaches to the wrong/previous turn
    • the system-initiated label is missing or confusing

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions