Repository navigation
Description
现象
- CodexBar 4.0.6 (106),macOS 27.0
- 设置 → 关于 → "Codex 版本" 区域:来源选择 Codex APP 时该行显示橙色徽章「不可用」,下方红字
Codex APP: 不可用 - 菜单栏额度不再刷新
原因
CodexBar/Services/CodexCLI/CodexCLIResolver.swift 第 92-95 行把 bundled 来源的路径写死了:
static let bundledExecutablePaths = [
"/Applications/ChatGPT.app/Contents/Resources/codex",
"/Applications/Codex.app/Contents/Resources/codex"
]但 ChatGPT.app(CFBundleIdentifier = com.openai.codex,即 Codex APP)更新到 26.924.22138 后,内置 CLI 已迁移到新布局:
| 路径 | |
|---|---|
| 旧路径(现已不存在) | /Applications/ChatGPT.app/Contents/Resources/codex |
| 新路径(当前实际) | /Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex → .../codex-cli/CodexCLI.app/Contents/MacOS/codex |
新布局由 codex-cli/codex-package.json 声明:
{ "layoutVersion": 1, "version": "0.158.0-alpha.2.1", "target": "aarch64-apple-darwin",
"variant": "codex", "entrypoint": "bin/codex", "resourcesDir": "codex-resources", "pathDir": "codex-path" }因此 resolveInstallations() 中 bundledPath == nil,设置页按 item.path == nil 标记为不可用;启动时 command(from:source:.bundled) 抛出 CodexStatusError.sourceUnavailable(.bundled),红字即来自该错误文案 "\(displayName): \(不可用)"。
验证:新路径的 CLI 本身可用,不是 CLI/协议不兼容
用与 codex_bar 客户端相同的握手流程直接启动新路径的 CLI:
codex app-server --listen stdio://
依次调用 initialize(clientInfo.name = codex_bar)、initialized、account/read、account/rateLimits/read、account/usage/read:
initialize返回的 userAgent 为codex_bar/0.158.0-alpha.2.1,满足CodexCLIMinimumVersion.global(0.145.0)- 账号读取正常(已登录)
- 额度与用量接口均正常返回
结论:仅路径探测失配。
临时规避
把新路径的 CLI 暴露到 CodexCLIResolver 已扫描的目录(~/.local/bin、~/.npm-global/bin、/opt/homebrew/bin、/usr/local/bin 等),例如:
ln -sf /Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex ~/.local/bin/codex再把来源切为「自动选择」即可恢复(已验证 CodexBar 能正常拉起 app-server)。
建议修复
补全新布局路径,例如:
static let bundledExecutablePaths = [
"/Applications/ChatGPT.app/Contents/Resources/codex-cli/bin/codex",
"/Applications/ChatGPT.app/Contents/Resources/codex",
"/Applications/Codex.app/Contents/Resources/codex-cli/bin/codex",
"/Applications/Codex.app/Contents/Resources/codex"
]更稳妥的做法是读取 <app>/Contents/Resources/codex-cli/codex-package.json 的 entrypoint 字段来定位可执行文件(配合 layoutVersion 判断),这样后续 OpenAI 再调整打包布局时不会再次失配。
Activity
bob-zebedy commentedon Sep 27, 2026
v4.0.7 已修复