Repository navigation
feat(tray): 并发更新 CLI 并区分 Codex 安装来源 - #321
Conversation
- 每个 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 优先级,员工检测优先级保持不变。
|
评审记录(R2,整改后通过;待最终 Windows CI)
Findings 裁决与处理:
最终 head 验证:Rust 289 通过、2 忽略,Node 全量 156 通过,fmt、普通及预览 clippy 通过。新增回归先红后绿;macOS 只读预览读取真实数据,核对两份 Codex 版本与当前来源、全宽/半屏布局,以及与 #322 的语音设置组合。Rust 测试首次因沙箱 loopback 限制及既有短超时失败,允许本地回环并以 4 线程重跑后全部通过,未屏蔽或跳过测试。 CI:原候选 Python/Tray 全成功;最终 head 的 Python/Tray 正在运行,涉及本机无法实测的 Windows,合并前等待 Windows 对应任务终态。剩余风险:未实际更新已安装 CLI,未作 Windows 人工实机操作;未发起付费语音/摘要请求。 |
|
最终合并复核:head 仍为 |
|
合并后回执:已 squash 合入 main,commit |
员工页原先会在更新一个 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 原生执行尚未实机验证。