Codex Manager v0.5.0
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.toml或auth.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 --workspace96 passed、2 ignored,npm test88/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
releaseEnvironment 生成并通过 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.toml或auth.json留下测试状态。失败时保留可审计 draft,不覆盖既有 tag/资产。
完整性
正式 Release 必须包含 codex-manager-v0.5.0-aarch64.app.tar.gz、对应 .app.tar.gz.sig、codex-manager-v0.5.0-aarch64.dmg、codex-manager-v0.5.0-licenses.zip、codex-manager-v0.5.0-sbom.zip、BUILD-PROVENANCE.json、SIGNING-EVIDENCE.json、SHA256SUMS-v0.5.0-signed 和 latest.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 为准。