Skip to content
This repository was archived by the owner on Sep 6, 2026. It is now read-only.

Codex++ 1.2.63

Choose a tag to compare

@github-actions github-actions released this 04 Aug 05:38
· 87 commits to main since this release

Codex++ v1.2.63

本版本不是继续只改磁盘上的 settings.jsonconfig.tomlauth.json,而是把供应商配置、模型目录、默认模型、当前选中模型和已打开界面组成一个可验证的动态运行时事务喵~

本次修复的根因

  • v1.2.62 解决了配置文件的并发覆盖和保存竞态,但保存后的热重载仍固定访问旧调试端口 9229;新版 launcher 使用动态端口后,请求可能根本没有发往当前 Codex 实例喵~
  • 新版 Codex 已删除旧 vscode-api-* 独立资源,把 State API 合并进 app-initial-*;旧实现继续查找已不存在的资源并依赖压缩导出名,因此运行中的 app-server、模型缓存和界面状态没有刷新喵~
  • 两代 Host RPC 的参数协议不同:旧版使用 { params: payload } 包装,新版 app-initial-* 必须直接传递 payload;之前即使调用链没有明显抛错,也可能没有真正执行 reloadUserConfig 喵~
  • 新版模型菜单由 React Query 的 ['models','list',...] 五分钟缓存、React 状态、Statsig 白名单和 app-server 返回共同驱动,单纯改配置文件或只补一个响应无法保证界面和下一次请求同时切换喵~

动态注入与显示

  • 管理器从 launcher 的 latest-status.json 读取当前实例真实 debug/helper 端口,同时支持带完整端口的 runningrunning_degraded 状态,不再依赖固定 9229 喵~
  • 保存设置、切换供应商、首次开启供应商总开关以及恢复官方模式均进入同一个“磁盘事务 + 运行时事务”,不会再要求用户反复保存或重启碰运气喵~
  • 运行时按函数结构发现旧 vscode-api-* 或新版 app-initial-* Host RPC,分别发送正确参数并执行带 reloadUserConfig: true 的配置重载,不依赖资源哈希或压缩导出名喵~
  • 配置重载后重新注入 renderer runtime v3,强制调用原生 list-models-for-hostset-default-model-config-for-hostclear-prewarmed-threads-for-host,同步原生模型目录、默认模型和预热任务喵~
  • dispatcher、app-server、Response JSON、MCP 消息和 Statsig 补丁支持同版本重新绑定,已经打开的页面不会继续使用上一供应商的旧闭包喵~
  • 当前供应商模型按管理器顺序置顶,Codex++ 会追踪并清理自己过去注入的旧供应商模型,同时保留已经识别的官方原生模型喵~
  • 默认模型、当前选中模型、default / selected / model 字段、lastUsedModel、React 状态和实际请求模型会一起更新;仍有效的用户选择会保留,属于上一供应商或已失效的选择会切换到新默认模型喵~
  • 主动发现并失效新版 React Query 模型查询缓存,然后刷新 React fiber、DevTools root、QueryClient 与 client coordination 状态,已打开的模型菜单无需等待五分钟自然过期喵~
  • 供应商总开关关闭时后端返回明确的空托管目录 status: disabled,切回官方模式会在恢复官方 live 配置后动态清理旧托管模型、旧闭包、缓存和选中状态喵~

防止再次伪报成功

  • 原生模型验证期间通过 codexNativeModelRefreshProbeDepth 暂停 Codex++ 的 app-server、Response JSON 和 MCP 模型补丁,确保检查到的是 Codex 原生 model/list,而不是 Codex++ 自己补出来的结果喵~
  • 原生目录必须真实包含当前供应商的全部期望模型,模型数量、选中模型、缓存失效结果和真实端口也必须一致,否则动态事务直接失败喵~
  • set-default-model-config-for-host 只有明确返回 okokOverridden 才判定成功,缺失状态或其他状态不会继续伪报默认模型已切换喵~
  • 如果磁盘保存成功但运行时任一关键步骤失败,管理器会明确显示“磁盘已保存但运行时未应用”,活动供应商保存也不再重复弹出两个成功提示喵~

