Skip to content

Cockpit Tools v1.3.35

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Sep 10:30
· 2 commits to main since this release

更新日志(中文)

[1.3.35] - 2026-09-01

新增

  • Codex Desktop 支持混合模型路由:Codex 实例可选将指定模型或 namespace 分流到已配置的第三方 API,同时让官方订阅模型继续走官方链路;启动预览现提供路由开关、供应商/模型选择和模型可见性同步。
  • 支持 DeepSeek V4 Flash Vision:新增 deepseek-v4-flash-vision-exp 视觉模型及图片输入元数据,Codex 可通过原生直连和 Provider gateway 链路发送 input_image 内容。
  • Cursor 配额失败账号筛选与批量删除:账号列表可快速定位配额查询失败的账号,并一次性删除筛选结果。

变更

  • Codex API Service 异常账号弹框改为纯账号级展示:不再单独显示池级摘要;每个不可用账号会展示对应模型、失败原因,并在可恢复时提供单账号或全部恢复操作。
  • 各平台添加账号弹框尺寸统一:桌面端统一采用 Codex 的 760px 大弹框基准,移动端继续自适应可用宽度。
  • 混合路由生命周期隔离:第三方 Provider gateway 按 Codex profile 独立管理;关闭路由或停止 profile 时会恢复 Cockpit 管理的 config.toml 状态,启动中断或失败也会执行相同的回退清理。
  • 托盘菜单重建合并:150ms 短窗口内的重复重建请求会合并处理,减少账号变更期间的重复磁盘读取。
  • 侧边栏布局跨版本保留:布局保存到数据目录的 ui_preferences.json,升级后自动恢复并兼容旧的平台条目。

修复

  • 恢复 WorkBuddy、CodeBuddy 与 CodeBuddy CN 在新版官方客户端下的额度查询:OAuth 与刷新请求头、WorkBuddy 接口及带版本号的登录参数、个人/企业计费请求体、响应解析、无限额度和 WorkBuddy 共享登录文件布局均与最新版官方行为对齐;刷新失败时保留原额度快照。
  • 修复 Qoder OAuth 授权完成后弹框停留且账号未显示的问题:授权成功现在会确认新账号已写入并出现在列表后自动关闭弹框;列表读取异常或账号不可见时保留弹框并提示失败,避免显示假成功。
  • 修复 Qoder macOS 切号仍复用旧内存会话的问题:现在可以识别并关闭当前版本的 Qoder IDE.app 主进程,再注入凭据并重新启动默认实例。
  • 修复 Codex API Service 激活忽略所选实例的问题:从非默认实例激活时,现在会准备并启动所选 profile,不再固定修改和启动 __default__
  • 对齐 ZCode 3.10.2 客户端的额度查询:请求补齐官方来源元数据与设备标识,避免服务端将请求判定为 parameter error;支持数字字符串形式的余额与重置时间,官方成功但暂无套餐时保留套餐标签并清除旧失败状态。
  • 对齐 Devin/Windsurf 官方额度请求元数据:额度查询会从已安装客户端动态读取产品版本与 Language Server 版本,避免旧的 1.0.0 占位版本被服务端拒绝。
  • 对齐 Claude 官方客户端的新额度响应:账号管理现在支持解析最新版 Claude Desktop 返回的 limits[] 额度封装,覆盖会话、周额度、Sonnet 专属额度和额外用量。
  • 修复 Codex API Service 高流量统计反复复制无界内存事件历史的问题:历史日志改为从 SQLite 流式聚合,运行时只保留最近 100 条事件,统计落盘也不再重复复制事件列表。
  • 过期 Codex 订阅按有效套餐归类:已过期的 Plus/Pro 账号会显示并分组为 FREE,本地 API Service 的免费账号限制也使用有效套餐判断。

感谢 @enenH#2159)、@we1jia#2155)、@HUF457#2110)、@yifayun#2089)、@Jonesxq#1986)和 @TakaSoap#2056)的贡献。

Changelog (English)

[1.3.35] - 2026-09-01

Added

  • Mixed model routing for Codex Desktop: Codex instances can optionally route selected models or namespaces to configured third-party API providers while keeping official subscription models on the official route. The launch preview now provides the routing switch, provider/model selection, and synchronized model visibility.
  • DeepSeek V4 Flash Vision support: The dedicated deepseek-v4-flash-vision-exp model is now exposed with image-input metadata, allowing Codex to send input_image content through the native and provider-gateway paths.
  • Cursor quota-failure filtering and batch deletion: quickly find accounts whose quota lookup failed and delete all filtered failures in one action.

Changed

  • Codex API Service account issues now use an account-only view: the dialog no longer shows a separate pool-level summary; every unavailable account shows the affected model and failure reason, with per-account or bulk recovery when available.
  • Unified account-add dialog sizing across platforms: desktop dialogs now use the same 760px wide-dialog baseline as Codex while continuing to fit the available width on mobile screens.
  • Mixed-routing lifecycle isolation: third-party provider gateways are managed per Codex profile, and disabling routing or stopping a profile restores the Cockpit-managed config.toml state. Aborted or failed launches also perform the same fallback cleanup.
  • Coalesced tray-menu rebuilds: duplicate rebuild requests within a 150 ms window are merged, reducing repeated disk reads during account changes.
  • Sidebar layout survives updates: the layout is persisted to ui_preferences.json in the data directory and restored after upgrades, including remapping legacy platform entries.

Fixed

  • Restored WorkBuddy, CodeBuddy, and CodeBuddy CN quota queries against current official clients: OAuth and refresh headers, WorkBuddy endpoints and versioned login parameters, personal and enterprise billing payloads, response parsing, unlimited quotas, and WorkBuddy's shared sign-in file layout now follow the latest official behavior; failed refreshes preserve the previous quota snapshot.
  • Fixed Qoder OAuth completion leaving the dialog open without showing the account: authorization now confirms that the new account is persisted and visible in the list before closing the dialog; list failures or a missing account keep the dialog open and report failure instead of showing a false success.
  • Fixed Qoder account switching on macOS reusing the previous in-memory session: the current Qoder IDE.app main process is now detected and closed before credentials are injected and the default instance is relaunched.
  • Fixed Codex API Service activation ignoring the selected instance: activating from a non-default instance now prepares and launches that profile instead of always changing and starting __default__.
  • Aligned ZCode quota queries with the 3.10.2 desktop client: official source metadata and device identity headers are now sent so the service does not reject requests as parameter error; numeric-string balances and reset timestamps are accepted, and a successful no-plan response preserves the plan label while clearing stale failures.
  • Aligned Devin/Windsurf quota-request metadata with the official client: quota queries now read the installed product and Language Server versions dynamically instead of sending stale 1.0.0 placeholders that current servers can reject.
  • Aligned Claude Web quota parsing with the current official client: the account manager now reads the limits[] usage envelope (including session, weekly, Sonnet-scoped, and extra-usage meters) returned by the installed Claude desktop client.
  • Fixed Codex API Service high-volume statistics repeatedly copying unbounded in-memory event history: historical logs are now aggregated from SQLite as a stream, the runtime keeps only the latest 100 events, and persistence no longer duplicates the event list.
  • Expired Codex subscriptions are classified by effective plan: expired Plus/Pro accounts now display and group as FREE, and local API Service free-account limits use the effective plan as well.

Thanks @enenH (#2159), @we1jia (#2155), @HUF457 (#2110), @yifayun (#2089), @Jonesxq (#1986), and @TakaSoap (#2056) for their contributions.