fix(gemini,acp): sanitize Gemini tool names and decode Windows taskkill errors#1828
fix(gemini,acp): sanitize Gemini tool names and decode Windows taskkill errors#1828
Conversation
…ll errors Sanitize MCP tool names to comply with Gemini's function_declarations.name rule (^[a-zA-Z_][a-zA-Z0-9_]*$) by replacing invalid characters with underscores. Decode Windows taskkill stderr from GBK encoding for readable Chinese log output instead of garbled replacement characters.
Code Review:fix(gemini,acp): sanitize Gemini tool names and decode Windows taskkill errors (#1828)变更概述本 PR 修复了两个独立问题:1) 在将 MCP 工具名称发送给 Gemini API 前进行清洗,解决因工具名含 方案评估结论:✅ 方案合理 两个修复均直接定位问题根因,改动最小化。 问题清单🔵 LOW — 工具名清洗后可能产生同名冲突文件: 问题代码: functionDeclarations: params.tools.map((tool) => ({
name: sanitizeGeminiFunctionName(tool.function.name),
...
})),问题说明:若两个 MCP 工具名清洗后映射到同一字符串(如 修复建议:本次 PR 不强制要求修复,建议后续以 issue 跟踪,必要时在 汇总
结论✅ 批准合并 — 无阻塞性问题 两个修复均正确、简洁,测试覆盖边界情况完整,CI 全绿。名称碰撞属低概率边界情况,不阻塞本次合并。 本报告由本地 |
|
✅ 已自动 review,无阻塞性问题,正在触发自动合并。 |
Summary
400 Invalid function nameerrors. Gemini requires^[a-zA-Z_][a-zA-Z0-9_]*$— characters like-,.,/,:are replaced with_.taskkillfailure output from GBK encoding so Chinese error messages remain readable in log files instead of appearing as garbled�characters.Related Issues
Closes #1635
Test Plan