github / github/copilot-cli

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

Offen
#4,719 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

area:platform-windows area:tools
Vorherrschende Sprache
Shell
Sterne
11.2k
Forks
1.9k
Ø Merge
14 Std. 16 Min.
Gemergte PRs (30 T.)
6

Beschreibung

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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der asynchronen Detached-Verarbeitung des integrierten powershell-Tools und dem read_powershell-Einstiegspunkt unter Windows. Reproduziere den Bericht mit einem minimalen lang laufenden Kindprozess und vergleiche anschließend den Detached-Status, die Abschlussbenachrichtigungen und den finalen Receipt. Als erledigt gilt die Aufgabe, wenn Status und Benachrichtigungen auf die Befehlsnachkommen und die tatsächlich endgültige Ausgabe warten oder sie ausdrücklich als nicht erfasst kennzeichnen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
powershell
Bereich
cli, operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.