gemini-cli 修复:单个扩展校验失败不再拖垮全部扩展加载
jesussamuel-byte · ghdev · 2026-10-12
google-gemini/gemini-cli 的 PR #29720 修复了一个扩展加载的容错问题。
当配置了 allowedExtensions 列表时,只要有一个扩展目录无法完成校验,就会导致所有扩展加载失败。两个触发条件:
- .gemini-extension-install.json 缺失或不可读
- 列表中的某个模式不是合法正则表达式
这两个错误都从 ExtensionManager.buildExtension() 抛出,且在该函数的逐扩展错误处理之外,导致 loadExtensions() 里的 Promise.all 整体 reject,extensions list 等调用方直接报错退出,而不是列出正常的扩展。
修复方式:只跳过受影响的目录并记录警告,其余扩展照常加载。
- 缺少可用安装元数据的目录:记录既有的「文件缺失或配置错误」警告并返回 null,不再抛异常
- 模式求值被包裹,非法模式对该目录记为警告并跳过;产生「Invalid regex pattern in allowedExtensions setting」的内层处理保持不变
- 行为不变的部分:只有匹配列表模式的扩展才会加载;不匹配的仍按既有警告跳过;无 allowlist 路径(含 blockGitExtensions)不受影响;模式仍按顺序求值并在首个匹配处停止,因此合法模式排在非法模式之前仍可放行
- 安装时检查 installOrUpdateExtension 仍会把非法模式作为错误报给执行安装的人
- 测试:新增了缺失/不可解析安装元数据、非法模式等场景的覆盖
「编程与Agent」频道最新
- 把 LLM 当 System 2、轻量模型当 System 1 的智能体分层思路 — colinmcnamara · 2026-10-13
- 等 Claude 写代码太无聊,开发者做了个 Claude Code 内嵌下棋插件 — bushibuilds · 2026-10-13
- 用户投诉 Codex 擅自烧光 62500 美元额度且无记录 — Yamapama · 2026-10-13
- 20 个值得知道的 Python MCP 工具,从建服务器到安全测试全梳理 — MaryamMiradi · 2026-10-13
- OpenClaw集群扩容:300会话需分布式节点与Postgres支撑 — steipete · 2026-10-13
- Codex 提示词建议「读心」:一字不差猜中用户想说的整句 — msg · 2026-10-13