diff options
| author | Brendan Allan <[email protected]> | 2026-04-24 13:27:36 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-24 13:27:36 +0800 |
| commit | 2e156b8990a1e72cfb231eadafe76e4e60c096ea (patch) | |
| tree | 1a68b80f480b5f6327f77115571699054e76519a /packages/desktop-electron | |
| parent | 3bfe6a1ef6cf41bc7f05339d63ab8d6032c6e8e1 (diff) | |
| download | opencode-2e156b8990a1e72cfb231eadafe76e4e60c096ea.tar.gz opencode-2e156b8990a1e72cfb231eadafe76e4e60c096ea.zip | |
fix(desktop): avoid relaunching without installing updates (#23806)
Diffstat (limited to 'packages/desktop-electron')
| -rw-r--r-- | packages/desktop-electron/src/main/index.ts | 21 | ||||
| -rw-r--r-- | packages/desktop-electron/src/renderer/index.tsx | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/packages/desktop-electron/src/main/index.ts b/packages/desktop-electron/src/main/index.ts index ae9f58118..c9f16606a 100644 --- a/packages/desktop-electron/src/main/index.ts +++ b/packages/desktop-electron/src/main/index.ts @@ -337,11 +337,16 @@ function setupAutoUpdater() { }) } -let updateReady = false +let downloadedUpdateVersion: string | undefined async function checkUpdate() { if (!UPDATER_ENABLED) return { updateAvailable: false } - updateReady = false + if (downloadedUpdateVersion) { + logger.log("returning cached downloaded update", { + version: downloadedUpdateVersion, + }) + return { updateAvailable: true, version: downloadedUpdateVersion } + } logger.log("checking for updates", { currentVersion: app.getVersion(), channel: autoUpdater.channel, @@ -367,7 +372,7 @@ async function checkUpdate() { logger.log("update available", { version }) await autoUpdater.downloadUpdate() logger.log("update download completed", { version }) - updateReady = true + downloadedUpdateVersion = version return { updateAvailable: true, version } } catch (error) { logger.error("update check failed", error) @@ -376,7 +381,15 @@ async function checkUpdate() { } async function installUpdate() { - if (!updateReady) return + if (!downloadedUpdateVersion) { + logger.log("install update skipped", { + reason: "no downloaded update ready", + }) + return + } + logger.log("installing downloaded update", { + version: downloadedUpdateVersion, + }) killSidecar() autoUpdater.quitAndInstall() } diff --git a/packages/desktop-electron/src/renderer/index.tsx b/packages/desktop-electron/src/renderer/index.tsx index 56fe9fa51..91ea1ae07 100644 --- a/packages/desktop-electron/src/renderer/index.tsx +++ b/packages/desktop-electron/src/renderer/index.tsx @@ -170,7 +170,7 @@ const createPlatform = (): Platform => { return window.api.checkUpdate() }, - update: async () => { + updateAndRestart: async () => { const config = await window.api.getWindowConfig().catch(() => ({ updaterEnabled: false })) if (!config.updaterEnabled) return await window.api.installUpdate() |
