CodePilot v0.9.0
Windows Compatibility Fixes
本次发布重点修复了 Windows 环境下 Claude Code CLI 的调用和路径解析问题。
1. Fix: Windows Spawn EINVAL Issue
- 问题: Electron/Node.js 的
child_process.spawn在 Windows 上直接调用.cmd或.bat文件时,如果不开启shell: true选项,会抛出EINVAL错误或无法执行。 - 解决: 识别 Windows 环境下的批处理包装脚本,并不直接调用它们,而是尝试解析出其底层引用的 JavaScript 入口文件(如
cli.js),然后通过node可执行文件直接运行该 JS 文件,从而绕过 SDK 的限制。
2. Fix: Windows Claude Path Resolution
- 问题: 标准的路径解析逻辑无法正确处理复杂的
.cmd文件内容(例如包含引号、%~dp0变量引用等情况),导致无法找到底层的cli.js文件,进而导致 "Claude executable not found" 错误。 - 解决:
- 增强了
resolveClaudeScriptPath函数,引入了更健壮的正则表达式来匹配cli.js路径。 - 支持了解析形如
"%_prog%" "%dp0%\..."的复杂命令格式。 - 实现了对
%~dp0变量的动态替换,确保能获取到绝对路径。
- 增强了
此版本基于 main 分支构建,并包含了上述两个关键修复,建议 Windows 用户更新。