feat(update): add transactional external updater

This commit is contained in:
chengma
2026-07-13 12:07:59 +08:00
parent 3ad9ffd239
commit bab2609a85
9 changed files with 578 additions and 2 deletions
+4 -2
View File
@@ -3,7 +3,7 @@ id: T-617
title: 独立更新器事务替换与失败恢复
phase: 8
deps: [T-615]
status: TODO
status: DONE
created: 2026-07-13
---
@@ -45,4 +45,6 @@ Windows正在运行的 `cmshopee.exe` 和PyInstaller `_internal/` 可能被锁
## 执行记录
(完成后记录实现、验证命令与结果。)
- 2026-07-13:新增标准库独立更新器入口、结构化plan、父进程退出等待、安装目录事务锁、根项目整体切换、逐步journal、故障逆序回滚及临时目录隐藏启动能力。
- 2026-07-13:新增无控制台单文件 `cmshopee-updater.spec`,构建脚本将更新器纳入release与manifest;Windows 10 / Python 3.10 / PyInstaller 6.11.1实际构建成功,产物约6.7MB且使用windowed bootloader。
- 2026-07-13:干净worktree验证通过:ruff、compileall、完整unittest(408项)和 `git diff --check`。尚未在正式release上人工执行“锁住运行中主程序后自动退出、替换、重启”的端到端验收,该项留给T-618/T-619集成后执行。