This repository was archived by the owner on Sep 6, 2026. It is now read-only.
Codex++ 1.2.63
Codex++ v1.2.63
本版本不是继续只改磁盘上的 settings.json、config.toml 或 auth.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 端口,同时支持带完整端口的running与running_degraded状态,不再依赖固定9229喵~ - 保存设置、切换供应商、首次开启供应商总开关以及恢复官方模式均进入同一个“磁盘事务 + 运行时事务”,不会再要求用户反复保存或重启碰运气喵~
- 运行时按函数结构发现旧
vscode-api-*或新版app-initial-*Host RPC,分别发送正确参数并执行带reloadUserConfig: true的配置重载,不依赖资源哈希或压缩导出名喵~ - 配置重载后重新注入 renderer runtime v3,强制调用原生
list-models-for-host、set-default-model-config-for-host与clear-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只有明确返回ok或okOverridden才判定成功,缺失状态或其他状态不会继续伪报默认模型已切换喵~- 如果磁盘保存成功但运行时任一关键步骤失败,管理器会明确显示“磁盘已保存但运行时未应用”,活动供应商保存也不再重复弹出两个成功提示喵~
主要代码改动
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.rs与apps/codex-plus-manager/src/App.tsx:普通保存、供应商切换、总开关与官方恢复接入动态事务,并区分磁盘成功和运行时失败喵~crates/codex-plus-core/src/model_catalog.rs与crates/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 plain730/730与 template66/66全部通过喵~ cargo test --workspace -- --test-threads=1在约 504.8 秒内完成,所有 workspace 单元、集成和文档测试零失败喵~- 全部本地验证均为静态资源分析和独立 Node/Rust 自动化测试,没有连接、替换、重启或操作当前 Codex 页面、当前任务、当前 helper、动态 CDP 或旧
9229CDP 喵~ - 主分支三平台 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 喵~