Skip to content

Codex Manager v0.5.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 01:12

Codex Manager v0.5.0

这是计划通过签名稳定通道发布的 Codex 供应商、本地 Responses 网关与官方订阅管理版本。源码定版本身不代表已签名或 GitHub Release 已公开;正式状态以同一 exact SHA 的 Actions 与 Release 证据为准。

概览

本版本新增 Codex-only 的自定义 Responses 供应商管理与可选本地反代,并把既有 OAuth 登录、认证档案、额度与重置能力整理为“官方订阅”。网关默认不监听、不自动改写 Codex 配置,也不把官方 OAuth token 用作反代凭据。

主要变化

  • 新增表格优先的“供应商与反代”页面:保存名称、Base URL、模型、reasoning effort 和 write-only API Key;普通列表只显示 hasApiKey
  • API Key 与安装级本机 bearer 使用应用专用 macOS Keychain;SQLite 只保存供应商非秘密元数据和用户选择的端口。
  • 用户可显式启动/停止固定 127.0.0.1 的 OpenAI Responses identity gateway,并查看请求、失败、in-flight 和最近错误摘要。
  • 支持 /v1/models/v1/responses/v1/responses/compact;客户端 Authorization 被剥离,响应以受限 header 和字节流透传。
  • 远程上游要求 HTTPS 公网地址,HTTP 只允许显式 loopback;拒绝 userinfo/query/fragment、私网/link-local 等解析结果,并禁用 redirect 和系统代理。
  • 生成 Codex provider 配置片段前显示原生确认。应用不会自动读写 ~/.codex/config.tomlauth.json
  • 官方订阅页面改为“官方登录 / 订阅账户 / 额度与重置”,账户与额度显示本次采集时间;继续复用受信任官方 Codex CLI/App Server、Keychain 档案和显式账户切换。
  • CI 的 push 触发限制到 main,创建正式 tag 不再对同一 exact SHA 重复运行高成本主线 CI。

验证状态

  • implemented:供应商存储、Keychain secret、8 个窄 Tauri commands、loopback 网关、前端/demo、main-only CI 触发边界与适用文档已进入定版源码。
  • tested:定版前基线为 cargo test --workspace 96 passed、2 ignored,npm test 88/88;production build、Clippy -D warnings、文档同步、secret scan、npm/cargo audit 和 diff check 均通过。Provider/Keychain 补偿、DTO 不泄密、公网地址 allowlist、端口/stop、认证前拒绝、header 剥离、响应头/流 idle 超时、SSE 与实际 model helper 均有本机 mock/loopback 覆盖;Playwright 桌面与 390 px demo 无 console error。正式发布还必须由 tag 所指 final exact SHA 的单次主线 CI 和签名工作流重新证明。

兼容性与限制

  • 首发只支持 macOS 13+ arm64 与 macOS Keychain;其他平台没有等价 secret store 时 fail closed。
  • 只支持 OpenAI Responses 同协议直通,不支持 Chat Completions、Anthropic、Gemini、协议转换、provider pool、自动重试/故障转移或自定义 header。
  • 网关不是常驻 helper。配置片段需用户自行合并;停止应用/网关前必须恢复直连,否则仍指向本机端口的 Codex 会请求失败。
  • 没有自动配置 CAS/回滚、退出前恢复、崩溃恢复、真实供应商模型测试、精确 TTFB/wire bytes 或账单对账。
  • 官方订阅不会进入网关池,不提供 refresh token 显示/复制、请求级轮换或后台自动换号。
  • published publicly verified 不等于真实供应商链或 updater 安装链已经验收。

隐私与安全

  • 供应商 API Key 与本机 bearer 不进入 SQLite、普通 WebView DTO、日志、错误、备份或请求记录;敏感配置只在原生确认后临时显示。
  • 网关默认停止、固定 IPv4 loopback、使用随机 bearer,并在读取 body 前校验 Host/Origin/Authorization。请求 body 最大 4 MiB、并发最大 4,响应头和流 idle 均有界超时;停止会等待 listener task 结束。
  • 网关不保存 body/header/query,不把客户端 bearer 发送到上游,并禁止 redirect;官方 OAuth access/refresh token 与反代实现完全隔离。
  • AI Toolbox 仅以 fixed commit 3f2faef5b7a453169d4325d89fab290154233723 进行 clean-room 行为参考;未复制其源码、视觉资产或 AxonHub LGPL fixture。
  • 正式资产必须由受保护的 GitHub release Environment 生成并通过 Developer ID、Hardened Runtime、secure timestamp、双 notarization、stapling、Gatekeeper、updater 签名、provenance 与 attestation 门禁;缺少凭据时 fail closed。

发布状态

  • published:提交时尚未发布。只有同一 final exact SHA 的主线 CI 成功、签名工作流完成九项草稿资产回下载复验、人工 Publish 且 published-mode 公开复验通过后,才能报告为 published publicly verified
  • observed:已观测本地 mock/loopback 自动化、Playwright 桌面/390 px demo 与 unsigned Pre-release 公开资产链;正式签名资产、真实供应商流量和可信旧版本升级链在提交时尚未观测。
  • accepted:否;仍需另行授权的真实 API-key Codex CLI Responses E2E、费用确认、手动配置往返、恢复直连,以及从可信旧签名版本完成检查、下载、验签、安装、重启和核心功能复核。
  • cleanup:签名工作流必须在上传前删除临时证书、Keychain 和签名材料;公开复验后不得在真实 Keychain、config.tomlauth.json 留下测试状态。失败时保留可审计 draft,不覆盖既有 tag/资产。

完整性

正式 Release 必须包含 codex-manager-v0.5.0-aarch64.app.tar.gz、对应 .app.tar.gz.sigcodex-manager-v0.5.0-aarch64.dmgcodex-manager-v0.5.0-licenses.zipcodex-manager-v0.5.0-sbom.zipBUILD-PROVENANCE.jsonSIGNING-EVIDENCE.jsonSHA256SUMS-v0.5.0-signedlatest.json 共九项资产。它们必须绑定 tag 所指 final main exact SHA,并通过外层/内层 SHA-256、GitHub asset digest、updater 密码学验签、app/DMG 签名、公证、stapling、Gatekeeper、provenance、attestation、草稿回下载和公开后匿名复验;最终 tag、source SHA、Release ID、资产大小与校验值以公开 Release 和 Actions evidence 为准。