Repository navigation
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 商业代码签名。