fix: 修复自动更新版本判定误判问题

重构自动更新模块的版本比较逻辑,替换原有的semver比较规则为项目自定义的版本序:仅对比主版本号与构建号,忽略beta通道标记,确保同主版本下按构建号排序。新增correctAvailability方法在检查更新与下载前复核版本有效性,避免陈旧的更新信息导致误更新。调整GitHub release拉取逻辑,过滤掉草稿与不符合通道权限的预发布版本。新增src/resources目录下的运行时资源缓存管理系统,包含类型定义、图片解码管线与全局资源注册表,支持LRU内存逐出、引用计数与预算控制。新增系统内存监控的IPC接口与前端API,支持获取进程内存快照用于调试面板。更新auto-update-plan.md文档,补充本次版本判定修复的相关说明。
This commit is contained in:
2026-09-04 18:42:50 +08:00
parent 2c33015926
commit 7d8b7bd433
13 changed files with 827 additions and 31 deletions
+5
View File
@@ -329,6 +329,11 @@ src/
- **runner 通道显式设置 `autoUpdater.channel = "beta"`**:否则当前版本为数字尾号稳定版
(如 `1.2.1-13`)时,`prerelease[0]="13"` 会被当自定义频道 → 通道循环无匹配,
正式版切跑步模式检测不到 beta(已修复,见 updater.ts applyChannel);woker 恢复 `latest`
- **新旧判定覆盖 electron-updater 的纯 semver(项目版本序)**semver 认为同 base 下
`beta.N > N`(字母标识优先)→ 会把 `1.2.5-beta.16` 误判为 `1.2.5-17` 的新版本。
updater.ts `correctAvailability()` 在每次 check 后按**构建号优先**复核:
候选构建号(忽略 beta 前缀)不大于当前 → 回退 not-availabledownload() 同样复核。
语义:base 相同比构建号;beta/正式只是通道标记不参与新旧排序;无构建号视为构建 -1
- 所有旧数字版本(`1.2.1-12` / `1.2.1-2608271921`)都小于 `1.2.1-beta.13`,平滑升级,无需提升 base
## 14. M2 主进程更新模块(2026-08-28UI 待做)