diff --git a/apps/desktop/package.json b/apps/desktop/package.json index f3db767f5d3..f676a476b5d 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -191,7 +191,7 @@ "bun-types": "^1.3.1", "code-inspector-plugin": "^1.2.2", "cross-env": "^10.0.0", - "electron": "40.0.0", + "electron": "40.2.1", "electron-builder": "^26.4.0", "electron-extension-installer": "^2.0.0", "electron-vite": "^4.0.0", diff --git a/apps/desktop/src/main/lib/auto-updater.ts b/apps/desktop/src/main/lib/auto-updater.ts index bfd891bd73a..9a4c509d068 100644 --- a/apps/desktop/src/main/lib/auto-updater.ts +++ b/apps/desktop/src/main/lib/auto-updater.ts @@ -204,6 +204,7 @@ export function setupAutoUpdater(): void { autoUpdater.autoDownload = true; autoUpdater.autoInstallOnAppQuit = true; + autoUpdater.disableDifferentialDownload = true; // Allow downgrade for prerelease builds so users can switch back to stable autoUpdater.allowDowngrade = IS_PRERELEASE; @@ -215,42 +216,53 @@ export function setupAutoUpdater(): void { url: UPDATE_FEED_URL, }); + console.info( + `[auto-updater] Initialized: version=${app.getVersion()}, channel=${IS_PRERELEASE ? "canary" : "stable"}, feedURL=${UPDATE_FEED_URL}`, + ); + autoUpdater.on("error", (error) => { if (isNetworkError(error)) { console.info("[auto-updater] Network unavailable, will retry later"); emitStatus(AUTO_UPDATE_STATUS.IDLE); return; } - console.error("[auto-updater] Error during update check:", error); + console.error( + `[auto-updater] Error during update (currentVersion=${app.getVersion()}):`, + error?.message || error, + ); emitStatus(AUTO_UPDATE_STATUS.ERROR, undefined, error.message); }); autoUpdater.on("checking-for-update", () => { - console.info("[auto-updater] Checking for updates..."); + console.info( + `[auto-updater] Checking for updates... (currentVersion=${app.getVersion()}, feedURL=${UPDATE_FEED_URL})`, + ); emitStatus(AUTO_UPDATE_STATUS.CHECKING); }); autoUpdater.on("update-available", (info) => { console.info( - `[auto-updater] Update available: ${info.version}. Downloading...`, + `[auto-updater] Update available: ${app.getVersion()} → ${info.version} (files: ${info.files?.map((f: { url: string }) => f.url).join(", ")})`, ); emitStatus(AUTO_UPDATE_STATUS.DOWNLOADING, info.version); }); - autoUpdater.on("update-not-available", () => { - console.info("[auto-updater] No updates available"); + autoUpdater.on("update-not-available", (info) => { + console.info( + `[auto-updater] No updates available (currentVersion=${app.getVersion()}, latestVersion=${info.version})`, + ); emitStatus(AUTO_UPDATE_STATUS.IDLE); }); autoUpdater.on("download-progress", (progress) => { console.info( - `[auto-updater] Download progress: ${progress.percent.toFixed(1)}%`, + `[auto-updater] Download progress: ${progress.percent.toFixed(1)}% (${(progress.transferred / 1024 / 1024).toFixed(1)}MB / ${(progress.total / 1024 / 1024).toFixed(1)}MB)`, ); }); autoUpdater.on("update-downloaded", (info) => { console.info( - `[auto-updater] Update downloaded (${info.version}). Ready to install.`, + `[auto-updater] Update downloaded: ${app.getVersion()} → ${info.version}. Ready to install.`, ); emitStatus(AUTO_UPDATE_STATUS.READY, info.version); }); diff --git a/bun.lock b/bun.lock index bab3ba04974..6794024b4c6 100644 --- a/bun.lock +++ b/bun.lock @@ -131,7 +131,7 @@ }, "apps/desktop": { "name": "@superset/desktop", - "version": "0.0.68", + "version": "0.0.69", "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.19", "@better-auth/stripe": "1.4.17", @@ -289,7 +289,7 @@ "bun-types": "^1.3.1", "code-inspector-plugin": "^1.2.2", "cross-env": "^10.0.0", - "electron": "40.0.0", + "electron": "40.2.1", "electron-builder": "^26.4.0", "electron-extension-installer": "^2.0.0", "electron-vite": "^4.0.0", @@ -3075,7 +3075,7 @@ "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], - "electron": ["electron@40.0.0", "", { "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^24.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js" } }, "sha512-UyBy5yJ0/wm4gNugCtNPjvddjAknMTuXR2aCHioXicH7aKRKGDBPp4xqTEi/doVcB3R+MN3wfU9o8d/9pwgK2A=="], + "electron": ["electron@40.2.1", "", { "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^24.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js" } }, "sha512-0zOeyN8LB1KHIjVV5jyMmQmkqx3J8OkkVlab3p7vOM28jI46blxW7M52Tcdi6X2m5o2jj8ejOlAh5+boL3w8aQ=="], "electron-builder": ["electron-builder@26.7.0", "", { "dependencies": { "app-builder-lib": "26.7.0", "builder-util": "26.4.1", "builder-util-runtime": "9.5.1", "chalk": "^4.1.2", "ci-info": "^4.2.0", "dmg-builder": "26.7.0", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" }, "bin": { "electron-builder": "cli.js", "install-app-deps": "install-app-deps.js" } }, "sha512-LoXbCvSFxLesPneQ/fM7FB4OheIDA2tjqCdUkKlObV5ZKGhYgi5VHPHO/6UUOUodAlg7SrkPx7BZJPby+Vrtbg=="], @@ -3087,7 +3087,7 @@ "electron-to-chromium": ["electron-to-chromium@1.5.286", "", {}, "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A=="], - "electron-updater": ["electron-updater@6.7.3", "", { "dependencies": { "builder-util-runtime": "9.5.1", "fs-extra": "^10.1.0", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", "semver": "~7.7.3", "tiny-typed-emitter": "^2.1.0" } }, "sha512-EgkT8Z9noqXKbwc3u5FkJA+r48jwZ5DTUiOkJMOTEEH//n5Am6wfQGz7nvSFEA2oIAMv9jRzn5JKTyWeSKOPgg=="], + "electron-updater": ["electron-updater@6.8.2", "", { "dependencies": { "builder-util-runtime": "9.5.1", "fs-extra": "^10.1.0", "js-yaml": "^4.1.0", "lazy-val": "^1.0.5", "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", "semver": "~7.7.3", "tiny-typed-emitter": "^2.1.0" } }, "sha512-czF0Fu8PHHUYtDneJpdtoMWqA2xJFVDi7994+pnZJQ5nZquTTClXB6g/Sj/RCoPpDXoTc0ZbP/8NuJXyJi9qBw=="], "electron-vite": ["electron-vite@4.0.1", "", { "dependencies": { "@babel/core": "^7.27.7", "@babel/plugin-transform-arrow-functions": "^7.27.1", "cac": "^6.7.14", "esbuild": "^0.25.5", "magic-string": "^0.30.17", "picocolors": "^1.1.1" }, "peerDependencies": { "@swc/core": "^1.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@swc/core"], "bin": { "electron-vite": "bin/electron-vite.js" } }, "sha512-QqacJbA8f1pmwUTqki1qLL5vIBaOQmeq13CZZefZ3r3vKVaIoC7cpoTgE+KPKxJDFTax+iFZV0VYvLVWPiQ8Aw=="],