fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23) - #24

Closed
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash
Closed

fix: 修复 Windows 环境下设置页 API Config 读取和 git-bash 路径检测问题 (closes #22, closes #23)#24
gy212 wants to merge 1 commit into
op7418:mainfrom
gy212:fix/windows-env-and-gitbash

Conversation

@gy212

@gy212gy212 commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

概述

修复 Windows 环境下的两个 Bug,对应 Issue #22#23


Bug 1: 设置页 API Config 无法读取环境变量 (#22)

问题

设置页 "Save API Config" 无法捕获本地 CLI 已配置的中转 URL 和 API Key。用户通过环境变量(如 ANTHROPIC_AUTH_TOKENANTHROPIC_BASE_URL)配置的值不会显示在设置页中。

修复

  • src/app/api/settings/app/route.ts:GET 接口增加环境变量回退逻辑,当数据库中无值时依次检查 ANTHROPIC_AUTH_TOKENANTHROPIC_API_KEYANTHROPIC_BASE_URL 环境变量,并返回值来源(dbenv
  • src/app/settings/page.tsx:前端显示 from env 标签提示用户当前值来自环境变量;保存后自动刷新状态

Bug 2: Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)

问题

Git 安装在非默认路径(如 D:\APP\Git)时,Claude CLI 无法找到 bash.exe,进程以退出码 1 退出,报错:

Claude Code on Windows requires git-bash.

修复

  • src/lib/platform.ts:新增 findGitBash() 函数,按优先级自动检测 git-bash 路径:
    1. 环境变量 CLAUDE_CODE_GIT_BASH_PATH(用户手动设置)
    2. 常见安装路径(C:\Program Files\Git\bin\bash.exe 等)
    3. 通过 where git 命令推导 Git 安装目录
  • src/lib/claude-client.ts:在构建 SDK 子进程环境变量时,仅在 Windows 平台且未设置 CLAUDE_CODE_GIT_BASH_PATH 时调用自动检测

修改文件

文件说明
src/app/api/settings/app/route.tsAPI Config GET 接口增加环境变量回退读取
src/app/settings/page.tsx前端显示值来源标签,保存后刷新
src/lib/platform.ts新增 findGitBash() 自动检测函数
src/lib/claude-client.tsSDK 环境变量构建时自动设置 git-bash 路径

1. 设置页 API Config 无法读取环境变量中的中转 URL 和 API Key (#22)
- GET 接口增加环境变量回退读取 (ANTHROPIC_AUTH_TOKEN / ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL)
- 前端显示 "from env" 标签,提示用户当前值来源
- 保存后自动刷新显示状态
2. Windows 上 Git 安装在非标准路径时 Claude CLI 退出码 1 (#23)
- 新增 findGitBash() 自动检测 git-bash 路径
- 检测优先级:环境变量 > 常见路径 > where git 推导
- 在 SDK 环境变量中自动设置 CLAUDE_CODE_GIT_BASH_PATH
@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor
屏幕截图 2026-02-08 194230 本地测试可以正常回复。

@op7418op7418 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Review: 建议拆分 PR

此 PR 包含两个独立修复,其中一个已与 main 冲突,建议拆分处理。

Bug 1: Settings 环境变量回退 — 建议关闭

Main 分支已移除 ApiConfigSection 组件(已被 ProviderManager 替代)。PR 修改的组件在 main 上已不存在,无法合并。

如果仍需环境变量回退功能,应在新的 ProviderManager 体系中重新实现。

Bug 2: Git-bash 路径检测 — 建议单独提 PR

代码质量良好:

  • findGitBash() 三级回退策略(环境变量 → 常见路径 → where git 推导)覆盖主要场景
  • 与 main 无冲突,有独立价值

建议:请将 Bug 2(platform.ts + claude-client.ts 的改动)单独提交为新 PR,即可合并。

@gy212

gy212 commented Feb 8, 2026

Copy link
Copy Markdown
ContributorAuthor

按作者建议拆分:Bug 1 因 main 分支已移除 ApiConfigSection 组件而无法合并,Bug 2 将单独提交新 PR。

@gy212gy212 closed this Feb 8, 2026
@gy212
gy212 deleted the fix/windows-env-and-gitbash branch March 5, 2026 01:32
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ence 到 Smoke Ledger
## 收尾内容
### 1. Smoke Ledger 补真实 evidence (3 Runtime 反例 + 触发)
- ClaudeCode baseline (0 tool_use, DB row f2b2503d): entries={rules:93}
- ClaudeCode trigger Bash×1 (DB row 033fd785): entries={rules, tools:Bash×1=48}
- Native trigger Bash×3 + Read×2 (DB row 0d80f997): entries={rules, tools:'Bash × 3, Read × 2'=813}, producedBy='codepilot_runtime'
- Codex codepilot_proxy trigger Bash×1 (DB row 50f3f89a): entries={rules, tools:Bash×1=2062}, producedBy='codex_runtime', providerBackend='codepilot_proxy', context_window=258400
- V6 bug 修复确认: 同 Widget 输入 (golden fixture) 跑 collectAutoInvokeSnapshot 单元测试断言 entries.skills(humanizer-zh) + entries.mcp(2 servers) + entries.tools(Bash×2)
### 2. 标记 Phase 7 + Phase 5 全部 ✅
- 实施状态表 Phase 5: ✅ 由 Phase 7.7 Smoke Ledger 真实 evidence 段全面取代
- Phase 7: ✅ 9 子阶段全部完成 commit dd99d8b + 后续 4 bugfix
- 决策日志加 closeout 条目 — 4 commit 链 + 跨 Agent 扩展规则沉淀 + 保留 tech-debt op7418#22/op7418#24
### 3. 归档 plan + smoke evidence
- docs/exec-plans/active/context-accounting-runtime-contract.md → completed/
- docs/exec-plans/active/_smoke-evidence/ → completed/_smoke-evidence-phase-7/
### 4. 同步 README.md + 反向链接
- README.md Active 表去掉本 plan 行
- README.md Completed 表加本 plan 行(2026-05-20)
- phase-6-context-visualization.md 反向引用从 active/ 改 completed/
- docs/research/codex-sdk-tool-call-surface.md 父计划链接更新
- src/lib/harness/auto-invoke-accounting.ts 跨 Agent 扩展指引链接更新
## 不在本轮 scope
- tech-debt op7418#22 (selectedSkills 同名歧义) — 保留 deferred
- tech-debt op7418#24 (footer cost 双计 P2) — 保留 deferred
- MCP server tool schemas 系统提示注入估算 — Phase 8 范围
- memory / files_attachments 接通 — Phase 6.x 范围
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
youcho2 pushed a commit to youcho2/CodePilot that referenced this pull request Aug 11, 2026
…ce + 实施状态 + 决策日志 closeout 条目
前一个 commit 675fcf8 完成了 rename + README 同步,但 plan 文件内容更新(Smoke Ledger 真实 evidence 段 + 实施状态表 Phase 5/7 → ✅ + 决策日志 closeout 条目)实际未 staged。本 commit 补上。
内容:
- Smoke Ledger 段从 v6 增补的待办表替换为 Phase 7 closeout 真实 evidence 段
- 3 Runtime DB row dump:ClaudeCode baseline (0 tool_use) / ClaudeCode Bash×1 / Native Bash×3+Read×2 / Codex codepilot_proxy Bash×1
- 实施状态表 Phase 5 → ✅ 由 7.7 取代;Phase 7 → ✅ 9 子阶段完成
- 决策日志加 Phase 7 closeout 条目 (4 bugfix commit 链 + 跨 Agent 规则 + tech-debt op7418#22/op7418#24 保留)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@gy212@op7418