主要代码改动

  • crates/codex-plus-core/src/codex_config_reload.rs:真实端口发现、旧/新 Host RPC 兼容、配置重载、原生模型探针、默认模型与缓存验证喵~
  • assets/inject/renderer-inject.js:runtime v3 可重绑注入、模型目录与界面同步、React Query 失效、旧托管模型和官方模式清理喵~
  • apps/codex-plus-manager/src-tauri/src/commands.rsapps/codex-plus-manager/src/App.tsx:普通保存、供应商切换、总开关与官方恢复接入动态事务,并区分磁盘成功和运行时失败喵~
  • crates/codex-plus-core/src/model_catalog.rscrates/codex-plus-core/src/relay_switch.rs:总开关关闭时提供空托管目录,显式供应商和默认模型选择优先于旧运行时快照喵~
  • 新增 dynamic-provider-apply.test.ts,并扩展 CDP、配置重载、供应商切换、模型目录、i18n 与版本回归覆盖喵~

验证结果

  • 独立前端测试 20/20、CDP 注入测试 83/83、动态配置重载测试 6/6 全部通过喵~
  • TypeScript、Vite 生产构建、管理器 cargo check、JavaScript 语法、品牌检查、i18n plain 730/730 与 template 66/66 全部通过喵~
  • cargo test --workspace -- --test-threads=1 在约 504.8 秒内完成,所有 workspace 单元、集成和文档测试零失败喵~
  • 全部本地验证均为静态资源分析和独立 Node/Rust 自动化测试,没有连接、替换、重启或操作当前 Codex 页面、当前任务、当前 helper、动态 CDP 或旧 9229 CDP 喵~
  • 主分支三平台 Actions 30879758993 全部成功喵~
  • 正式 Release Actions 30880695416 的版本校验、Windows x64、macOS x64、macOS arm64、六项资产校验与发布全部成功喵~
  • npm audit 仍为仓库既有 1 low + 2 high,本版本没有新增依赖;Vite 仍只有既有单 chunk 超过 500 KB 提醒喵~

使用方式

  • 安装 v1.2.63 后,通过 Codex++ launcher 启动 Codex,在管理器中保存当前活动供应商或切换模型即可触发动态事务,不需要反复重启 Codex 喵~
  • 只有管理器完成原生模型目录、默认模型、缓存和界面状态验证后才会报告运行时应用成功;若出现明确的运行时失败信息,可直接依据该错误定位,不会再用默认配置覆盖真实问题喵~

下载与 SHA-256

平台 文件 大小 SHA-256
Windows x64 安装程序 CodexPlusPlus-1.2.63-windows-x64-setup.exe 16,873,688 bytes 8ed69af680128ff8b75a89facb54a0af6c6fee8d9592150e7f46041e7a71ea9a
Windows x64 ZIP CodexPlusPlus-1.2.63-windows-x64.zip 21,214,856 bytes 62d36a58bd9563cd0c194973e84f6fe1bfd947e3dd52dd89004c7b170faebc29
macOS x64 DMG CodexPlusPlus-1.2.63-macos-x64.dmg 25,612,820 bytes 58b6a3fe2103e3b87abe8306f81b0901fb275839a2ed0a2643bb07e70fa5891e
macOS x64 ZIP CodexPlusPlus-1.2.63-macos-x64.zip 21,192,721 bytes a183b2c2e612922c4ff1e017e49b1192d5997ab7c0da60c0c1b034aec92799fc
macOS arm64 DMG CodexPlusPlus-1.2.63-macos-arm64.dmg 23,714,966 bytes 1528bbafcc6b53e02c96b9726f0982f0d403e7be9ef616e04bd7352169ac8abf
macOS arm64 ZIP CodexPlusPlus-1.2.63-macos-arm64.zip 20,692,849 bytes 1fe29714df49597d4f4aac2e7225adaedb7bf253997dc0202d975e8ba8fa3557

完整差异v1.2.62...v1.2.63 喵~