Skip to content

feat(tray): 并发更新 CLI 并区分 Codex 安装来源 - #321

Merged
TimWongUp merged 7 commits into
mainfrom
codex/cli-update-backend
Nov 7, 2026
Merged

TimWongUp merged 7 commits into
mainfrom
codex/cli-update-backend

Conversation

@TimWongUp

Copy link
Copy Markdown
Owner

员工页原先会在更新一个 CLI 时禁用全部更新按钮,后台也用全局锁串行执行;Codex 桌面内置版和独立安装版则共用一个版本显示,容易把更新对象与实际派发来源混淆。

现在不同安装环境的更新可同时执行,同一 npm prefix/Homebrew 环境排队,同一 CLI 防止重复启动;每项独立显示成败。Codex 卡片分别显示 ChatGPT 内置 CLI 与独立 CLI 的版本、当前使用来源和各自更新能力,独立安装沿原路径更新并验证,内置版随桌面应用更新。保留现有来源选择顺序及内部 codex 身份,桌面宿主显示为「ChatGPT(Codex)」。并发响应按目标合并,避免旧状态回滚或覆盖未保存设置;来源行适配窄窗口与英文显示。

验证:Node 155 项通过;Rust 287 项通过、2 项忽略;cargo fmt、普通及预览 clippy 通过。macOS 只读预览使用真实数据核对两份 CLI 的版本、当前来源及全宽/半屏布局。未实际执行已安装 CLI 的更新,Windows 原生执行尚未实机验证。

TimWongUp and others added 7 commits November 7, 2026 14:14
- 每个 provider/target 独立运行状态,全部更新并发启动并分别汇总成败
- 响应按目标合并,全部结束后只采用最新一次成员读取,避免旧状态回滚
- 有 installations 时列出两份版本和当前使用来源,独立安装带 target 更新
- 旧后端没有 installations 时保持原有展示和请求

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 来源行允许换行,更新按钮不再截断版本,tooltip 写明目标版本和命令
- 有来源行时不再保留标题行的空更新槽,避免挤压卡片标题
- 英文界面按 id 和所属应用映射来源名称
- 只有独立安装时走单版本展示和默认更新入口

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
为版本写回记录探测序号,合并全量探测期间完成的同路径更新,避免旧结果覆盖已验证版本;探测和独立安装更新仍在缓存锁外并行。恢复宿主 Context 的 Codex.app 优先级,员工检测优先级保持不变。

Copy link
Copy Markdown
Owner Author

评审记录(R2,整改后通过;待最终 Windows CI)

  • 最终 head:95308db744d4be19e2c513b2e1d901212c0fcc06;当前目标 main/base:727ae5b606d7a88984fa0818c8cb75356822f119(已含 feat(tray): 重做角色二次元口语人设并补齐新同事语音设置 #322)。原完整评审 base:234ac405e16f992b0f33ed0457fd772e9c20b995,原 head:3ce1e96b3ab7573981ea0a72fb11923429c6d034;整改范围 3ce1e96b..95dd293c,已核对最新 main 的集成影响。
  • 等级依据:共享安装环境的并发、缓存竞态、更新目标与跨平台安装来源存在独立风险。
  • 正确性:Antigravity / gemini-4-argon-medium。并发与安装专项:宿主原生 Codex 子代理(按角色自动选择,独立于实现者)。专项曾被中断,已恢复同一任务并收齐完整报告;两工位均完成整改定向复核,无剩余阻塞。

Findings 裁决与处理:

  1. CONFIRMED,P2:全量探测在更新期间得到的旧版本可晚到覆盖更新验证结果。已加入有界的每 Provider 版本写回及探测代次协调,只保留本次探测期间成功验证、路径相同的版本;首次探测与后续外部升降级均有 fake 边界回归保护。
  2. CONFIRMED,P2:宿主 Codex.app/ChatGPT.app 查找顺序意外调换,会改变重启命令的实际二进制。已恢复原顺序并加并存与回退验证,员工派发自身的选择顺序不变。
  3. PLAUSIBLE,P3:Windows 双安装下宿主页的共享行标签可能不体现员工当前使用来源。保留为非阻塞展示限制:宿主操作与员工派发的查找职责不同,不为标签改变实际执行路径;两位评审确认此处理无新增风险。

最终 head 验证:Rust 289 通过、2 忽略,Node 全量 156 通过,fmt、普通及预览 clippy 通过。新增回归先红后绿;macOS 只读预览读取真实数据,核对两份 Codex 版本与当前来源、全宽/半屏布局,以及与 #322 的语音设置组合。Rust 测试首次因沙箱 loopback 限制及既有短超时失败,允许本地回环并以 4 线程重跑后全部通过,未屏蔽或跳过测试。

CI:原候选 Python/Tray 全成功;最终 head 的 Python/Tray 正在运行,涉及本机无法实测的 Windows,合并前等待 Windows 对应任务终态。剩余风险:未实际更新已安装 CLI,未作 Windows 人工实机操作;未发起付费语音/摘要请求。

Copy link
Copy Markdown
Owner Author

最终合并复核:head 仍为 95308db744d4be19e2c513b2e1d901212c0fcc06,base 为已含 #322 的 727ae5b606d7a88984fa0818c8cb75356822f119。最终 Tray CI 42356552210 的 macOS 与 Windows 均已成功;本地 Rust289/Node156及普通、预览静态检查通过。Python CI 仍在运行,本次未修改 Python 实现或测试,按既定合并规则不阻塞。原评审整改已全部确认,无未解决阻塞项,按此 head 合并。

@TimWongUp
TimWongUp merged commit 95a9899 into main Nov 7, 2026
9 checks passed
@TimWongUp
TimWongUp deleted the codex/cli-update-backend branch November 7, 2026 08:46

Copy link
Copy Markdown
Owner Author

合并后回执:已 squash 合入 main,commit 95a9899517823582af54f77408c085f847697ae9。候选 head 的 Python 与 Tray CI 均最终成功;本地 main 已同步,已整合的干净 worktree 已清理,其他未合并 worktree 保留。未更新版本、未发布。

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