github / github/copilot-cli

Detached PowerShell command is reported completed while its child process is still running

Open
#4,719 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:platform-windows area:tools
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

Describe the bug

In a GitHub Copilot app project session on Windows, the built-in powershell tool was started with mode="async" and detach=true. A later read_powershell call reported <detached command with shellId: runtime-tests-detached completed> even though the child process continued writing its receipt for another 6 minutes 51 seconds.

No later completion notification was recorded, and the wrapper's final exit-code/output receipt was never delivered.

Frequency: observed once during a long-running pytest command. I have not yet reproduced it with a minimal sleep-only command.

Extensions: not tested with extensions disabled. No extension initiated the command; it was launched through the built-in PowerShell tool.

Affected version

GitHub Copilot CLI 1.0.80 embedded in GitHub Copilot app 1.1.14

Steps to reproduce the behavior

  1. In a GitHub Copilot app project session on Windows, have the agent launch a long-running child process through the built-in PowerShell tool using mode="async", detach=true, and a named shellId.
  2. Redirect the child process output to a file. Keep the wrapper waiting for the child and printing a final receipt only after it exits.
  3. End the agent turn.
  4. While the child is still producing output, call read_powershell for that shellId.
  5. Observe that it reports the detached command as completed.
  6. Observe that the redirected output file continues changing after the reported completion time.

Observed timeline in this run:

  • 03:51:40Z — detached PowerShell tool launched.
  • 03:51:42Z — tool returned command started in detached background.
  • 04:01:43Z — read_powershell reported the detached command completed.
  • 04:08:34Z — the redirected receipt file was still being written.

Expected behavior

Detached-command status should track the full command process tree. read_powershell and any completion notification should report completion only after all command descendants exit and the real exit code/final output are available.

If detached descendants are intentionally untracked, the tool should report that the command is detached/untracked rather than completed.

Additional context

App version         1.1.14
OS                  Windows 10 Enterprise 25H2 (build 26200.9106)
Architecture        AMD64
WebView2 runtime    152.0.4191.62
Copilot CLI         1.0.80
Agency              2026.9.2.6
GPU 0               Intel(R) Graphics (32.0.101.8132)
GPU 1               NVIDIA GeForce RTX 5090 (32.0.16.1656)

Suggested triage labels: area:tools, area:platform-windows, area:sessions.

The event log contains a launch event and the premature manual completion read, but no intervening completion/system-notification event. The output file's LastWriteTimeUtc proves activity continued after the completion report.

Related but not duplicate: github/app#330 reports premature completion notifications for sub-agents; this report concerns detached shell process-tree tracking.

Workaround: pair detached finite jobs with a recurring same-session automation that checks once per wake and clears itself after a genuine final receipt.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the built-in powershell tool's async detached handling and the read_powershell entry point on Windows. Reproduce the report with a minimal long-running child process, then compare detached status, completion notifications, and the final receipt. Done means status and notifications wait for the command descendants and real final output, or explicitly identify them as untracked.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
cli, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.