docs: pivot update design from LAN/UNC to HTTP transport

- docs/10: HTTP source + Basic Auth; manifest url/sha256/size; download zip +
  verify SHA-256 + extract; HTTP security model; stage notes marked pending
- docs/02/05: add update_user/update_pass; update_source is now an HTTP(S) URL
- tasks 17.18: HTTP pivot task (docs done; code TODO)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-18 08:54:16 +08:00
co-authored by Claude Opus 4.8
parent 275ce852c3
commit 51cefab2db
4 changed files with 83 additions and 45 deletions
+23 -1
View File
@@ -891,7 +891,29 @@
- [x] 降级:源不可达 / robocopy 失败 / marker 缺失 / 坏 manifest 一律启动本地现版本
- [x] 假版本目录验证 6 个用例(更新、幂等、源不可达、未配置源、下载损坏、坏 manifest)全过
- [ ] 接入真实安装结构:`build.ps1` 或新增安装步骤产出 `%LOCALAPPDATA%\CMBot\versions\<ver>\` 版本并排布局
- [ ] 真实内网双机实测
- [ ] 真实双机实测
### 17.18 更新传输统一改为 HTTP
前置阅读:
- `docs/10-lan-update.md`(已整体改为 HTTP:§7 源、§8 流程、§14 安全、§16 阶段)
- `docs/02-prd.md`(`update_source` / `update_user` / `update_pass`)
背景:
- 更新源改为 HTTP(S) 文件服务(已部署 gohttpserver + nginx,HTTP Basic Auth,示例 `http://cm.xiapi.com/`)。§17.16/§17.17 的本地文件版与 UNC/robocopy 版作为历史保留,本任务把传输统一到 HTTP。
任务:
- [x] 文档:`docs/10` 由 UNC/robocopy 全面改为 HTTP(源/清单/流程/安全/阶段);`docs/02`、`docs/05` 同步配置项
- [ ] 配置项 `update_user` / `update_pass` 写入 `DEFAULT_CONFIG`
- [ ] `update_service.check_for_update` 支持 `http(s)://` 源 + Basic Auth(当前仅 `open()` 本地文件,填 URL 静默返回 None),补单测
- [ ] 启动器 `update.ps1` 改 HTTP:带凭据下载 zip → 校验 SHA-256 → 解压到 staging(切换/回滚逻辑不变)
- [ ] manifest 字段由 `source`/`files`/`marker` 改为 `url`/`sha256`/`size`
- [ ] 发布流程脚本:build → 打 zip → 算 SHA-256 → 写 manifest → 上传
- [ ] 生产前将更新源切到 HTTPS、客户端改用只读账号
- [ ] 真实环境端到端实测
## 18. 后续暂缓任务