No way to fully quit the app on Windows — tray offers only "Close window", which hides it and leaves the process tree running
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 157
- PR merge metrics
- No merged PRs in 30d
Description
App version
1.1.15 (Windows)
OS
Windows 11 Enterprise 10.0.26100 (build 26100), AMD64
Steps to reproduce
- Use the app normally for a while so several sessions are open.
- Note the PID of
github.exe:$g = Get-Process github | Select-Object -First 1 "$($g.Id) started $($g.StartTime)" - Right-click the tray icon. The only option is Close window — there is no Quit.
- Choose Close window, then reopen the app from the tray/Start menu.
- Check the PID again.
Expected behavior
Either the tray exposes a Quit that shuts the app down and terminates its
child processes, or the docs make clear that closing only hides the window and
state the supported way to fully exit.
Actual behavior
The PID is unchanged — the window was only hidden. In my case github.exe
stayed alive for 19.3 hours across several close/reopen cycles, with
90+ descendant processes still running (agent wrapper processes, Copilot
CLI processes, MCP servers, node, and headless Chrome from a Playwright MCP
server).
There appears to be no supported way to fully quit the app:
| Action | github.exe |
Child processes |
|---|---|---|
| Tray → Close window | survives | survive |
| End task in Task Manager | killed | orphaned, keep running |
The Task Manager path is the damaging one. Ending github.exe terminates only
the root process, so its children are orphaned rather than terminated. Each
subsequent launch starts a fresh set on top of the strays. After a few
hang → kill → relaunch cycles I had ~23 app-related processes consuming
4.3 GB, and free RAM fell from 12 GB to 7 GB.
Why this matters
When the UI becomes unresponsive, Task Manager is the only tool most users
will reach for — and it is precisely the action that compounds the problem.
There is no user-visible way to do the right thing.
Suggested fix
- Add Quit to the tray menu, terminating the process tree (not just the root).
- On startup, detect and reap orphaned child processes from a previous run.
- If closing the window is intended to only hide it, say so in the tray menu
(e.g. "Hide window") so the behavior is not silently surprising.
Workaround
Killing the whole tree by PID, from a PowerShell window outside the app:
taskkill /F /T /PID (Get-Process github).Id
Start-Sleep 5
Start-Process "$env:LOCALAPPDATA\Programs\GitHub Copilot\github.exe"
/T is the important part — it terminates descendants too, which is what
Task Manager's "End task" does not do.
Note on worktrees
Sessions use isolated git worktrees. Because a force-kill bypasses the app's
own session-archive path, worktrees and their git metadata can be left behind.
A Quit that shuts down cleanly would also let this cleanup run.
Logs
Happy to attach /collect-debug-logs output if useful.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No implementation files or tests are named. Start by reproducing the tray Close window behavior and tracing how the app shuts down sessions and child processes on Windows. Done means the tray provides a supported full-exit path that terminates descendants and allows session and worktree cleanup to complete.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, powershell
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100