Skip to content

修复 macOS app 入口和启动失败状态提示#369

Open
0xC3B6 wants to merge 1 commit into
BigPizzaV3:mainfrom
0xC3B6:fix-macos-app-entrypoints-status-prompt
Open

修复 macOS app 入口和启动失败状态提示#369
0xC3B6 wants to merge 1 commit into
BigPizzaV3:mainfrom
0xC3B6:fix-macos-app-entrypoints-status-prompt

Conversation

@0xC3B6
Copy link
Copy Markdown

@0xC3B6 0xC3B6 commented May 27, 2026

变更说明

本 PR 修复 Rust 版本在 macOS 安装/修复入口时的两个问题:

  1. 修复安装入口可能覆盖真实 .app 可执行文件的问题

之前在生成 macOS app bundle 入口时,某些已安装路径下会把真实 Mach-O 可执行文件覆盖成启动脚本,导致安装后的 Codex++.appCodex++ 管理工具.app 可能出现无法正常启动的问题。
本次调整了 macOS app bundle 的目标路径判断和 companion binary 路径解析,确保安装/修复入口时保留真实可执行文件,不再把自身覆盖成脚本。

  1. 优化静默启动失败时的反馈

之前如果 Codex++ 静默启动阶段失败,例如查询 CDP targets 失败,用户侧可能只看到 Codex++ 没有响应,不容易知道失败原因。
现在 launcher 在启动/注入失败时会自动打开 Codex++ 管理工具,并直接进入状态页,方便用户查看最近一次启动失败信息。

实现细节

  • MacosAppBundle 增加目标可执行文件路径记录,用于判断当前写入目标是否就是真实 app executable。
  • macOS bundle 写入时,如果目标路径已经是自身真实可执行文件,则跳过脚本覆盖,保留 Mach-O 文件。
  • 调整 companion binary 路径解析,使已安装的 Codex++.appCodex++ 管理工具.app 能正确互相定位。
  • launcher 启动失败时调用管理工具,并传入 --show-status
  • 管理工具启动参数增加 showStatus,前端根据该参数默认打开状态页。

验证

  • cargo test -p codex-plus-core --test installers(11 passed)
  • cargo test -p codex-plus-launcher(6 passed)
  • cargo test -p codex-plus-manager --lib startup_options(5 passed)
  • npm --prefix apps/codex-plus-manager run check
  • git diff --check
  • cargo fmt --check -p codex-plus-core -p codex-plus-launcher -p codex-plus-manager

备注

本地验证中重新打包并安装 macOS app 后,确认:

  • /Applications/Codex++.app/Contents/MacOS/CodexPlusPlus 仍为 Mach-O 可执行文件
  • /Applications/Codex++ 管理工具.app/Contents/MacOS/CodexPlusPlusManager 仍为 Mach-O 可执行文件

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant