Fix WSL PATH contamination causing git command failures on Windows (#2282)
## Summary
- Adds `getWindowsSanitizedEnv()` function that filters WSL-related PATH
entries on Windows
- Creates `execGit()` wrapper that applies sanitized environment to all
dugite exec calls
- Prevents WSL relay from intercepting git commands when WSL is
installed but misconfigured
Fixes #2194
## Test plan
- [ ] Test on Windows machine with WSL installed
- [ ] Verify git commit operations work with native Git enabled
- [ ] Verify no regression on macOS/Linux (sanitization only activates
on Windows)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Sanitize PATH on Windows to stop WSL from hijacking git commands,
ensuring native Git runs reliably. Fixes #2194.
- **Bug Fixes**
- Added getWindowsSanitizedEnv to filter WSL PATH entries (\\wsl$,
\\wsl.localhost, windowsapps, /mnt, /usr, /bin, /home) and handle PATH
key casing.
- Wrapped all dugite exec calls with execGit on Windows; added '--'
separators and remote URL validation.
- Prevents WSL hijacking and errors like "execvpe(/bin/bash) failed: No
such file or directory".
<sup>Written for commit ad0a93ceb660831d8c4abf3e05dd91b8523dd9f1.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Fixes Windows WSL PATH contamination by introducing a sanitized env
and routing all native Git calls through a wrapper.
>
> - **Add** `getWindowsSanitizedEnv()` to filter WSL-related PATH
entries on Windows and handle PATH key casing
> - **Introduce** `execGit()` wrapper and replace all `dugite.exec`
usages to apply sanitized env on Windows
> - **Harden** native Git calls: add `--` separators for path/URL args
(e.g., `clone`, `check-ignore`), and validate `remoteUrl` to prevent
option injection
> - Touches most native Git flows: status, commit, checkout, branch ops,
clone, push/pull/fetch/merge/rebase, file retrieval, and conflict
detection
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ad0a93ceb660831d8c4abf3e05dd91b8523dd9f1. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!-- devin-review-badge-begin -->
---
<a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2282">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open with Devin">
</picture>
</a>
<!-- devin-review-badge-end -->
---------
Co-authored-by:
Claude Opus 4.5 <noreply@anthropic.com>
正在显示
请
注册
或者
登录
后发表评论