Skip to content

fix(desktop): resolve claude executable on windows - #4896

Closed
shubhu121 wants to merge 3 commits into
pingdotgg:mainfrom
shubhu121:fix-desktop-claude-path
Closed

fix(desktop): resolve claude executable on windows#4896
shubhu121 wants to merge 3 commits into
pingdotgg:mainfrom
shubhu121:fix-desktop-claude-path

Conversation

@shubhu121

@shubhu121 shubhu121 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Fixes #4846

On Windows, T3 Code would report Claude as missing if it was installed in the user's persistent PATH but the process inherited a stale PATH.

This fixes the desktop environment resolver to explicitly read and merge the Machine, User, and Process environment variables for PATH on Windows, and adds %USERPROFILE%\.local\bin to the known CLI directories fallback.


Note

Low Risk
Windows-only desktop startup PATH probing; improves CLI discovery without touching auth, data, or network paths.

Overview
Fixes false “Claude not found” on Windows when Claude lives on the User or Machine PATH but the Electron process inherited a stale Process PATH.

captureWindowsEnvironmentCommand now treats PATH specially: the PowerShell probe reads Machine, User, and Process values via [Environment]::GetEnvironmentVariable, concatenates non-empty segments, and emits that merged string between the existing markers. Other env vars still use the single-scope lookup unchanged.

Reviewed by Cursor Bugbot for commit 0c5a2c9. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Fix Claude executable resolution on Windows by merging Machine, User, and Process PATH scopes

The captureWindowsEnvironmentCommand util in DesktopShellEnvironment.ts previously captured only the process-scoped PATH, which could miss entries added by installers to the Machine or User scopes. PATH is now resolved by fetching all three scopes separately, filtering out null/empty entries, and joining them with ;. Behavioral Change: the captured PATH value will now be broader than the process-scoped value alone, which may surface executables not previously visible.

Macroscope summarized 0c5a2c9.

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 351b850b-2a78-4b0a-bcfd-db906dc7fe21

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Jul 30, 2026
Comment thread apps/desktop/src/shell/DesktopShellEnvironment.ts
@macroscopeapp

macroscopeapp Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved 0c5a2c9

Straightforward Windows bug fix that merges PATH environment variable sources (Machine, User, Process) to ensure executables are properly resolved. Small, self-contained change using existing patterns.

You can customize Macroscope's approvability policy. Learn more.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 037dc74. Configure here.

Comment thread apps/desktop/src/shell/DesktopShellEnvironment.ts Outdated
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 30, 2026
@juliusmarminge
juliusmarminge enabled auto-merge (squash) July 30, 2026 22:18

@CDVolvik CDVolvik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows check against today's main (6ae9662d8).

Half of this PR is already on main. knownWindowsCliDirs already includes %USERPROFILE%\.local\bin (and this box has that directory). The remaining unique change is the PATH capture: Machine + User + Process, joined.

That join is the better shape for the desktop profile probe. [Environment]::GetEnvironmentVariable('PATH') with no target is Process scope, so after loadProfile: true it still sees fnm/profile prepends. #6356 reads only Machine+User for both probes, so profile.PATH and noProfile.PATH become the same registry string. If these two land independently, keep this merge and drop #6356's PATH rewrite (the Codex dir addition in #6356 can stay).

This PR only edits DesktopShellEnvironment.ts. packages/shared/src/shell.ts buildWindowsEnvironmentCaptureCommand — the path fixPath() uses on the server — is unchanged, so a refresh after install still misses User-PATH writes on the shared side.

CONFLICTING against current main; needs a rebase before the merge is real. No tests in the diff, so I did not get a revert-fail.

@juliusmarminge
juliusmarminge force-pushed the fix-desktop-claude-path branch from 21f01c1 to 0c5a2c9 Compare August 15, 2026 10:57
@macroscopeapp
macroscopeapp Bot dismissed their stale review August 15, 2026 10:57

Dismissing prior approval to re-evaluate 0c5a2c9

@juliusmarminge

Copy link
Copy Markdown
Member

Closing as superseded by #5074, which has merged and covers this change on the current architecture. Thanks for the contribution.

auto-merge was automatically disabled August 15, 2026 11:31

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Windows desktop resolver ignores User PATH, so Claude in %USERPROFILE%\.local\bin is not found

3 participants