Conversation
|
你好 @Ginufet,这个 PR 的自动评审群已建好:https://applink.feishu.cn/client/chat/open?openChatId=oc_9b42a7f1c0598472f32e260319b56bb7 不过你目前还不在自动拉群名单里,暂时没法把你拉进评审群。麻烦把你的 GitHub 账号和飞书信息补进这个名单文档:https://bytedance.larkoffice.com/wiki/WJ1nwWbtxi89erkNGNbcgkt9nUe ,补好之后后续复审会自动把你拉进群。 这是自动流程发的消息,评审意见稍后会在群内同步,最终以维护者审阅为准。 |
|
感谢这个修复,先说结论:问题定位准确、方向我认为是对的——"注释标记不是所有权边界"这个判断抓住了 #1375 的本质, 下面是一条建议在合入前处理的问题,以及两条可选项。 建议合入前修复:标记之后的内容会被误删去掉围栏之后,"哪些内容属于 botmux" 就完全依赖 const section = line.match(/^\s*\[([^\]]+)]\s*(?:#.*)?$/);
同一份输入在本 PR 与 master 上的对照(ensure 与 remove 两条路都复现):
需要说明的是,常见形态是安全的:标记之后如果是 补充一点定性:这个 验证过可行的修法:把表头识别换成括号感知的解析——引号内的 两条可选项(不影响合入判断)
另外一个纯命名问题: 我这边跑过的验证
以上是自动评审的初步意见,可能有理解偏差或遗漏,仅供参考,最终以维护者审阅结论为准。这个 PR 解决的是一个会实际影响用户(包括直接使用原生 Codex 的用户)的问题,很有价值,辛苦了 🙏 |
背景
Codex CLI 审批 Hook 后,会将
hooks.state写入用户级 TOML。实测新表可能插入 BotMux MCP Gateway 结束注释之前。旧逻辑更新 Gateway 时按注释起止位置删除整个块,误删信任记录,导致botmux start后原生 Codex 和 Bot 会话再次要求审批。Closes #1375
改动
stripCodexBotmuxSections删除 BotMux 自己的 MCP 表和子表。影响范围
实际验证
构建工具 Bun 1.4.2,依赖通过
bun install --frozen-lockfile安装。bun run test -- test/plugin-mcp-gateway-installer.test.ts test/plugin-manifest-store.test.ts test/plugin-mcp-sandbox.test.ts test/bypass-codex-hook-trust-config.test.ts bun run build BOTMUX_VERIFY_BAKED_VERSION=3.21.0-hooktrust.89eb378c bun run build:bun --target bun-linux-x64 node scripts/smoke-bun-binary.mjs dist-bin/botmux-linux-x64 git diff --checkbotmux restart;确认新安装的 SHA-256 与构建产物一致,daemon 和 Dashboard 均 online。hooks.state的原有信任哈希保留,且位于 Gateway 标记块外。此检查没有关闭 Hook 审批,也没有重新授予信任。效果
当 Codex 在 Gateway 注释块中插入其他表时,下一次 Gateway 更新或移除不再把这些表一并删除。已丢失的信任记录不会凭空恢复,需要用户正常审批;仍存在的记录会被保留。