feat(auto-update): 实现全流程自动更新功能与配套界面

- 新增主进程更新服务,支持GitHub官方源与加速源兜底的检查、下载、安装全流程
- 新增独立更新日志页面,支持查看更新说明与更新全流程管理
- 实现更新状态持久化,重启应用可恢复上次未完成的下载进度
- 完善版本管理与构建元数据脚本,优化CI发布流水线
- 补充VersionCard的构建信息展示与更新页跳转逻辑
- 新增更新相关IPC接口、类型定义与全局状态管理
- 清理旧的无用配置项,升级相关依赖包
This commit is contained in:
2026-08-30 20:19:15 +08:00
parent b404ffaef8
commit 4d3e43394c
26 changed files with 2280 additions and 98 deletions
+15
View File
@@ -94,4 +94,19 @@ contextBridge.exposeInMainWorld('electronAPI', {
// Config reset
resetConfig: () => ipcRenderer.invoke('config:reset'),
// Auto-update (main process: electron/updater.ts)
checkForUpdates: (manual = false) => ipcRenderer.invoke('update:check', { manual }),
downloadUpdate: () => ipcRenderer.invoke('update:download'),
pauseUpdate: () => ipcRenderer.invoke('update:pause'),
resumeUpdate: () => ipcRenderer.invoke('update:resume'),
cancelUpdate: () => ipcRenderer.invoke('update:cancel'),
quitAndInstall: () => ipcRenderer.invoke('update:quitAndInstall'),
getUpdateState: () => ipcRenderer.invoke('update:getState'),
getReleaseNotes: (tag?: string) => ipcRenderer.invoke('update:getReleaseNotes', { tag }),
onUpdateStatus: (callback: (data: unknown) => void) => {
const handler = (_event: Electron.IpcRendererEvent, data: unknown) => callback(data);
ipcRenderer.on('update:status', handler);
return () => ipcRenderer.removeListener('update:status', handler);
},
});