feat: 重构更新流程 — 无更新不抛异常、用户决定下载、更新详情展示(md文件中的)
【核心重构】
- getLatestVersion() 不再 throw Error,无更新时返回 { version: APP_VERSION }
- checkForUpdates() 先自行预检 → 无更新直发 IPC,有更新才交 electron-updater
- 移除 NO_UPDATE_MESSAGE 常量及所有字符串匹配拦截代码
- HeiXiuProvider 增加 500ms TTL 缓存,避免预检+electron-updater 重复请求 API
【用户体验】
- 检查到新版本后不再自动下载,展示更新内容供用户决定
- 新增"下载更新"按钮(与"安装更新"分离为两步操作)
- 设置页新增"查看详情"弹窗,Markdown 格式化渲染更新日志
- available / downloading / downloaded 三个状态 UI 独立展示
【Bug 修复】
- 测试服务器版本排序:字符串序 → 语义版本序(_version_key),0.0.10 正确 > 0.0.9
- 版本比较:!= → <(_version_key),防止高版本误判为有更新
- get_best_release fallback 同样改为语义版本排序
- Windows cmd set 命令尾部空格 → Invalid URL(.trim() 修复)
- electron-updater 'error' 事件中拦截 NO_UPDATE_MESSAGE → UPDATE_NOT_AVAILABLE
【文档更新】
- CHANGELOG.md、PROJECT.md、UpdateA.md 同步更新架构图和流程说明
This commit is contained in:
@@ -42,4 +42,8 @@ export const BIDIRECTIONAL = {
|
||||
WRITE_CONFIG: 'write-config',
|
||||
/** 文件对话框 */
|
||||
FILE_DIALOG: 'file-dialog',
|
||||
/** safeStorage 加密(明文 → Base64 密文) */
|
||||
SAFESTORAGE_ENCRYPT: 'safe-storage:encrypt',
|
||||
/** safeStorage 解密(Base64 密文 → 明文) */
|
||||
SAFESTORAGE_DECRYPT: 'safe-storage:decrypt',
|
||||
} as const;
|
||||
|
||||
@@ -74,4 +74,8 @@ export interface UpdateCheckResult {
|
||||
forceUpdate: boolean;
|
||||
/** 最低兼容版本(低于此版本必须强制更新) */
|
||||
minimumVersion: string;
|
||||
/** Blockmap 文件下载地址(可选,用于增量更新) */
|
||||
blockMapUrl?: string;
|
||||
/** Blockmap 文件大小(可选,>0 时客户端启用差分下载) */
|
||||
blockMapSize?: number;
|
||||
}
|
||||
|
||||
@@ -7,13 +7,14 @@ export type LogLevel = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
|
||||
|
||||
/** 日志分类 */
|
||||
export type LogCategory =
|
||||
| 'request' // HTTP 请求相关
|
||||
| 'auth' // 登录 / Token / 权限
|
||||
| 'updater' // 自动更新
|
||||
| 'event' // 事件总线
|
||||
| 'app' // 应用生命周期
|
||||
| 'ui' // UI 层错误 / 警告
|
||||
| 'ipc'; // IPC 通信
|
||||
| 'request' // HTTP 请求相关
|
||||
| 'auth' // 登录 / Token / 权限
|
||||
| 'updater' // 自动更新
|
||||
| 'event' // 事件总线
|
||||
| 'app' // 应用生命周期
|
||||
| 'ui' // UI 层错误 / 警告
|
||||
| 'ipc' // IPC 通信
|
||||
| 'safe-storage'; // 安全存储(safeStorage 加密/解密)
|
||||
|
||||
/**
|
||||
* 结构化错误快照
|
||||
|
||||
Reference in New Issue
Block a user