添加 AGC 客户端更新检查与下载能力
Project CI / Repository checks (pull_request) Successful in 9m13s
Project CI / Frontend tests (pull_request) Failing after 2m56s
Project CI / Backend tests (pull_request) Successful in 8m27s
Project CI / Native shell tests (pull_request) Failing after 17m13s

新增 OSS 版本清单检查和更新提示
增加受控安装包下载与完整性校验
补充 Tauri OSS 权限、样式、测试和技术文档
This commit is contained in:
2026-08-31 14:32:47 +08:00
parent c5200c7d45
commit da76cb9056
10 changed files with 412 additions and 7 deletions
@@ -0,0 +1,32 @@
# AGC 客户端更新检查与下载
## 交付范围
AGC 每次启动时由根窗口检查一次公开 OSS 更新清单。清单默认位于
`https://genarrative-assets.oss-cn-shanghai.aliyuncs.com/agc/latest.json`,构建时可用
`VITE_AGC_UPDATE_MANIFEST_URL` 覆盖为同一受信任 OSS 域名下的 HTTPS 地址。客户端版本取
`apps/ai-game-creator-shell/package.json`,通过 `version` 与清单版本比较;只有远端版本更高时显示更新提示。
清单格式:
```json
{
"version": "0.1.13",
"downloadUrl": "https://genarrative-assets.oss-cn-shanghai.aliyuncs.com/agc/0.1.13/Genarrative-AI-Game-Creator.exe",
"sha256": "<64位十六进制摘要>",
"size": 123456789,
"releaseNotes": "修复与改进"
}
```
`downloadUrl` 必须是 HTTPS;如提供 `sha256` / `size`,Tauri 下载时会校验摘要和字节数。点击“下载更新”后,客户端把安装包保存到系统下载目录,安装包安装/替换由操作系统安装器完成。
## 启动与失败策略
- 检查挂在 `WindowChrome` 根组件,覆盖首页、工作台和调试窗口;网络错误、格式错误或版本不高于当前版本均静默忽略,不阻塞客户端启动。
- 更新请求使用单例 Promise,React StrictMode 或同一窗口重复挂载不会重复请求。
- Tauri HTTP capability 与 CSP 仅放行默认 OSS 域名;若更换域名,需同步更新 `capabilities/main.json`、`tauri.conf.json` 和发布环境配置。
## 发布约定
每次发布安装包上传完成后,再上传同一版本的 `agc/latest.json`,确保 `downloadUrl` 指向已存在的 OSS 对象;清单和安装包均使用公开可读对象,不在清单中保存凭据、签名或本地路径。