pingdotgg / pingdotgg/t3code

[Bug]: Periodic Claude provider refresh still leaves suspended orphan git.exe processes on Windows

Open
#9,002 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage
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:

  1. Enable the Claude provider with claude as its binary path.
  2. Leave the provider configuration unchanged and keep T3 Code running.
  3. Wait for several scheduled provider refresh cycles, approximately five minutes apart.
  4. After each refresh finishes and the Claude process exits, check Task Manager for a remaining git.exe process.

Faster reproduction:

  1. Open the Claude provider settings and set the binary path to claude.
  2. Once the provider status check starts, clear the binary path before the check finishes.
  3. Set it back to claude and repeat the change several times, allowing a new status check to start each time.
  4. 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

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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.