Codex Manager v0.2.1
Codex Manager v0.2.1
这是首个进入 Developer ID 签名稳定通道的 macOS arm64 候选版本。GitHub Actions 只会先创建 draft;必须在签名、公证、stapling、Gatekeeper、updater、SBOM、provenance 和全量回下载门禁全部通过并经人工复核后,才允许发布。
主要变化
- 新增 OAuth 工作台:由用户点击启动官方
codex login,读取当前账户、套餐和 ChatGPT Codex 额度窗口。 - 新增 macOS 认证档案:通过原生文件选择器导入 ChatGPT OAuth
auth.json,秘密保存在应用专用 Keychain;支持显式切换、轮换、30 天软删除和恢复。 - 修复活动记录停更:当前
sessions优先于archived_sessions,同一来源按最近修改时间处理,避免历史归档耗尽全局扫描预算。 - 修复活动页刷新链:后台采集成功后通知界面重载;“刷新本地数据”会先执行一次有预算的 reconciliation,再读取当前筛选结果。
- 修复认证档案首次读取失败后反复自动重试的问题;失败后保留手动刷新入口。
- 正式签名链改为 build、sign、draft 三个权限域;签名 job 只执行 SHA-512 固定的 Tauri signer。Release 控制面使用可恢复的 5 分钟 deadline/指数退避状态机,按名称规范化后严格绑定资产记录,并在独立只读 workflow 中支持 draft 与发布后公开复验。
隐私与安全边界
- OAuth token、原始认证 JSON、文件路径、授权/回调 URL 和 App Server 原始响应不会进入 WebView、SQLite 或应用日志。
- 导入只接受权限受限的普通文件,并由经动态签名验证的官方 Codex App Server 校验;file 模式切换使用文件身份、SHA/mtime CAS 和同目录原子替换。
- Codex Manager 不是反向代理,不按请求或后台自动换号。切换会影响之后读取共享活动凭据的 Codex CLI 与 IDE 扩展会话。
macOS 信任与更新链
.app与 DMG 必须使用 Developer ID Application 签名,启用 Hardened Runtime 和 secure timestamp,并分别取得 AppleAccepted公证结果、staple ticket 和 Gatekeeper 接受结果。- updater
.app.tar.gz从已 stapled 的同一.app生成;.sig必须由应用内嵌公钥验签通过。latest.json在 draft 中就固定为https://github.com/ewsun22/codex-manager/releases/download/v0.2.1/codex-manager-v0.2.1-aarch64.app.tar.gz,不得使用 draft 的untagged-*URL;draft 按 asset ID 验证 bytes,人工发布后再匿名验证正式 tag URL 与releases/latest/download/latest.json。 v0.2.0是 unsigned community prerelease,不能作为可信 updater 起点。首个签名版本仍没有更旧的已签名客户端可做真实升级,因此“下载、验签、安装、重启”的 updater 端到端状态需在后续更高 SemVer 版本补验,不能在本版本越级写成accepted。
完整性
Release 必须包含独立 DMG、updater tarball/.sig、latest.json、SBOM ZIP、许可证 ZIP、SIGNING-EVIDENCE.json、BUILD-PROVENANCE.json 和 SHA256SUMS-v0.2.1-signed。provenance 必须嵌入 build/sign toolchain、runner/Xcode、Release/asset ID 与 digest、notary/CDHash/certificate/updater key 绑定。所有资产都由 GitHub artifact attestation 绑定到 exact source SHA,并在 draft 阶段按 asset ID 回下载复验;attestation bundle 与 RELEASE-VERIFICATION.json 只进入独立 Actions evidence artifact。源码压缩包由 GitHub 根据 v0.2.1 tag 自动生成。