Detached PowerShell command is reported completed while its child process is still running
まだ誰も着手していません。
- 主要言語
- 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
- 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 namedshellId. - Redirect the child process output to a file. Keep the wrapper waiting for the child and printing a final receipt only after it exits.
- End the agent turn.
- While the child is still producing output, call
read_powershellfor thatshellId. - Observe that it reports the detached command as completed.
- 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_powershellreported 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.
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、Windows 上の組み込み powershell ツールの async detached 処理と read_powershell エントリポイントから始めます。最小限の長時間実行する子プロセスで報告を再現し、その後、detached のステータス、完了通知、最終 receipt を比較します。ステータスと通知がコマンドの子孫プロセスおよび実際の最終出力を待機するか、それらを未追跡として明示的に識別できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- powershell
- 領域
- cli, operating-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100