github / github/app

No way to fully quit the app on Windows — tray offers only "Close window", which hides it and leaves the process tree running

Open
#3,639 0 comments 0 reactions 0 assignees View on GitHub

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
  1. Use the app normally for a while so several sessions are open.
  2. Note the PID of github.exe:
    $g = Get-Process github | Select-Object -First 1
    "$($g.Id)  started $($g.StartTime)"
    
  3. Right-click the tray icon. The only option is Close window — there is no Quit.
  4. Choose Close window, then reopen the app from the tray/Start menu.
  5. 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
  1. Add Quit to the tray menu, terminating the process tree (not just the root).
  2. On startup, detect and reap orphaned child processes from a previous run.
  3. 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.