[Bug]: Periodic Claude provider refresh still leaves suspended orphan git.exe processes on Windows
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
This is a follow-up to #8575 after #8634. The remaining issue is that T3 Code does not always clean up the complete Claude probe process tree.
Normal reproduction:
- Enable the Claude provider with
claudeas its binary path. - Leave the provider configuration unchanged and keep T3 Code running.
- Wait for several scheduled provider refresh cycles, approximately five minutes apart.
- After each refresh finishes and the Claude process exits, check Task Manager for a remaining
git.exeprocess.
Faster reproduction:
- Open the Claude provider settings and set the binary path to
claude. - Once the provider status check starts, clear the binary path before the check finishes.
- Set it back to
claudeand repeat the change several times, allowing a new status check to start each time. - After the checks stop and the Claude processes exit, inspect Task Manager for remaining child processes.
Depending on the timing, the faster reproduction may leave git.exe, tasklist.exe, findstr.exe, or conhost.exe processes behind. The issue is intermittent and may require several attempts.
Expected behavior
When a Claude provider probe completes, times out, or is cancelled, T3 Code should terminate the entire process tree created for that probe, including the Claude process and all of its descendants.
Actual behavior
During a normal scheduled provider refresh, a git.exe process started by Claude can remain after the Claude process exits. The observed process had one thread and remained in the Wait:Suspended state indefinitely.
Rapidly switching the Claude binary path between claude and an empty value can reproduce the cleanup failure more quickly. Depending on the timing, git.exe, tasklist.exe, findstr.exe, or conhost.exe processes may remain after the Claude process exits.
Impact
Major degradation or frequent failure
Version or commit
0.0.38-nightly.20260901.1242
Environment
Windows 11 x64, Claude Code 2.1.252, Git for Windows 2.55.0.windows.3
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
No response
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
Start in apps/server by tracing the Claude provider status refresh and its process cleanup for normal, timeout, and cancellation paths. Reproduce the scheduled refresh and rapid binary-path changes on Windows, then verify that the Claude process and descendants such as git.exe, tasklist.exe, findstr.exe, and conhost.exe no longer remain.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, typescript
- Domain
- backend, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100