Skip to content

ChatGPT Switch v0.4.0

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 03:42

Provider compatibility

  • Relay 传输改为显式能力模型:默认使用 HTTP Responses,并只在用户明确选择时启用 Responses WebSocket。旧槽位没有该字段时安全迁移为 HTTP,避免不支持 WSS 的中转站反复重连。
  • Base URL 归一化不再机械给已有网关路径追加 /v1;仅 origin 地址补 /v1。远程明文 HTTP、内嵌凭据、query 和 fragment 继续拒绝。
  • UI、回执和文档明确区分“本地请求路由已应用”和“远端服务已验证”;保存/切换仍不发送 /models 或探测请求。

Runtime and storage safety

  • 新增受管 ChatGPT/Codex 包版本只读采集,以及基于 file identity、SQLite quick_check、schema_version、关键列和稳定 Schema 指纹的能力门禁。请求配置、会话视图和高级存储分别判定;未知结构不再按旧假设写入。
  • “存储”改为“高级存储与恢复实验室”。兼容性不足时全部迁移、冲突、恢复导入、降级和离线 GC 写操作关闭,只保留安全的重新扫描和脱敏排查。
  • 收紧共享 SQLite sidecar 合同:未建立 Relay 视图不再接受 -wal、-shm 或 -journal;既有 hard-link 视图只 checkpoint active 路径,并在前后验证 inactive sidecar 缺失和主库 file identity 未变。
  • Provider 与兼容性失败新增稳定错误码和恢复分类,不再依赖中文/英文自由文本决定 UI 行为。

Architecture and tests

  • 从巨型 commands.rs 提取请求路由应用服务,从 App.tsx 提取兼容性面板,缩小命令/UI 编排边界。
  • 新增 Provider URL/transport、typed error 和进程关闭状态机的 property tests,并补齐 sidecar、未知 Schema、HTTP 默认/WSS 显式、只读降级等回归测试。
  • Rust 工具链固定为 1.94.1,Node 主版本与 direct TypeScript 类型依赖固定;新增文档链接合同检查。

Integration fixes

  • 整合 v0.3.5 后补齐复合主键、SQLite 类型亲和性、writer 关闭后结构复检、全局库 sidecar 句柄交接复核以及错误信封大小限制;兼容性查询移出界面线程。
  • 修复组件清单输出名重复 .json 与工作区绝对路径、依赖图校验问题,文档链接检查同时支持 Windows/POSIX 和 HTML 图片;保留 v0.3.5 的搜索优化、首页和原生测试进程回收修复。

Supply chain and release

  • 为生成的 CycloneDX 组件清单补齐 GitHub SBOM 证明所需的 UUID serialNumber;已有合法标识保持不变,非法标识在签名前拒绝。

  • CI 新增 npm 生产依赖审计、cargo-deny advisories/source/license 门、按锁定依赖生成的 Rust CycloneDX SBOM;tag 发布流程为最终 EXE 生成 GitHub/Sigstore 构建来源与 SBOM attestation,并在 Release 同时公开 codex-switch.cdx.json 供离线审阅。

  • Windows EXE 的 Authenticode 状态为 NotSigned,尚未使用商业代码签名证书。GitHub attestation、SHA-256、UPX 和 PE 合同不能替代 Authenticode 或终端防护扫描。

Upgrade and validation

  • v0.3.5 用户可通过应用内“检查更新”升级;没有保存 transport 的旧槽位按 HTTP Responses 读取,已明确选择 WebSocket 的槽位保留该选择。工具只应用本地配置,不承诺第三方服务已经连通。
  • 保留 v0.3.5 的会话搜索、稳定分页、跨页选择、备份格式和更新器固定 EXE 文件名。Release 附带的 JSON 组件清单不是安装包。
  • 发布检查覆盖前端测试/类型/生产构建、Rust fmt/Clippy/runtime-evidence 测试、文档与发布脚本检查、依赖和许可证检查、最终 EXE 原生验证,以及公开 v0.3.5 到 v0.4.0 的升级和替换失败回滚。构建与发布结果以本版本 GitHub Actions、公开资产及验证记录为准。

发布验证记录

发布提交:a2d874e320fe04a390a1d77467025b1ad9d39c9c。正式产物来自 v0.4.0 标签构建;五个质量、构建与发布任务均通过。

项目 验证结果
Windows x64 程序 codex-switch.exe,2,667,008 字节;公开回下载与同次 CI 产物一致
Rust 组件清单 codex-switch.cdx.json,345,988 字节;公开文件与签名证明中的清单一致
构建来源与 SBOM 证明 GitHub CLI 按本仓库、签名工作流、标签和精确提交验证通过
前端与脚本 209 项前端测试、48 项发布/供应链脚本测试通过
Rust 840 项库测试及相关集成测试通过;格式、Clippy 通过;显式 ignored 专项用例未计入已执行
公开 EXE 原生检查 全新、已初始化、兼容性测试三种隔离环境;各完成 1200×820、900×640、390×844 窗口验证
应用内更新 公开 v0.3.5 → v0.4.0 成功;模拟目标文件占用后正确回滚并启动 v0.3.5

EXE SHA-256:c926b88c394a4f6cebd74ea2e7d9bd4990cc69173db8a435d027eef97173b680
组件清单 SHA-256:f1cbb11661636483827dc978d41db86383ede0ba61287e78971b1bc5faac2884

更新和回滚在隔离安装目录中完成,三个受保护的合成标记文件前后字节一致;未操作真实用户凭据或会话。未验证第三方中转站的真实连通性。

Windows Authenticode:NotSigned。 GitHub 构建/组件清单证明不等于 Windows 商业代码签名。