feat: add client release size bytes
This commit is contained in:
+21
@@ -1840,3 +1840,24 @@
|
||||
- 决策:
|
||||
- T-616 第一版不重试敏感词、余额不足、未定价、模型 / 别名不可用、参数错误和 Provider 能力错误;这些属于确定性失败,立即失败并退款或在提交阶段不扣点。
|
||||
- 重试期间不展示 `error` 给轮询客户端,客户端只需看到 `queued + next_attempt_at` 后继续轮询;最终 `failed` 才表示已退款。
|
||||
|
||||
## 2026-07-13 实施:T-617 桌面端版本检查接口增加文件大小字段
|
||||
|
||||
- 状态:DONE。
|
||||
- 背景:桌面端请求 `GET /api/v1/client/releases/latest?platform=windows` 后,需要拿到安装包文件大小,下载完成后与本地文件大小比对,辅助发现下载不完整或文件异常。
|
||||
- 代码变更:
|
||||
- `apps/portal/models.py` / `apps/portal/migrations/0004_downloadrelease_size_bytes.py`:`DownloadRelease` 新增 `size_bytes` 可空正整数字段,单位字节,老发布记录可保持空值。
|
||||
- `apps/portal/admin.py`:客户端下载版本 admin 的下载配置区新增 `size_bytes`,列表页同步展示,便于运营填写和核对。
|
||||
- `apps/api/views.py`:`GET /api/v1/client/releases/latest` 的 `release` 对象新增 `size_bytes`;有值返回整数,未配置返回 `null`;无当前版本或无下载地址时仍返回 `release:null`。
|
||||
- `apps/api/tests.py`:补充版本接口字段白名单、有值返回、空值返回、未发布不返回顶层字段和 admin 字段可见测试。
|
||||
- 文档变更:
|
||||
- `docs/api.md`:更新响应示例、字段说明和客户端校验建议。
|
||||
- `docs/04-architecture.md`:同步 `DownloadRelease.size_bytes` schema、公开版本检查接口元数据口径。
|
||||
- `docs/02-requirements.md` / `docs/routes.md` / `docs/06-tasks.md` / `docs/current-state.md` / `README.md`:同步 T-617 状态和桌面端文件大小校验口径。
|
||||
- 验证:
|
||||
- `py -3.12 manage.py makemigrations --check --dry-run`:通过,No changes detected。
|
||||
- `py -3.12 manage.py check`:通过,0 issues。
|
||||
- `py -3.12 manage.py test apps.api.tests.ClientLatestReleaseApiTests --keepdb --noinput --verbosity 2`:通过,12 tests OK。
|
||||
- `py -3.12 manage.py migrate portal --noinput`:命令 120 秒超时,但随后 `py -3.12 manage.py showmigrations portal` 显示 `portal.0004_downloadrelease_size_bytes` 已应用;未发现残留 `manage.py migrate` 进程。
|
||||
- 测试环境现象:
|
||||
- 测试期仍保留 allauth `account.EmailAddress` 条件唯一约束在 MySQL 上不可创建的既有 `models.W036` 警告。
|
||||
|
||||
Reference in New Issue
Block a user