Child processes (gh, claude -p) are left running after the app exits
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Version: 0.0.42 (t3code-bin on Arch / Omarchy), Linux, Wayland.
After closing T3 Code, subprocesses it spawned keep running, reparented to systemd --user.
I found ten of them on my machine: gh pr list --head ... --json ..., gh pr view <n> --repo ... --json ..., and claude -p --output-format json --json-schema {...} --model claude-haiku-4-5 ... (the title generation call). Some were two days old. They were still inside the app's app-com.t3tools.T3Code-<pid>.scope cgroup while the main T3 Code process was long gone, and the cgroup only got released once I killed them by hand:
app-com.t3tools.T3Code-3219097.scope: Consumed 4d 21h 57min CPU time over 1d 4h 26min wall clock time
app-com.t3tools.T3Code-2913047.scope: Consumed 21h 38min CPU time over 7h 39min wall clock time
No crash was involved: coredumpctl shows no T3 Code crash in that window, so this was a normal quit.
In my case each child got stuck in a loop caused by a wrapper script in my PATH (not T3 Code's fault), which is why they each burned about 12% of a core for days. But the leak itself happens regardless of that: anything gh or claude blocks on (network, auth prompt, a hung helper) will outlive the app.
Expected: the app kills, or at least signals, its child processes on quit, and/or spawns these helper calls with a timeout.
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
Inspect the process-spawn paths for the gh and claude -p helpers, then reproduce a normal app quit while one is blocked. Done means helper processes no longer remain after exit, with coverage for termination or timeout behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, typescript
- Domain
- desktop, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100