github / github/copilot-cli

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

オープン
#4,719 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

area:platform-windows area:tools
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

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.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、Windows 上の組み込み powershell ツールの async detached 処理と read_powershell エントリポイントから始めます。最小限の長時間実行する子プロセスで報告を再現し、その後、detached のステータス、完了通知、最終 receipt を比較します。ステータスと通知がコマンドの子孫プロセスおよび実際の最終出力を待機するか、それらを未追跡として明示的に識別できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
powershell
領域
cli, operating-systems
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。