feat: 应用自动更新(GitHub Releases)+ 透明圆角图标 (#23) - #29
Conversation
…23) - electron-updater 集成:发布版启动 8s 后自动检查,之后每 6 小时一次; 下载与重启安装均需用户确认(autoDownload/autoInstallOnAppQuit = false) - 侧边栏更新入口:手动检查 / 下载 / 重启安装,含状态推送与错误展示 - 未签名 macOS 安全回退:codesign 探测失败时禁用应用内更新并提示手动 下载 DMG(Squirrel.Mac 无法安全替换未签名 bundle) - 修 macOS 更新载荷:mac.artifactName 改为连字符安全文件名(默认 ProductName 含空格会导致 latest-mac.yml 引用 404);release 工作流 补传 .zip.blockmap - 防重复安装:installRequested 主进程守卫 + renderer in-flight 锁 (异步失败经 error 状态推送复位)+ quitAndInstall try/catch - 图标改为透明 RGBA 圆角 PNG,消除四角白边 - 新增 tests/updates.test.mjs 契约测试;README/PRD 同步更新
Code Review 结论:✅ 可合并(无阻断项)已在干净 worktree 实测: 亮点
非阻断问题(建议后续修)1. 低 · 下载失败后按钮路径断裂 — 2. 低 · 3. 低 · catch 路径从 DOM 反解版本号 — 4. 信息 · 契约测试偏脆 — 5. 信息 · 6. 信息 · renderer 1-3 都是几行的改动,可以本 PR 顺手修或留 issue 跟进。 |
…ck scope, cached version)
# Conflicts: # src/main/main.ts
|
已跟进 review 的 3 个非阻断问题(6e0f78b),并合并 main 解决冲突(1662c90):
冲突解决:main 引入的 验证: |
Closes #23
概述
为 DSH Desktop Hub 接入
electron-updater+ GitHub Releases 更新通道,并修复应用图标白边。更新链路
autoDownload = false、autoInstallOnAppQuit = false,下载与重启安装均需点击确认安全回退(macOS 未签名)
Squirrel.Mac 需替换整个 app bundle,未签名/ad-hoc 构建无法安全完成。主进程用
codesign -dv探测签名状态,失败时禁用应用内更新并提示手动下载 DMG;正式签名后同一链路自动启用。Release 管道修复
mac.artifactName改为连字符安全文件名:默认 ProductName 含空格,导致latest-mac.yml引用的 ZIP 与实际上传文件名不一致(更新 404).zip.blockmap(差量下载必需)并发与错误处理
installRequested守卫防重复quitAndInstallquitAndInstall包 try/catch,失败推 error 状态图标
build/icon.png重生成为透明 RGBA 圆角 PNG,消除 DMG/任务栏四角白边测试
tests/updates.test.mjs:发布源契约、更新链路契约、图标 RGBA 断言npm run verify全绿(96/96);Electron smoke 通过;macOS zip 打包验证latest-mac.yml与产物文件名一致Review 说明
已经一轮多 agent code review(10 findings):2 个 correctness 已修(安装锁复位、RGBA 图标随 diff 提交),4 个 cleanup 已采纳(sendPluginEvent 复用、errorText 提取、守卫去重、codesign 结果缓存),3 个经评估暂不做(理由见会话记录),1 个类型重复受构建约束维持现状。