fix(codex): 修复软链接启动时找不到 code mode host - #1043
Conversation
Signed-off-by: duanjialing.777 <duanjialing.777@bytedance.com>
|
感谢 PR!我先做了一轮自动化初步评审(实跑验证,非纸面推理),把结论整理如下。这只是自动评审的初步意见,最终以维护者审阅为准。 先说结论:方向合理,但我在本机实测得到的证据不太支持「Linux 上普通 codex 走软链接会找不到 一、根因实测:Linux 上 codex 自己就已经 canonical 了本机有真的 codex 0.149.1 standalone( 关键是内核给
即:软链接启动不影响 host 定位。另外 再补两条,说明沙箱下也已经覆盖:
所以想请你确认:这个 bug 是在 macOS 上复现的吗? 如果是,那是合理的——Rust 二、一处用户可见回退:
|
|
补充第二轮实测 —— 上一条评论里我有两处说错了,先更正,并把结论从「请确认平台」收紧为更明确的判据。 同样是自动评审的初步意见,最终以维护者审阅为准。 更正一:你描述的失败我复现出来了,我上一条说的「有 in-process 兜底、不是反复失败」是错的用硬链接构造出「 它确实会重试、确实连续失败,工具调用直接不可用 —— 和你 PR 描述的「辅助进程缺失并反复失败」逐字对上。所以这个失败模式是真的,我上一条把它说成「有兜底、不算反复失败」是我搞错了,抱歉。 更正二:macOS 上这个前提也不成立 —— 因为 codex 自己会先 canonicalize我上一条留了个问号说「macOS 的 关键在于这次 canonicalize 与 而且我特意按你说的 App bundle 形态又跑了一遍( ⇒ App bundle + PATH 软链接这个组合本身不会触发该 bug,因为 codex 内部那次 canonicalize 已经把目录纠正回 那么第一节里我复现出来的失败要满足什么条件?exe 的 canonical 路径所在目录里真的没有 host(我是用硬链接 + 只把 host 放在别处硬凑出来的)。这种布局下 所以结论收紧为这个前提在任何平台都不成立,改动没有必要性(而不是我上一条说的「请确认是不是 macOS」):codex 自己 canonicalize,botmux 的 standalone / App bundle 两种安装形态都构造不出该失败;而能真触发失败的布局,这个改动也修不了。 同时上一条提的第二点仍然成立: 建议:这个 PR 可以先撤下或转成 draft。如果你在真实环境里确实遇到了 再次感谢你把这个问题提出来 —— 排查过程本身很有价值(我自己上一轮也判错了两处,是按你的场景复现才纠正过来的)。以上仍为自动评审初步意见,最终以维护者审阅为准。 |
问题
当普通 Codex 适配器通过 PATH 中的软链接启动 App 内置 Codex 时,Codex 会按软链接所在目录查找
codex-code-mode-host,导致辅助进程缺失并反复失败。修复
resolveCommandReal的适用契约说明验证
bun run buildbun run test -- test/cli-adapters.test.ts(407/407)git diff --check范围
仅影响普通
codex适配器的可执行文件解析;其他 CLI 适配器和codex-app行为不变。