Releases: Alunixa-Code/CodexPlusPlusPlus
Release list
Codex++ 1.2.68
Codex+++ v1.2.68
本版为迁移桥接分支的 Codex 更新兼容修复版,审计基准为 Windows 安装包 26.901.5280.0,不改变产品品牌、更新源或 Alunixa X 自主迁移安排喵~
修复内容
- 启动与注入:旧资源模块缺失时共享读取、缓存引用、冷却限次重试,避免不断全量抓取;新资源出现后重新发现,dispatcher 防并发重试,共享终端不再永久缓存一次失败喵~
- 空闲开销:扩展自身插入的界面节点不再触发下一轮完整扫描;插件过滤器保持原始 callback、thisArg 和搜索过滤语义喵~
- 模型与供应商:同时处理新版
model/list和旧列表接口,根据原生模型的serviceTiers识别 Fast 能力;纯 API 恢复任务时修正继承的官方 provider,同时保留用户明确指定的其他供应商喵~ - 插件市场:托管内置市场更名为非保留名
codex-plus-curated,同时迁移磁盘 manifest、配置和旧插件启停选择;修复 Windows 混合分隔符、UNC 与 macOS 路径,不删除用户自建市场喵~ - 任务删除和撤销:同步维护
session_index.jsonl与local_thread_catalog,支持只有索引的任务;删除前备份、独占锁保护、保留无关和损坏行,撤销时拒绝覆盖较新记录或越界路径喵~ - 数据库兼容:发现根目录中的新版本状态文件及独立目录数据库,更新目录 revision,保留同 ID 远端主机记录;多数据库部分失败仍返回全部可用撤销凭据喵~
- 微信回复:按 thread 和 turn 关联通知,处理响应前到达的事件,不把 idle 或其他任务的完成事件当作当前回复结束;优先返回 final_answer,失败和中断不伪装成成功喵~
- 进程与皮肤:微信 app-server 不再闪出控制台,无效输出不能不断延长读取超时;Dream Skin 接受等价配置路径并保留失效旧路径备份,不向其他配置恢复旧主题喵~
- 迁移入口:桥接版本校验跟随当前包版本,继续严格区分 Codex+++ 普通更新资产与 Alunixa X
v1.0.6迁移资产喵~
验证范围
- 提供
tools/audit-codex-bundle.mjs,只读解析已安装 ASAR 和 AST,检查无项目任务、设置读写、Host RPC、dispatcher、终端与请求客户端结构,不执行安装包或连接桌面喵~ - 新增执行型前端测试、会话索引与目录安全测试、微信事件关联测试和皮肤备份兼容测试,保留原有全工作区测试喵~
- GitHub Actions 在发布前执行前端测试、TypeScript 和 Rust 测试,并构建 Windows x64、macOS x64、macOS arm64 安装包喵~
- 补齐 macOS 双架构安装包测试数据和错误架构拒绝回归;并发写入保护改用确定性测试时序,不依赖大文件复制或轮询碰运气,CI 会收集所有套件失败而不降低发行门禁喵~
- 未使用正在运行的用户 Codex、helper、CDP 或当前任务做热注入测试;真实交互仍以用户升级后使用结果为准,不能把静态结构和自动化测试等同于所有场景的实机保证喵~
安装与迁移
日常更新选择 CodexPlusPlus-1.2.68-*;Windows 推荐 windows-x64-setup.exe,macOS 按芯片选择对应 DMG 喵~
需要迁移时使用管理器“关于”页的 Alunixa X 入口,或选择 Alunixa-X-1.0.6-* 镜像资产;两款程序继续共享设置,旧程序不会被强制卸载喵~
本次 Release 保留六项 Codex+++ 安装资产和六项经固定 SHA-256 校验的 Alunixa X 迁移资产,完成后旧仓库恢复归档,后续维护入口仍为 Alunixa X 喵~
Build Provenance
Commit: e72286a1436bded3c3e24def85dd55d49c8dc49f
Actions: https://github.com/Alunixa-Code/CodexPlusPlusPlus/actions/runs/34000859324
SHA-256
a058ba7293ab147362b15608a67335c11920878aa6c4aa1df7ea0f39bc5b22c3 Alunixa-X-1.0.6-macos-arm64.dmg
90f1e09bd771ffaeb60c272c0a9a5ea54d22624e72702776de6149d348544aab Alunixa-X-1.0.6-macos-arm64.zip
71996a13920db19df8dbc2eab690ea24f3ec520f2835df1c00628113b4e9feac Alunixa-X-1.0.6-macos-x64.dmg
77628ca1d47f2d8c7b2ddac5eede51fb787fddc77aed340dd2c6f77d673db07f Alunixa-X-1.0.6-macos-x64.zip
01726fefd22c24710ddf929a8a0421778b4105e8618201bc822284ed06413c51 Alunixa-X-1.0.6-windows-x64-setup.exe
a24c0b9e3af52043fe1be0f593838969e675f78289da05904020dac7127648f2 Alunixa-X-1.0.6-windows-x64.zip
f71297eee0e088a6cfaddc071eb8efe9e9af9987a263f1ebc6894b9d6401eafc CodexPlusPlus-1.2.68-macos-arm64.dmg
d9cb2166432a59a1cf23c9c49d20a72f92f5440727baa115ebf1264e3a297c3c CodexPlusPlus-1.2.68-macos-arm64.zip
12ab01a52c3567a1083bd2830fd82acbec95ba62b231cc9003b19b756d329dba CodexPlusPlus-1.2.68-macos-x64.dmg
cf1947ff98938605e7a2083b2c383ad47db4dcce91c9ff541812d612fed681a4 CodexPlusPlus-1.2.68-macos-x64.zip
9cd819cd7677b381217d9a6f17d711068fbea8ca8ed41cce2810ed70a9cb736b CodexPlusPlus-1.2.68-windows-x64-setup.exe
7fc7088db6bffab3bab16ec7d8699fdb94010b3df39ad0f3c0d7cf84899102c8 CodexPlusPlus-1.2.68-windows-x64.zip
Codex+++ v1.2.67 · 最终迁移到 Alunixa X
Codex+++ v1.2.67 · 最终迁移桥接版
Codex+++ 的功能维护已经迁移到 Alunixa X,这是旧仓库的最终桥接版本喵~
后续新功能、兼容修复、Issue 和发行版统一位于 Alunixa-Code/Alunixa-X 喵~
两条完全独立的安装路径喵~
本 Release 同时提供 12 项资产,但普通更新和产品迁移不会混用喵~
CodexPlusPlus-1.2.67-*是最终 Codex+++ 桥接版,供旧版管理器的普通“检查更新”使用喵~Alunixa-X-1.0.6-*是迁移安装包,只由新加入的“迁移到 Alunixa X”入口使用喵~- 普通更新器只识别
CodexPlusPlus-*,不会误把 Alunixa X 当作 Codex+++ 原地覆盖喵~ - 迁移入口只识别
Alunixa-X-1.0.6-*,不会重新下载旧 Codex+++ 安装包喵~
管理器内自主迁移喵~
- 先将 Codex+++ 更新到
v1.2.67喵~ - 打开“Codex++ 管理工具 → 关于 → 迁移到 Alunixa X”喵~
- 点击“检查迁移包”,核对目标版本、平台资产和迁移说明喵~
- 点击“下载并安装 Alunixa X”,按系统安装向导完成安装喵~
- 完全退出旧 Codex 与 Codex+++,再通过 Alunixa X 启动器启动一次喵~
- 验证供应商、模型、会话与增强设置正常后,再自行卸载 Codex+++ 喵~
迁移完全由用户确认,Codex+++ 不会被强制卸载,也不会自动删除旧安装目录或快捷方式喵~
配置为什么可以直接复用喵~
Codex+++ 与 Alunixa X 继续使用同一状态目录与设置文件喵~
~/.codex-session-delete/settings.json
以下内容不需要手工复制喵~
- 供应商与 API 配置喵~
- 模型列表、上下文窗口和压缩阈值喵~
- Codex 增强开关喵~
- 本地会话和 Provider Sync 信息喵~
- DreamSkin、用户脚本与大部分工具配置喵~
Alunixa X 首次启动还会迁移清理旧 codex-plus-imagegen MCP 表,避免旧、新图片 companion 同时注册;用户自行添加的其他 MCP、Skills 和 Plugins 不会被删除喵~
手工迁移与回退喵~
如果管理器无法联网,可直接从本 Release 下载对应平台的 Alunixa-X-1.0.6-* 安装包喵~
迁移不会删除 Codex+++,因此在确认 Alunixa X 满足需要前仍可继续使用旧入口;确认完成后再从系统应用管理中卸载 Codex+++ 即可喵~
完整迁移文档见仓库中的 MIGRATION_TO_ALUNIXA_X.md 喵~
迁移资产供应链校验喵~
迁移资产不是在旧仓库重新编译的未知副本喵~
正式 Release workflow 会从 Alunixa-Code/Alunixa-X 的稳定 v1.0.6 Release 下载六项资产,并在发布前验证以下条件喵~
- Release 非草稿、非预发布喵~
- 六项源资产状态全部为
uploaded喵~ - 文件名与平台架构精确匹配喵~
- 六个 SHA-256 与 Alunixa X 正式 Release 完全一致喵~
- 最终旧仓库 Release 必须同时存在六项 Codex+++ 和六项 Alunixa X 资产,共 12 项喵~
验证结果喵~
- 前端测试
41/41通过喵~ - i18n plain
837/837与 template78/78通过喵~ - updater
14/14通过喵~ - installers
13/13通过喵~ - manager Windows/发行契约
24/24通过喵~ - core
263/263、manager lib33/33以及其余 workspace 集成测试全部通过喵~ - TypeScript、Vite 生产构建、品牌保护、Rust formatter 与
cargo check --workspace --all-targets全部通过喵~ - 主分支三平台构建 32791051620 全部成功喵~
- 正式十二资产 Release workflow 32792615157 全部成功喵~
Codex+++ v1.2.67 资产 SHA-256喵~
- Windows Setup:
20,158,402字节,65086cc214819c3a9bca3d1b32afbce6d8a4f52c5904eef01d46aba27085f2d2喵~ - Windows ZIP:
25,890,457字节,ca4fbebab2112a010f37f2f2dcb59f2525953c307f6245ed2f87fbad903159bf喵~ - macOS x64 DMG:
31,108,407字节,16edb51687918edab3163184ffc7a2e033b2dd248a951d384bddb1a52883736e喵~ - macOS x64 ZIP:
27,018,244字节,1ccbfedf0e09c4a9610e42efe6e8c3b00b2c285630c9d633371b56badf155c7c喵~ - macOS arm64 DMG:
30,549,935字节,8c28fa2695ec06f9503ffc988a59bee0723fdf7a0aca191bc4c0e583f217ebe8喵~ - macOS arm64 ZIP:
26,455,500字节,2a91d89e63aa8593a5cd40fb1becdf3cfa2a546d94d1619e905c784654118e4e喵~
Alunixa X v1.0.6 迁移资产 SHA-256喵~
- Windows Setup:
20,712,589字节,01726fefd22c24710ddf929a8a0421778b4105e8618201bc822284ed06413c51喵~ - Windows ZIP:
26,432,090字节,a24c0b9e3af52043fe1be0f593838969e675f78289da05904020dac7127648f2喵~ - macOS x64 DMG:
33,526,857字节,71996a13920db19df8dbc2eab690ea24f3ec520f2835df1c00628113b4e9feac喵~ - macOS x64 ZIP:
28,028,989字节,77628ca1d47f2d8c7b2ddac5eede51fb787fddc77aed340dd2c6f77d673db07f喵~ - macOS arm64 DMG:
32,320,366字节,a058ba7293ab147362b15608a67335c11920878aa6c4aa1df7ea0f39bc5b22c3喵~ - macOS arm64 ZIP:
27,455,323字节,90f1e09bd771ffaeb60c272c0a9a5ea54d22624e72702776de6149d348544aab喵~
仓库状态喵~
本 Release 完成核验后,Alunixa-Code/CodexPlusPlusPlus 将归档为只读历史仓库喵~
归档不会删除源码、文档或 Release,旧版管理器仍可读取最终 Release 并下载迁移安装包喵~
Codex++ v1.2.66 · 完整 OpenAI 端点与图片生成
Codex++ v1.2.66:完整 OpenAI 端点与图片生成支持
本版本解决 Codex 能看到 $imagegen Skill、却没有可调用图片工具,以及 Codex++ 代理只放行少量 API 路径的问题喵~
图片生成与编辑
- 新增独立控制台 companion
codex-plus-imagegen-mcp,启动时注册为codex-plus-imagegenMCP server,并向 Codex 提供真实image_gen工具喵~ - 支持通过
/v1/images/generations生成新图,也支持通过/v1/images/edits使用一张或多张本地图片和可选 mask 编辑图片喵~ - 支持模型、尺寸、质量、背景、输出格式、压缩、输入保真和多变体参数喵~
- 兼容上游
b64_json、Base64 image content 和 HTTPS URL 三种结果形式,图片统一保存到CODEX_HOME/generated_images,并以 MCP image content 返回 Codex 直接预览喵~ - Windows 不再从 GUI subsystem launcher 承载 stdio MCP,避免管道出现
os error 232;正式安装包会携带独立 console companion喵~ - Windows ZIP、NSIS 安装包、macOS x64/arm64 ZIP 与 DMG 都包含 companion;macOS companion 位于
Codex++.app/Contents/MacOS并参与签名喵~ - MCP 配置只管理 Codex++ 自己的
mcp_servers.codex-plus-imagegen表,不覆盖用户现有 MCP、Skills 或 Plugins;关闭增强或供应商管理时只移除该表喵~
Responses 托管生图
- Responses 直连完整保留
tools: [{"type":"image_generation"}],不会把图片工具从请求中删除或错误改写喵~ response.image_generation_call.*等 SSE 事件和图片结果按原始顺序流式返回,Codex 可以正常处理服务端托管生图喵~- 非 Responses 托管协议继续使用本地
image_genMCP,不伪装不存在的服务端工具喵~
全 HTTP API 端点透明转发
- 在保留 Responses、Chat Completions 和模型目录现有特殊逻辑的基础上,所有
/v1/**路径都进入通用透明代理,新增官方端点无需再修改 Codex++ 路由白名单喵~ - 同时兼容
/v1/v1/**、/codex/v1/**和常见无版本别名,并按供应商 Base URL 规则归一化真实上游地址喵~ - 支持 GET、POST、PUT、PATCH、DELETE、HEAD 和 OPTIONS,完整保留路径参数与查询字符串喵~
- 已覆盖 Images、Audio、Files、Uploads、Batches、Embeddings、Moderations、Fine-tuning、Vector Stores、Videos、Evals、Containers、Assistants、Threads 等 API,后续新增
/v1/**端点也会自动走同一通道喵~ - Codex++ 只负责协议和认证转发,实际端点可用性仍由当前活动供应商是否实现对应 OpenAI API 决定喵~
Realtime WebSocket
- 新增
/v1/realtime等 WebSocket Upgrade 请求透明代理,补齐单靠 HTTP 代理无法覆盖的 Realtime 能力喵~ - 保留查询参数、
OpenAI-Beta和上游选择的Sec-WebSocket-Protocol,并替换为当前活动供应商认证喵~ - Text、Binary、Ping、Pong 和 Close 帧双向透明转发,成功握手后不会把 WebSocket 降级成普通 HTTP喵~
大请求体、流式响应与头部保真
- HTTP 请求体采用 64 MiB 内存加临时文件的混合存储,Content-Length 与 chunked 请求均增量读取,单请求上限为 8 GiB喵~
- 大型图片 multipart、Files、Uploads、视频和其他二进制请求不再要求全部常驻内存喵~
- 请求会替换活动供应商认证,同时保留
Content-Type、Accept、OpenAI-Organization、OpenAI-Project、OpenAI-Beta、Idempotency-Key、Range 等安全端到端头喵~ - 原始 Authorization、Cookie、Host 与 hop-by-hop 头不会泄漏到上游喵~
- 响应保留真实状态码、JSON、SSE、二进制和下载 body,并转发
Content-Disposition、Location、ETag、Cache-Control、Retry-After、OpenAI-*、请求 ID、Range 与内容编码头喵~
请求安全语义
- 通用非幂等请求不会自动重试,也不会在多个聚合供应商之间故障重放,避免图片、上传、Batch、微调或视频任务重复创建和重复计费喵~
- Realtime WebSocket 同样只建立一次上游连接;连接失败会在本地握手前返回明确的代理错误喵~
兼容性与发行修复
- 修复新增 companion 后旧 launcher 自动更新测试错误命中全文件第一个 Windows 条件分支的问题,断言现限定于真实
DefaultLaunchHooks::launch_codex喵~ - 修复 PR 构建 Windows staging 漏复制
codex-plus-imagegen-mcp.exe、导致 NSIS 找不到 companion 的问题,并新增 PR/Release 两套 workflow 的顺序回归测试喵~ - 保持用户仓库
Alunixa-Code/CodexPlusPlusPlus、品牌、更新源、供应商启动前注入和既有服务行为不变喵~
验证
- 前端合约测试
41/41、TypeScript 和 Vite 生产构建通过,构建产物为582.13 kB、gzip178.04 kB,仅有既有 chunk 大小提示喵~ - i18n 校验 plain
816/816、template76/76,品牌保护、renderer/主题 JavaScript 语法、Rust formatter 和差异检查全部通过喵~ - 协议代理专项
67/67通过,覆盖全 HTTP 路由、multipart、二进制、SSE、请求/响应头、图片 API、Responses 托管生图和 Realtime WebSocket喵~ - 完整 Rust workspace 通过,包括 core
263/263、CDP91/91、launcher80/80、relay config117/117、manager33/33、发行契约23/23及其余集成测试和 doc tests喵~ - MCP 隔离 stdio 握手成功,server 为
codex-plus-imagegen、工具为image_gen、版本为1.2.66喵~ - 主分支权威构建 32422226590 成功,Windows x64、macOS x64 和 macOS arm64 全部完成构建与上传喵~
- 正式发行工作流 32424278950 成功,版本校验、三平台资产、结构校验和 GitHub Release 发布全部完成喵~
升级说明
安装 v1.2.66 后请通过 Codex++ 启动器启动 Codex,使启动前配置写入 codex-plus-imagegen MCP;供应商必须实现 Images API 或 Responses image_generation,对应生图能力才会返回有效结果喵~
Codex++ 1.2.65
Codex++ v1.2.65 喵~
本版本面向当前新版 Codex Desktop 完成一轮选择性上游同步与兼容修复,重点解决注入资源拆包变化、配置与模型生效、自动压缩阈值不一致、会话恢复和跨平台重启边界问题喵~
同步原则喵~
- 仅手工移植 BigPizzaV3
v1.2.42至v1.2.50中适用于当前分支的实现与修复,没有合并或 cherry-pick 整个上游分支喵~ - 保留
Alunixa-Code/CodexPlusPlusPlus的仓库归属、品牌、更新源、下载入口、赞助内容与 GitHub Actions 发行流程喵~ - 没有同步上游网站、整分支 UI 重构、发行元数据和正式
v1.2.50标签之后的权限行为改动,避免改变现有服务与 Windows 权限模型喵~ - 没有恢复供应商动态热重载,因为当前 Electron 进程缺少
batch-write-config-valuehandler 时会稳定失败;供应商、模型目录、默认模型和压缩阈值继续由启动器在创建 Codex 前完整注入并通过握手验证喵~
微信与主题喵~
- 新增个人微信连接,支持官方 HTTPS 扫码登录、长轮询收发文本与语音转写、联系人白名单、消息去重和每联系人独立 Codex 会话喵~
- 微信页支持工作目录直接输入或搜索、已有会话快速选择、模型与沙箱选择,并可自动定位 Codex Desktop 包内的 Codex CLI 喵~
- 微信连接默认使用只读沙箱,不回显连接 Token,并拒绝非微信官方域名、HTTP、端口、认证信息、查询和重定向式服务地址喵~
- Dream Skin 接入社区主题市场,支持搜索、排序、在线预览、安装、更新、本地主题库、ZIP 导入和
dreamskin://一键换肤喵~ - 主题下载固定为
https://api.dreamskin.cc且禁用重定向,并校验包大小、文件数、解压大小、SHA-256、平台、版本、manifest、主题身份、图片内容与 Safe CSS 喵~ - Windows/macOS 主题 runtime 与基础 CSS 精确同步至上游正式
888f2bdc,适配当前新聊天主表面、Dock 与 companion,并由跨平台字节哈希测试保护喵~
新版 Codex 注入喵~
- Codex++ 菜单适配当前
ApplicationMenuTopBar,renderer 资源发现覆盖app-initial-*、app-main-*与旧分包,不依赖固定构建哈希或压缩导出名喵~ - 注入目标严格限定为 Codex/ChatGPT 主 renderer,嵌入式浏览器、Quick Chat 和标题偶然包含 Codex 的外部网页不会再抢占增强脚本喵~
- 新增样式模板变量执行回归,避免残留样式引用导致整个 renderer 增强脚本在启动后中断喵~
- CDP bridge 并发处理 binding 请求并使用分代接管,长耗时 Stepwise、导出等请求不再阻塞后端状态,重注入继续携带完整 data bridge 上下文喵~
- 会话菜单新增原生自动命名入口,复用 Codex 自己的标题建议、重命名窗口和保存流程喵~
- 修复会话删除撤销后的侧栏刷新、临时
client-new-thread:ID 误操作、插件远端搜索与本地 fallback 混用、用户脚本运行状态显示和关闭 Stepwise 后仍执行 runtime 的问题喵~
供应商与模型喵~
- 新增供应商内单模型路由,按精确模型名转发到指定 Responses 供应商,并可选改写目标模型名喵~
- 路由保存执行完整正向和反向引用校验,阻止空项、重复、自引用、目标缺失、聚合目标、非 Responses 目标和本地代理循环喵~
/responses/compact及版本前缀会被原样保留,稳定行 key 修复模型路由输入过程中的焦点丢失喵~- 修复 cc-switch 模型目录接管、Codex 26.707+ app-server model patch、自定义 Responses Web Search 与 Lite override 作用域,以及 Fast service tier 的当前资源适配喵~
- Responses VLM 描述块使用
input_text,其他协议继续使用text,避免 Responses 上游拒绝 Chat Completions 形态的内容块喵~ openai_base_url、chatgpt_base_url、provider 表、模型目录与 API Key/Token 类根字段只保留在供应商 profile,不再混入 common config 或跨供应商泄漏喵~
精确 Token 压缩喵~
- 自动压缩继续使用用户输入的精确 Token 阈值,不再按百分比解释或运行时换算喵~
- 修复多模型供应商顶层摘要与当前选中模型不一致,启动、供应商应用和页面模型选择回写会原子同步
model、model_context_window与model_auto_compact_token_limit喵~ - 自定义模型页直接显示实际启动模型、该模型上下文窗口和该模型压缩 Token 阈值喵~
- 例如上下文窗口为
1000000、阈值为990000时,config.toml与模型目录都会原样写入990000,不会再错误沿用其他模型的298000阈值而在约250K至270K提前压缩喵~
会话同步与跨平台稳定性喵~
- Provider Sync 扫描所有受支持的 session/reference 数据库,补齐
local_thread_catalog、归一化 provider,并排除 subagent、memory consolidation、spawn child 与 agent job 等内部任务喵~ - 陈旧修复锁只有在 owner JSON 有效且 PID 明确不存在时才隔离,活动进程、损坏 owner 或无法判断的锁不会被误删喵~
- Remote Control 恢复记录 profile、目标 provider 和 config generation,仅在桌面写入结束且配置仍匹配时更新 rollout/SQLite,配置变化时延期而不误写喵~
- macOS 重启只终止命令行含当前 CDP 端口的
Codex.app/Contents/MacOS/Codex或ChatGPT.app/Contents/MacOS/ChatGPT主进程,明确排除 Codex CLI、Codex Helper 和 Renderer Helper 喵~ - Windows 已有 Codex CDP 无法由进程枚举识别时会继续验证调试端口,避免误关 helper 与 bridge;保留端口冲突继续回退到可用临时端口喵~
- 同步供应商 URL 导入安全、长确认弹窗滚动、
CODEX_SQLITE_HOME统一解析、多数据库删除撤销、ChatGPT-Desktop watcher 和 macOS DMG 短暂失败重试喵~
验证与构建喵~
- 本地前端合约
41/41、TypeScript、Vite 生产构建、i18n plain816/816、template76/76、注入脚本语法、品牌保护、Rust formatter 与差异检查全部通过喵~ - Rust 覆盖 core
258/258、bridge26/26、CDP91/91、launcher80/80、protocol proxy62/62、relay config116/116、watcher21/21、Provider Sync39/39、Storage22/22、manager33/33及其余 workspace/doc tests,最终零失败喵~ - 主分支构建 32369333936 三平台成功喵~
- 标签目标最终复验 32370947171 三平台成功喵~
- 正式发行构建 32372619680 的版本校验、Windows x64、macOS x64、macOS arm64 与发布任务全部成功喵~
下载与 SHA-256 喵~
CodexPlusPlus-1.2.65-windows-x64-setup.exe,18,478,523字节,SHA-2565692cf6c80d934c513ae31f4da9c9e23c3aa6b52a772d0abd5fcac4aecfd6c21喵~CodexPlusPlus-1.2.65-windows-x64.zip,23,009,865字节,SHA-25608555579b54abd8dbff95ac05bf42f97590c9a0edf8f082b7ba027c9784005bb喵~CodexPlusPlus-1.2.65-macos-x64.dmg,29,358,285字节,SHA-256e88318de4c72e97027018431bf3dddc28277a84a7a28910ec08e45d46c2a04bb喵~CodexPlusPlus-1.2.65-macos-x64.zip,24,867,377字节,SHA-256694d20819431633818552e23a1ebb9e4241e9ad59cef012d263c498ba065b13d喵~CodexPlusPlus-1.2.65-macos-arm64.dmg,28,261,769字节,SHA-256567feaae73a65d2f4eb58b9a561fbf33840ec5e859ba2799be97ec8a681c2beb喵~CodexPlusPlus-1.2.65-macos-arm64.zip,24,324,064字节,SHA-2566e0b101c3613923428eb06f52095b76820dc47548f75f00c3d088e42cbb2bcf4喵~
完整代码差异可查看 v1.2.64...v1.2.65 喵~
Codex++ 1.2.64
Codex++ 1.2.64
本版本撤销不可靠的运行时动态重载,改为由 Codex++ 启动器在创建 Codex 进程前完整应用并验证供应商、认证、模型目录和默认模型,同时把所有自动压缩设置统一为直接 Token 阈值喵~
重点修复
- 删除供应商保存、切换和恢复官方配置时对 Electron Host RPC、
batch-write-config-value、CDPRuntime.evaluate、app-server 热重载及 React Query 模型缓存刷新的调用,彻底消除当前 Electron 主进程缺少 handler 时出现的“供应商文件已保存,但动态注入失败”异常喵~ - 管理器现在只负责原子保存设置、供应商文件和回滚备份,并明确提示更改会在下次通过 Codex++ 启动器启动时应用,不再宣称已经修改当前运行中的 Codex 喵~
- 启动器成为供应商配置应用的唯一权威入口,在 Provider Sync 完成后重新读取最新
settings.json,并在创建 Codex 进程前完整写入活动供应商对应的config.toml、auth.json、模型目录和首选模型喵~ - 普通供应商和自定义多模型供应商都经过同一套启动前归一化与校验,不再只有自定义模型供应商能进入完整启动同步链路喵~
- 无效 Base URL、缺失 API Key、无效上下文窗口、空 Token 阈值或超过上下文窗口的阈值会直接阻止保存、导入或切换,并把具体错误返回到管理器界面,不再留下无法启动的半套配置喵~
启动注入与失败保护
- renderer 暴露
window.__codexPlusStartupModelInjection启动握手,启动时从 helper 读取后端设置与模型目录,安装 dispatcher、app-server、Response JSON、消息以及 Statsig/React 模型适配层,并返回实际 debug/helper 端口、模型集合、默认模型和解锁适配状态喵~ - Rust 启动器等待并解析该握手,严格核对实际端口、活动供应商的完整模型集合、默认模型和模型解锁适配层,不能再仅凭脚本执行未抛异常就显示成功喵~
- 注入桥未建立、Promise 超时、脚本异常、模型目录缺项、默认模型不一致或解锁适配未安装时,启动器会写入
failed、关闭 helper 并终止本次刚启动的 Codex,不再进入running_degraded或显示虚假的解锁成功喵~ - 再次点击启动器激活一个已运行的 Codex 时也执行同一握手验证,验证失败会明确返回错误并写入
failed,但不会终止用户原本正在运行的实例喵~ - 本版本的设计边界是“下次由 Codex++ 启动器启动时应用”,不会热修改当前已打开的 Codex 页面,也不再依赖新版 Electron 是否实现私有配置 handler 喵~
自动压缩 Token 阈值
- 普通供应商与自定义供应商的每个模型都直接填写正整数 Token 阈值,不再填写百分比,也不会在运行时把用户输入再次换算喵~
- 例如上下文窗口为
1000000、压缩阈值为990000时,config.toml和模型目录都会原样写入990000,模型在该 Token 位置触发自动压缩喵~ - 开启自动压缩时要求上下文窗口有效、阈值大于零且不超过上下文窗口,自定义多模型供应商逐模型执行同样校验喵~
- 关闭自动压缩会清空设置值,并主动删除
config.toml中旧的model_auto_compact_token_limit,避免关闭后残留配置继续生效喵~ - 旧
autoCompactPercent仅用于一次升级迁移且不再序列化,只有尚无 Token 阈值时才会按旧百分比计算,例如200000 + 80%迁移为160000,已有 Token 值始终优先喵~
主要代码变化
- 删除
crates/codex-plus-core/src/codex_config_reload.rs及其导出,移除管理器、bridge 和 renderer 中的动态配置重载事务、原生模型二次刷新、旧 runtime 链式调用和缓存刷新实现喵~ - 重构
apps/codex-plus-launcher/src/main.rs与crates/codex-plus-core/src/launcher.rs,加入 Provider Sync 后二次读取、启动前全供应商应用、启动握手等待、严格验证和失败关闭流程喵~ - 更新
apps/codex-plus-manager/src-tauri/src/commands.rs、App.tsx与英文文案,传播归一化错误并统一采用下次启动生效的交互语义喵~ - 更新
crates/codex-plus-core/src/settings.rs、relay_config.rs、model_catalog.rs与assets/inject/renderer-inject.js,实现 Token 阈值权威字段、旧百分比迁移、启动目录注入和可验证启动 Promise 喵~ - 工作区、管理器、锁文件和 Tauri 配置版本统一升级为
1.2.64,并在CHANGELOG.md中记录完整升级行为喵~
验证结果
- 前端 Node 测试
20/20、TypeScript 检查、Vite 生产构建、品牌检查和 renderer JavaScript 语法检查全部通过喵~ - i18n 精确校验通过,plain
734/734、template66/66喵~ cargo fmt --check与git diff --check通过喵~- 完整
cargo test --workspace -- --test-threads=1零失败,其中 core229、CDP83、relay109、launcher79、manager33,其余集成测试与 doc-test 也全部通过喵~ - 主分支构建 30995855874 与发布前记录提交构建 30997078082 均完成 Windows、macOS x64 和 macOS arm64 三平台构建喵~
- 正式发行工作流 30998037803 完成版本校验、Windows x64、macOS x64、macOS arm64、六项资产验证及 GitHub Release 发布喵~
- 按用户要求,本轮没有连接、替换、重启或操作当前 Codex 实例、当前任务、当前 helper 或 CDP 做验收,所有验证来自独立自动化测试和 GitHub Actions 喵~
下载与 SHA-256
CodexPlusPlus-1.2.64-windows-x64-setup.exe,16,305,190 bytes,15.55 MiB,SHA-2569cf9f82691f09253269a79ab0d06667ab74dcd50a885c0835ae10bce487822c1喵~CodexPlusPlus-1.2.64-windows-x64.zip,20,463,681 bytes,19.52 MiB,SHA-256f43b3a196e7a451b5e8fb45d805be1eaf26a8a5ca613cf24c9583a7efd96ac19喵~CodexPlusPlus-1.2.64-macos-x64.dmg,23,960,049 bytes,22.85 MiB,SHA-25604e3903bc6c5d2c6c5be0925d69bec306d4d0fc8c12f184ea7b662f92046ee0c喵~CodexPlusPlus-1.2.64-macos-x64.zip,20,512,892 bytes,19.56 MiB,SHA-256d1718cf0a138f06a230eadfdc31dcb8a150d7d4c65a403ad25d6dc1ac29009d1喵~CodexPlusPlus-1.2.64-macos-arm64.dmg,22,967,223 bytes,21.90 MiB,SHA-256185082b026e23b7545cdf8cbfe2a3db387754f18939602a012ed72337a4cc7d6喵~CodexPlusPlus-1.2.64-macos-arm64.zip,20,023,480 bytes,19.10 MiB,SHA-25694d5205da098023ea879e07221cca051aca530b9fee749d01a5b72e70341bc37喵~
完整差异:v1.2.63...v1.2.64 喵~
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 喵~
Codex++ 1.2.62
Codex++ v1.2.62
本版本集中修复“管理器保存配置后,重启 Codex 配置不生效、模型选择消失或恢复默认,必须反复保存和重启,最后甚至始终无法生效”的持久化故障喵~
问题根因
这不是单一界面问题,而是四条并发与错误处理链路叠加造成的喵~
settings.json读取或 JSON 解析失败时,旧逻辑会静默构造一份完整默认配置,后续任一保存都可能把默认值写回磁盘喵~- 管理器、launcher、helper 和 Codex 页面可能同时写设置,但旧原子写入固定共用
settings.json.tmp,并发时会争用、替换或覆盖同一个临时文件喵~ - Codex 页面刚记录的新模型选择,可能被管理器稍早读取的完整设置快照覆盖,导致
lastUsedModel、model或自定义模型默认项丢失喵~ - 管理器存在多个异步保存入口,较旧请求的响应可能晚于较新请求返回,并反向覆盖界面中的最新状态喵~
现场还确认当前用户设置中的“供应商配置总开关”为关闭状态,也就是 relayProfilesEnabled = false;该状态按设计会阻止启动器把供应商和模型写入 Codex live 配置,是“怎么保存都不生效”的直接阻断因素之一喵~
核心修复
SettingsStore增加跨进程共享/独占文件锁,读取使用共享锁,完整保存、局部修改和模型选择回写使用独占锁,避免多个 Codex++ 进程同时改写设置喵~- SettingsStore 的原子保存改为每次使用唯一临时文件,不再让管理器与 helper 争用固定的
settings.json.tmp喵~ settings.json损坏、暂时不可读或结构不正确时会返回明确错误并停止写入,不再把读取失败伪装成“默认配置读取成功”,因此不会继续用默认值覆盖原文件喵~- Codex 页面记录模型选择改为一次加锁完成的原子读改写,避免读取和写入之间被其他进程插入保存喵~
- 管理器保存完整设置时,会合并磁盘上最新且仍存在于新模型列表中的选择,并同步保留
lastUsedModel、model和自定义模型默认项喵~ - 如果用户主动从模型列表删除当前模型,仍会按新列表正常回退,不会错误恢复已经无效的旧模型喵~
- 管理器所有
save_settings请求进入同一串行队列,只有最新且成功的响应可以更新界面,旧响应不再覆盖新表单喵~ - 设置加载失败时保留当前表单草稿,不再采用失败响应携带的默认设置;供应商切换失败时重新读取已经回滚的持久化状态喵~
- 供应商切换事务现在同时保护
settings.json与 Codex liveconfig.toml/auth.json,切换中的任一步骤失败都会恢复两侧文件,避免重启后读取半套配置喵~ - 第三方供应商导入、cc-switch 导入、Provider 同步记录和图片设置重置均停止使用“读取失败后以默认设置继续写入”的危险路径喵~
- 当“供应商配置总开关”关闭时保存活动供应商,管理器会明确提示配置只会存档且重启 Codex 也不会应用,不再显示误导性的纯成功提示喵~
升级后操作
安装 v1.2.62 后,请在管理器的供应商列表中先开启“供应商配置总开关”,再保存活动供应商并重启 Codex 喵~
本版本不会擅自把这个总开关改为开启,因为它本身是用户可持久化控制的显式设置喵~
如果 settings.json 已经损坏,管理器现在会显示读取错误并停止覆盖;应先根据错误保留或修复原配置,再重新保存,而不是继续生成默认配置喵~
代码范围
crates/codex-plus-core/src/settings.rs:跨进程锁、严格读取、唯一临时文件、原子 mutate、模型选择合并与并发测试喵~apps/codex-plus-manager/src-tauri/src/commands.rs:安全读取、保存和失败响应处理喵~apps/codex-plus-manager/src/App.tsx:保存串行队列、最新响应保护、表单保留和总开关阻断提示喵~crates/codex-plus-core/src/relay_switch.rs:设置与 live 配置双回滚事务喵~crates/codex-plus-core/src/routes.rs、provider_import.rs、official_remote.rs:移除读取失败后默认化写回路径并使用原子修改喵~apps/codex-plus-manager/src/model-windows.test.ts与 Rust 测试:补齐前端竞态、坏 JSON、并发修改、模型保留和回滚覆盖喵~
从 v1.2.61 到 v1.2.62 共修改 17 个文件,新增 522 行、删除 141 行,其中包含版本与项目操作记录喵~
验证结果
- 第二轮完整
cargo test --workspace -- --test-threads=1全部通过,workspace 单元、集成和文档测试零失败,总耗时约 9 分 52 秒喵~ - SettingsStore 21 项测试全部通过,包含损坏 JSON 拒绝默认化、16 路并发 mutation 无丢失和运行时模型选择保留喵~
- 供应商切换 7 项测试全部通过,包含 settings/live 文件双回滚喵~
- 前端 16 项测试、TypeScript、Vite 生产构建、Rust 格式和差异检查全部通过喵~
- i18n 精确校验为 plain
721/721、template64/64,没有缺失词条喵~ - npm audit 仍报告仓库既有 1 个 low 与 2 个 high,本版本没有新增依赖喵~
- 所有验证均未连接、替换、重启或操作当前 Codex 页面、当前任务、当前 helper 与
9229CDP 喵~
GitHub Actions
- 主分支三平台构建 30849067954:Windows、macOS x64、macOS arm64 全部成功喵~
- 正式发行构建 30850220679:版本校验、Windows x64、macOS x64、macOS arm64、六项资产校验和 GitHub Release 发布全部成功喵~
发行资产与 SHA-256
| 文件 | 大小 | SHA-256 |
|---|---|---|
CodexPlusPlus-1.2.62-windows-x64-setup.exe |
16,435,077 B | 0593943590e711f8e459e8ba9eebf8122111cc55c38c0df3d841d622ff500693 |
CodexPlusPlus-1.2.62-windows-x64.zip |
20,736,564 B | 46ef6c13b9b3ce12a6f92b82f8a09847326e387e801049fe6232aa9170893f57 |
CodexPlusPlus-1.2.62-macos-x64.dmg |
24,202,807 B | c96f800136d65b008d53035ceac17b88f5507c0516a28fa06eda6246197623f9 |
CodexPlusPlus-1.2.62-macos-x64.zip |
20,723,666 B | 90f3f2c51c644570be3266783727835ca43623b6e62a55d9728b770afa009c81 |
CodexPlusPlus-1.2.62-macos-arm64.dmg |
23,658,170 B | c1361dfd72211e83721a207436be586ad27acef2a7e4527a720c3c0a0dad455a |
CodexPlusPlus-1.2.62-macos-arm64.zip |
20,231,644 B | a9e0a9e956e21a14db76b63b4a7ef230dd9d6715b896707116098ebadfa0b512 |
完整变更对比:v1.2.61...v1.2.62 喵~
Codex++ 1.2.61
Codex++ v1.2.61
本版集中修复新版 Codex 中共享终端未真正融合、终端固定两分钟释放,以及已发送消息无法编辑三个问题喵~
主要修复
AI 命令真正进入右上角官方终端
- 根因是旧版只为
PreToolUse注册Bashmatcher,而 Codex0.146.0-alpha.9.2已把实际终端工具改为shell_command,导致 Hook 从未命中,模型仍使用自己的独立执行终端喵~ - Windows 现在同时安装
Bash与shell_command两个 matcher,并兼容 Hook 输入中的conversation_id、thread_id、session_id、cwd和workdir字段喵~ - 命中后不再直接运行原命令,而是将命令改写为 Codex++ 阻塞代理,由实例级 broker 交给 renderer 中结构化发现的官方 terminal manager,并通过官方
runHeadlessAction在同一 ConPTY session 中执行喵~ - 右上角终端未打开时,命令仍在官方终端后台无感执行,普通任务界面、布局和焦点不变化;用户随时打开右上角终端即可看到当前命令与实时输出,并可输入密码、
yes/no、回车或Ctrl+C喵~ - 终端 stdout、错误与真实退出码会回传给模型,命令正文、密码和终端输出不会写入诊断日志喵~
终端释放时间改为用户滑块
- “Codex增强”新增“AI 终端释放时间”滑块,范围为
0到5,步长为1,默认值为2喵~ 0显示“立即释放”,命令结果成功回传 broker 后立即关闭对应 AI terminal session;1至5表示最后一次输入或输出后的空闲保留分钟数喵~- 设置使用
codexAppSharedTerminalRetentionMinutes持久化,后端统一限制到0..=5,修改后会立即保存并让已完成的终端重新调度关闭时间喵~ - 完成顺序调整为“先回传输出和退出码,再安排关闭”,避免立即释放模式先销毁终端而让模型永久等待喵~
- 只关闭当前 thread 对应的 AI session,不会关闭用户自己创建的其他终端喵~
修复 Failed to edit message
- 桌面日志的真实错误为
Editing messages is not available for threads using paginated history yet.,根因是 Codex++ v1.2.56 起强制新任务使用historyMode: paginated,而当前 Codex 的消息编辑仍依赖thread/rollback,明确不支持 paginated 历史喵~ - dispatcher 与 app-server 两条请求链路现在都让
thread/start、thread/resume、预热和 host 包装请求使用可回滚的legacy历史模式,恢复会话仍保留同一 thread 上下文喵~ - 同时保留新版
app-initial-*与旧分包的无项目上下文工厂、projectless cwd、输出目录和 workspace root 补丁,避免消息编辑修复重新引入“无项目会话准备失败”喵~ - dispatcher 补丁版本升级到
6、app-server 补丁升级到3、共享终端 runtime 升级到3,同一页面重新注入时会替换旧闭包和旧轮询器喵~
代码变更
crates/codex-plus-core/src/codex_hooks.rs:新增shell_commandmatcher、现代会话/工作目录字段兼容和跨平台 Hook 安装断言喵~crates/codex-plus-core/src/settings.rs:新增共享终端释放时间字段、默认值、反序列化边界、设置合并与规范化喵~assets/inject/renderer-inject.js:加入 runtime v3、动态释放时间、立即释放完成顺序,以及 dispatcher/app-server legacy 历史覆盖喵~apps/codex-plus-manager/src/App.tsx、styles.css、i18n-en.ts:新增0..5滑块、刻度、中英文文案与即时持久化喵~crates/codex-plus-core/tests/cdp_bridge.rs与前端测试:新增官方终端结构、retention 边界、legacy 新建/恢复/预热和滑块源码契约喵~- Rust workspace、Cargo.lock、管理器 package/package-lock 与 Tauri 版本全部统一为
1.2.61喵~
验证结果
- 本地独立自动化验证通过:前端 15 项测试、TypeScript、Vite 生产构建、品牌保护和 JavaScript 语法检查喵~
- i18n 精确覆盖通过:plain
730/730,template65/65喵~ codex-plus-core226 项单元测试与 CDP 注入 82 项测试全部通过喵~- 完整
cargo test --workspace -- --test-threads=1全部通过,所有 workspace 单元、集成与文档测试零失败喵~ - 主分支三平台构建全部成功:Actions 30815264491 喵~
- 正式 Release 构建、六项资产校验与发布全部成功:Actions 30816791086 喵~
- 所有本地验证均未连接、替换或操作当前 Codex 页面、当前任务、
9229CDP 与当前 helper 喵~
下载与 SHA-256
CodexPlusPlus-1.2.61-windows-x64-setup.exe,16,426,015bytes,f7939f1ae4f0b8f688fd796f1c0c3c4e860f236363a408630b61ecc05a18dd06喵~CodexPlusPlus-1.2.61-windows-x64.zip,20,710,370bytes,685e6af69f4f547143071bd99f93b90390474e12fb739afa6713eb0dc09700e6喵~CodexPlusPlus-1.2.61-macos-x64.dmg,24,378,462bytes,a9b159199edff19f0b81dbb1cea9169e18efd580d2ca0d2f0de3928939870e6a喵~CodexPlusPlus-1.2.61-macos-x64.zip,20,856,844bytes,5934d0afd9bb2a4ca364b0bbf3bc433cc7243d94121ab9b3a45e07d811e75909喵~CodexPlusPlus-1.2.61-macos-arm64.dmg,23,274,092bytes,4d41786a0bb0afca64e05702d0cb8752f52bc16988b31121170beea705befed5喵~CodexPlusPlus-1.2.61-macos-arm64.zip,20,328,804bytes,353402763fa4df1a22319776ae19436c79f709793febcfc1f61edf45dd401f2a喵~
完整变更对比:v1.2.60...v1.2.61 喵~
Codex++ 1.2.60
Codex++ 1.2.60:AI 共享终端
本版本在“Codex增强”中加入默认关闭的 AI 共享终端。开启后,模型执行终端命令时会使用 Codex 右上角终端按钮所管理的同一个官方 ConPTY session:终端未打开时界面保持正常,用户随时打开即可查看实时命令与输出,并在密码、yes/no、回车或 Ctrl+C 等交互处直接介入。
核心功能
- 同一个官方终端:
PreToolUseHook 将模型的 Bash 工具命令交给共享终端代理,页面端通过 Codex 官方runHeadlessAction在右上角终端对应的 ConPTY 中执行,不再使用不可见的独立 shell。 - 后台无感运行:用户没有打开终端面板时,不自动弹出面板、不改变布局、不抢焦点;打开右上角终端后看到的是当前 AI 正在使用的 active session。
- 人机混合输入:用户输入沿用 Codex 官方
write(sessionId, data)通道,可输入密码、确认文本、回车和控制字符;AI 与用户共享同一终端状态和实时输出。 - 真实结果回传:模型侧代理会一直阻塞到命令完成,并收到解析后的 stdout、错误信息和真实退出码;PowerShell 命令使用 Base64URL / EncodedCommand 传递,支持多行、引号和敏感字符。
- 两分钟自动清理:命令完成后保留对应 AI 终端两分钟;期间用户输入或后续输出会刷新空闲时间,到期只关闭该 thread 下对应的 AI session,不影响其他手动终端。
稳定性与新版 Codex 兼容
- 新增实例级
SharedTerminalBroker,覆盖提交、租约领取、启动确认、心跳、完成回执和租约到期恢复,helper 与 CDP bridge 共用同一 broker 实例。 - 页面按
create、attach、write、runHeadlessAction、snapshot、conversation-session 和 host-event 方法集合发现官方终端管理器,不依赖资源哈希、旧独立分包、Aht或其他压缩导出名。 - 完整输出通过透明观察官方
handleHostEvent的data/init-log流采集,避免 16 KB snapshot 环形缓冲截断;snapshot 订阅继续负责活动检测与重连恢复,不抢占官方 xterm UI 的唯一registerlistener。 - 页面或 CDP bridge 重连时会使用 broker 保存的官方 session ID 执行
attach,继续跟踪原 ConPTY,而不是创建第二个终端或丢失长命令结果。 - 同一页面一次只领取一条 AI 命令,并在异步加载官方模块前同步占用执行槽,防止并发命令切换 active terminal,让用户始终看到当前等待输入的命令。
- 共享终端 runtime 升级为 v2;重注入时显式停止旧轮询、心跳、关闭计时器和输出订阅,但不关闭仍在运行的 ConPTY,允许新 runtime 按原 session ID 安全接管。
- 共享终端 HTTP 入口仅允许 loopback 来源;诊断日志只记录路由和载荷键名,不记录命令正文、密码或终端输出。
设置与默认行为
- 新开关位置:Codex增强 → AI 共享终端。
- 默认关闭,升级后不会改变现有 AI 命令执行方式。
- 关闭时继续使用已有的 PowerShell 7
pwsh/ Windows PowerShell Hook 路径。 - 开启后共享终端优先;PowerShell 子进程刻意不使用
-NonInteractive,确保Read-Host、密码和确认提示可以由用户介入。
验证结果
- 本地完整
cargo test --workspace -- --test-threads=1全部通过,覆盖 workspace、集成和文档测试,零失败。 - 前端 14 项 Node 测试、TypeScript、Vite 生产构建全部通过。
- i18n 精确校验通过:plain
726/726、template64/64。 - 共享终端 broker、Hook 路由、代理参数、真实 helper HTTP 阻塞、官方终端结构发现、ANSI 清理、snapshot 增量、PowerShell 编码包装、串行领取、runtime 升级和两分钟保留合约测试全部通过。
- JavaScript 语法、Rust 格式、品牌保护和差异检查全部通过。
- 主分支 GitHub Actions 30752842424 的 Windows、macOS x64、macOS arm64 全部成功。
- 正式 Release Actions 30753459263 完成版本/品牌校验、三平台构建、包结构校验、六项资产校验与 Release 发布,全部成功。
下载与 SHA-256
| 平台 | 资产 | SHA-256 |
|---|---|---|
| Windows x64 安装版 | CodexPlusPlus-1.2.60-windows-x64-setup.exe |
97f7887c3d9641b56874a1b94a1adc45b73f05c47fc549b8a7c2d706432d534c |
| Windows x64 便携版 | CodexPlusPlus-1.2.60-windows-x64.zip |
7d85a51987e619c3934a2dc8d99571986e402725d27d6a0a10728ff97191f5cc |
| macOS Intel DMG | CodexPlusPlus-1.2.60-macos-x64.dmg |
24a555d5ac57cfa412f0b155cc36607c2895f18a575ac2da8ea2b367f1dcb178 |
| macOS Intel ZIP | CodexPlusPlus-1.2.60-macos-x64.zip |
4e4919d01b7cee18ea6672de17ccfc43b0dc1a3bde0b8c7281fab633c4d1a89d |
| macOS Apple Silicon DMG | CodexPlusPlus-1.2.60-macos-arm64.dmg |
7d85897943c523f01bf85419db7c862113310a31075a4d7ffd08bef9848b5f11 |
| macOS Apple Silicon ZIP | CodexPlusPlus-1.2.60-macos-arm64.zip |
97805049e081ed3f6bb6195ee1aab2056edb7de01cad5bfa15e5f5adeff188de |
完整变更对比:v1.2.59...v1.2.60
Codex++ 1.2.59
Codex++ 1.2.59
本版本集中修复 Codex Desktop 26.727.6591.0 更新后的模块合并与资源拆包变化,并恢复无项目会话、项目移动刷新以及插件市场兼容链路喵~
重点修复
- 修复持续出现“无项目会话准备失败”的问题喵~
- 根因是新版 Codex 删除了
projectless-thread-*独立资源,并将无项目上下文工厂合并到app-initial-*单体模块,旧注入器仍只查找已经不存在的资源喵~ - 注入器现在同时兼容旧版独立分包和新版
app-initial-*单体模块,并根据projectless-thread-cwd、projectlessOutputDirectory、workspaceRoots三项运行时契约发现真正的上下文工厂喵~ - 预热和正式
thread/start都会生成有效 cwd、输出目录与 workspace root,不再依赖资源哈希或压缩导出名喵~
其他新版兼容修复
- 修复项目移动后侧栏会话列表可能不刷新的问题喵~
- 删除对旧资源
app-server-manager-signals-C1h8B-R-.js和压缩导出rn的硬编码,改为结构化发现 dispatcher,并发送refresh-recent-conversations-for-host喵~ - 插件市场客户端补丁现在对新版已删除的
app-server-manager-signals-*使用可选加载与兼容降级,不再因资源不存在而持续报告异常喵~ - 现有 bridge 请求/响应扩展保持生效,没有对新版闭包内部、无法可靠替换的 app-server 请求函数实施不可信的伪补丁喵~
- 模型解锁仍由 dispatcher、Statsig、React 状态和响应 JSON 多层链路保障,思考等级同步与 Max/Ultra 兼容保持正常喵~
- 补齐上一版“禁用 WSS”设置说明缺失的英文翻译,i18n 字典重新达到精确一致喵~
新版 Codex 审计结果
- 审计真实 Codex
26.727.6591.0的app.asar、运行页面资源和app-initial-cpPdPura.js的 4675 个导出喵~ - 已确认旧
setting-storage-*、vscode-api-*、projectless-thread-*、use-host-config-*与app-server-manager-signals-*独立资源均已不存在喵~ - 已确认设置读写、Host RPC、dispatcher 与无项目上下文工厂均已迁入新版单体模块,并逐项核对现有动态加载与压缩导出假设喵~
验证结果
- 完整
cargo test --workspace -- --test-threads=1通过,涵盖全部 workspace、集成测试和文档测试喵~ - CDP 注入回归测试 81 项通过,覆盖旧分包、新版单体无项目工厂、项目移动刷新去哈希以及可选资源降级喵~
- 前端 14 项 Node 测试、TypeScript 检查、Vite 生产构建、JavaScript 语法、Rust 格式和本地品牌保护全部通过喵~
- i18n 校验达到 plain 724/724、template 64/64 精确一致喵~
- 在真实 Codex 页面重注入
1.2.59后,成功识别上下文工厂导出XX和 dispatcher 导出$mt,生成有效 cwd、projectlessOutputDirectory与workspaceRoots喵~ - 真实页面 bridge 返回“后端已连接”,页面没有精确“无项目会话准备失败”提示,项目刷新失败数组为空,思考等级同步正常喵~
GitHub Actions
- 主分支构建
30740691572全部成功,Windows job 完成前端测试、TypeScript、完整 Rust 测试、release 二进制、ZIP 与安装包构建,macOS x64 和 arm64 均完成 DMG、ZIP 与包结构校验喵~ - 正式发行构建
30740698749全部成功,完成版本与品牌校验、Windows x64、macOS x64、macOS arm64 构建、六项资产完整性校验和 GitHub Release 发布喵~
下载资产
CodexPlusPlus-1.2.59-windows-x64-setup.exe,SHA-25633a528c911aa62fecbf0b1963fa0540b27a3112a7352f5526404be503874def0喵~CodexPlusPlus-1.2.59-windows-x64.zip,SHA-25632e0ba31e21f07fa800a39da4c1d0f6d354607749be4055c59b24bf15ccc21af喵~CodexPlusPlus-1.2.59-macos-x64.dmg,SHA-256c623c9622e88f4b4ae5847f8a8efc2488a53a606ba2adfed94d50e1de956ce69喵~CodexPlusPlus-1.2.59-macos-x64.zip,SHA-256e7b169404e3bb0eca13e6119e8b27888091d8a0221323c04971d1dd39b91b356喵~CodexPlusPlus-1.2.59-macos-arm64.dmg,SHA-256a0a1933ecbfebed9ac15ad7b5d57686d2c9643827ffa4d2a3e1ec1ad83c3eb52喵~CodexPlusPlus-1.2.59-macos-arm64.zip,SHA-256bee465ff61d96d179be23574f14e3b4f4a2fb929e57bef4be31ca4c8fec141ac喵~
完整代码差异:v1.2.58...v1.2.59 喵~