Files
u-desktop/docs/04-功能迭代/U-DESKTOP-1.自动升级/任务规划.md
绝尘 cd7247d880 新增: 功能路线图 + 9份需求契约
- feature-roadmap.md: 现有能力盘点 + P1/P2/P3方向 + 竞品参考
- AI深度视差: 远程推理方案(服务端Depth-Anything + 客户端WebGL)
- 自动升级模块文档: 设计规格/任务规划/决策记录
- 9份需求契约: 视频/颜色提取/时间段/番茄钟/播放列表/电池/网页/便签/监控
2026-05-28 19:06:39 +08:00

1.6 KiB
Raw Blame History

自动升级 — 任务规划

创建时间2026-05-28

阶段一:版本基础设施

  • main.go 增加版本变量,-ldflags 编译注入
  • config.go 增加 update_urlauto_check_updateskip_version 字段
  • updater.go 实现版本检查函数 checkUpdate()

阶段二:升级弹窗

  • web/update.html 升级弹窗页面(右下角气泡 + 居中弹窗两种模式)
  • Go 端创建无边框 WebView2 弹窗窗口
  • 弹窗内容渲染:版本号、更新说明、按钮
  • 根据 force 字段切换弹窗位置和按钮

阶段三:升级器程序

  • updater/main.go 独立程序骨架
  • HTTP 下载安装包 + 进度日志
  • SHA256 校验
  • 备份旧版本
  • 替换 + 启动新版本
  • 启动失败自动回滚
  • 日志写入 updater.log

阶段四:主程序集成

  • 主程序释放 updater.exe 到临时目录
  • 构造命令行参数启动 updater
  • 主程序退出
  • 托盘菜单增加"检查更新"

阶段五:发布流程

  • 构建脚本同时构建 u-desktop.exe + updater.exe
  • publish 技能自动生成 version.json版本号 + SHA256 + 下载 URL
  • 上传 version.json 和安装包到 c.1216.top

阶段六:验证

  • 手动模拟版本更新,测试弹窗流程
  • 测试 updater 下载 + 替换 + 重启
  • 测试回滚机制
  • 测试强制升级流程

技术要点

  • 版本号通过 -ldflags "-X main.version=x.x.x" 注入
  • updater.exe 通用设计,参数化驱动,不含业务逻辑
  • 弹窗用 WebView2 无边框窗口,风格与设置窗口一致
  • version.json 放 c.1216.top静态文件