问题描述
在 Windows 上使用 CodePilot 发送消息时,Claude CLI 进程立即以退出码 1 退出,无法正常对话。
复现步骤
- 在 Windows 上将 Git 安装到非默认路径(非
C:\Program Files\Git) - 确保系统环境变量中没有设置
CLAUDE_CODE_GIT_BASH_PATH - 启动 CodePilot,打开任意对话
- 发送一条消息
预期行为: Claude 正常响应消息
实际行为: Claude CLI 进程以退出码 1 退出,对话失败
错误信息
服务器 stderr 输出:
Claude Code on Windows requires git-bash. If installed but not in PATH, set environment variable pointing to your bash.exe, similar to:
CLAUDE_CODE_GIT_BASH_PATH=C:\Program Files\Git\bin\bash.exe
原因分析
Claude Code SDK 在 Windows 上依赖 git-bash(bash.exe)来执行 shell 命令。当 Git 安装在非标准路径时,SDK 无法自动发现
bash.exe,需要通过环境变量 CLAUDE_CODE_GIT_BASH_PATH 显式指定。
当前 claude-client.ts 在构建 SDK 子进程环境变量时,没有处理这个场景。
建议修复方案
在 src/lib/platform.ts 中新增 findGitBash() 函数,按以下优先级自动检测 git-bash 路径:
- 检查环境变量
CLAUDE_CODE_GIT_BASH_PATH 是否已设置且文件存在 - 检查常见安装路径(
C:\Program Files\Git\bin\bash.exe、C:\Program Files (x86)\Git\bin\bash.exe) - 通过
where git 命令定位 git.exe,从其路径推导 Git 安装目录,拼接 bin\bash.exe
在 src/lib/claude-client.ts 构建 sdkEnv 时,仅在 Windows 平台且 CLAUDE_CODE_GIT_BASH_PATH 未设置时调用该函数,将检测结果写入环境变量。
环境信息
- 操作系统: Windows 10/11
- Git 安装路径: 非默认路径(如
D:\APP\Git) - CodePilot 版本: 0.2.3
问题描述
在 Windows 上使用 CodePilot 发送消息时,Claude CLI 进程立即以退出码 1 退出,无法正常对话。
复现步骤
C:\Program Files\Git)CLAUDE_CODE_GIT_BASH_PATH预期行为: Claude 正常响应消息
实际行为: Claude CLI 进程以退出码 1 退出,对话失败
错误信息
服务器 stderr 输出:
原因分析
Claude Code SDK 在 Windows 上依赖 git-bash(
bash.exe)来执行 shell 命令。当 Git 安装在非标准路径时,SDK 无法自动发现bash.exe,需要通过环境变量CLAUDE_CODE_GIT_BASH_PATH显式指定。当前
claude-client.ts在构建 SDK 子进程环境变量时,没有处理这个场景。建议修复方案
在
src/lib/platform.ts中新增findGitBash()函数,按以下优先级自动检测 git-bash 路径:CLAUDE_CODE_GIT_BASH_PATH是否已设置且文件存在C:\Program Files\Git\bin\bash.exe、C:\Program Files (x86)\Git\bin\bash.exe)where git命令定位git.exe,从其路径推导 Git 安装目录,拼接bin\bash.exe在
src/lib/claude-client.ts构建sdkEnv时,仅在 Windows 平台且CLAUDE_CODE_GIT_BASH_PATH未设置时调用该函数,将检测结果写入环境变量。环境信息
D:\APP\Git)