fix(macos): detect Codex desktop by executable path - #2098
Conversation
BigPizzaV3
left a comment
There was a problem hiding this comment.
实现方向基本合理:按完整可执行路径识别 Codex/ChatGPT 主进程,并排除 helper、Codex++ 和 shell/open 参数中的假阳性;新增 macOS 解析单测也覆盖了主要边界。\n\n但当前 PR 没有任何 GitHub CI,测试仅在 macOS 条件下编译,无法确认其他平台构建未受影响,也无法核验 launcher 的真实重复启动/57321 端口场景。请补跑主仓三平台 artifact CI,并附 macOS 冷启动、重复启动和 debug-port 探测结果;通过后再合并。
|
已补充验证,并追加 本地 macOS arm64 验证:
主仓对应当前 head 的 artifact CI run 已生成,但状态是 同一个
Provider PR #2110 的独立分支也在相同的 x64 打包步骤出现同类错误,两个 PR 都未改动 主仓审批及真实 Electron 端到端验证的边界仍如上所述。没有修改 CI 脚本或取消主仓审批要求。 |
|
修复已核实:你把那个在干净 main 上本就失败的 a_busy_floating_helper_port_fails_immediately_without_waiting 改名为按平台重试预算的版本(macOS 31 次 / 其他 1 次),并声明绑定失败时不启动 Codex。我本机在干净 main 上复现了原测试失败(左31/右1),确认你的改法是修正既有基线而非规避。请让三平台 workflow 跑出绿(当前分支尚未有 GitHub check),我即可通过。 |
BigPizzaV3
left a comment
There was a problem hiding this comment.
复审通过。已核实:本地 launcher 集成 83/83 通过(与你声称一致);被你改名的 a_busy_floating_helper_port_respects_the_platform_retry_budget 恰恰是干净 main 上本就失败(左31/右1)的测试——你的改法是按 macOS 6s/200ms 重试预算修正既有基线,而非规避;含绑定失败不启动 Codex 的断言。与最新 main 三-way merge 无冲突。之前我担心的‘macOS 浮动端口行为’已由实机三轮冷启动验证覆盖。予以合并。
背景
#2056 已修复重复 Launcher 再次绑定 helper 的主要路径,但 macOS 的运行中 App 探测仍依赖
pgrep -x Codex/ChatGPT。在真实 ChatGPT 桌面版上,这个名称探测可能漏掉主进程,使 stale recovery 把仍在运行的 App 误判为不存在。改动
ps -axo pid=,args=的主程序可执行路径。Codex、Codex Dev、ChatGPT、ChatGPT Dev。验证
/backend/status返回正常,未改写 live config/auth。这是 #2056 的补充修复,关联 #2052、#2076。