更新日志(中文)
[1.1.5] - 2026-07-11
新增
- Codex API 服务支持保护绑定 OAuth 账号的额度:可分别为 5 小时和周窗口设置 1% 到 100% 的保留值;任一剩余额度达到保留值时,HTTP、WebSocket、内置网关、sidecar 和会话亲和路由只会从可用池中移除该绑定账号,配额快照缺失、过期、无效或刷新失败时按不可用处理。
- OAuth 额度保护支持持续监控和状态展示:API 服务运行期间每分钟刷新绑定账号额度,并在成功使用后按节流规则补充刷新;sidecar 模式无需重启即可热更新动态配额快照,Codex 账号卡片会在接近或达到保留值时显示生效窗口、剩余额度和保留值。
变更
- 公告弹框改为全应用生效:公告检查由常驻应用层 Host 负责,不再依赖仪表盘是否打开;后台定时、窗口聚焦和恢复可见时会按节流规则刷新,已有弹框关闭后再展示公告,页面切换也不会重复提示。
- Codex 账号选择器与账号总览行为统一:账号总览会保存搜索状态,API 服务成员选择器和 OAuth 绑定选择器复用相同的搜索、套餐与有效性、标签、分组、排序方向和自定义顺序;缺少可用
refresh_token的 OAuth 账号会保留在列表中并显示为不可选和对应说明,不再直接从选择器中消失。 - Codex API Key 用量刷新改为跨页面集中管理:定时刷新会更新适用的 API Key 账号,仪表盘、账号总览和模型供应商管理共享同一份用量缓存;不支持用量查询的供应商会被记住以避免重复请求,手动刷新仍可强制重试。
- 桌面更新和发布资产改为精确匹配目标:Windows MSI 与 NSIS、macOS Apple Silicon 与 Intel,以及 Linux x86_64 和 ARM64 的 AppImage、DEB、RPM 分别使用独立签名清单和稳定文件名;全部目标构建完成前继续保留旧版
latest.json,避免老客户端读取到不完整的发布元数据。
修复
- 修复 Codex 5.6 Responses Lite 请求兼容问题:
gpt-5.6-sol、gpt-5.6-terra和gpt-5.6-luna现在会声明并强制禁用并行工具调用,Responses Lite 请求头会在/responses、/responses/compact、HTTP 和 WebSocket 链路中保留,非 Lite 模型也会保留显式设置的parallel_tool_calls: false。 - 修复 Windows 官方 ChatGPT 启动路径迁移问题:发现逻辑现在优先选择 ChatGPT Store 包;检测到 ChatGPT 后会迁移已保存的官方 Codex Store 路径,排除仅名称命中的辅助程序,同时保留用户自定义可执行文件路径。
- 修复异常 Codex 配额响应被当作满额的问题:缺失或超出范围的
used_percent以及账号准备失败现在会持久化为刷新错误,不再产生误导性的剩余额度或绕过额度保护。
Changelog (English)
[1.1.5] - 2026-07-11
Added
- Codex API Service can protect quota on its bound OAuth account: separate 1-100% reserves can be configured for the 5-hour and weekly windows; HTTP, WebSocket, embedded-gateway, sidecar, and session-affinity routing remove only the bound account from the eligible pool when either remaining quota reaches its reserve, while missing, stale, invalid, or failed quota snapshots fail closed.
- OAuth quota protection is continuously monitored and visible: while API Service is running, the bound account quota refreshes every minute and after successful use with request throttling; sidecar mode hot-reloads the dynamic quota snapshot without restarting, and the Codex account card shows the effective window, remaining quota, and reserve when quota is near or below the configured threshold.
Changed
- Announcement popups now work across the entire app: announcements are checked from a persistent app-level host instead of only when the dashboard is open, with throttled background, focus, and visibility refreshes; popups wait for existing dialogs to close and do not repeat when navigating between pages.
- Codex account selectors now share the account-overview behavior: overview search state is persisted, and the API Service member picker plus OAuth binding selector reuse the same search, plan and validity, tag, group, sort direction, and custom-order rules; OAuth accounts without a usable
refresh_tokenremain visible but disabled with an explanation instead of disappearing from the picker. - Codex API Key usage refresh is centralized across account views: scheduled refreshes update eligible API Key accounts, and cached usage is shared between the dashboard, account overview, and model provider manager; providers without usage-query support are remembered to avoid repeated requests, while manual refresh can force a retry.
- Desktop updates and release assets now resolve the exact target: Windows MSI and NSIS, macOS Apple Silicon and Intel, and Linux AppImage, DEB, and RPM packages for x86_64 and ARM64 receive separate signed manifests and stable asset names; legacy
latest.jsonremains available until all target builds finish so older clients do not receive incomplete release metadata.
Fixed
- Fixed Codex 5.6 Responses Lite request compatibility:
gpt-5.6-sol,gpt-5.6-terra, andgpt-5.6-lunanow advertise and enforce disabled parallel tool calls, the Responses Lite header is preserved across/responses,/responses/compact, HTTP, and WebSocket paths, and non-Lite models retain an explicitparallel_tool_calls: falsesetting. - Fixed Windows official ChatGPT launch-path migration: discovery now prefers the ChatGPT Store package over legacy Codex packages, migrates saved official Codex Store paths when ChatGPT is available, rejects keyword-matching helper executables, and preserves custom executable paths.
- Fixed invalid Codex quota responses being treated as fully available: missing or out-of-range
used_percentvalues and account-preparation failures are persisted as refresh errors instead of producing misleading remaining quota or bypassing quota protection.