Skip to content

Commit 6531cfc

Browse files
committed
desktop-electon: handle latest version update check properly
1 parent 6ddd13c commit 6531cfc

1 file changed

Lines changed: 29 additions & 15 deletions

File tree

  • packages/desktop-electron/src/main

packages/desktop-electron/src/main/index.ts

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
1-
import { app, BrowserWindow, dialog } from "electron"
2-
import type { Event } from "electron"
3-
import pkg from "electron-updater"
41
import { randomUUID } from "node:crypto"
52
import { EventEmitter } from "node:events"
63
import { existsSync } from "node:fs"
4+
import { createServer } from "node:net"
75
import { homedir } from "node:os"
86
import { join } from "node:path"
9-
import { createServer } from "node:net"
7+
import type { Event } from "electron"
8+
import { app, type BrowserWindow, dialog } from "electron"
9+
import pkg from "electron-updater"
1010

11-
const APP_NAMES: Record<string, string> = { dev: "OpenCode Dev", beta: "OpenCode Beta", prod: "OpenCode" }
11+
const APP_NAMES: Record<string, string> = {
12+
dev: "OpenCode Dev",
13+
beta: "OpenCode Beta",
14+
prod: "OpenCode",
15+
}
1216
const APP_IDS: Record<string, string> = {
1317
dev: "ai.opencode.desktop.dev",
1418
beta: "ai.opencode.desktop.beta",
@@ -18,7 +22,9 @@ app.setName(app.isPackaged ? APP_NAMES[CHANNEL] : "OpenCode Dev")
1822
app.setPath("userData", join(app.getPath("appData"), app.isPackaged ? APP_IDS[CHANNEL] : "ai.opencode.desktop.dev"))
1923
const { autoUpdater } = pkg
2024

25+
import type { InitStep, ServerReadyData, SqliteMigrationProgress, WslConfig } from "../preload/types"
2126
import { checkAppExists, resolveAppPath, wslPath } from "./apps"
27+
import type { CommandChild } from "./cli"
2228
import { installCli, syncCli } from "./cli"
2329
import { CHANNEL, UPDATER_ENABLED } from "./constants"
2430
import { registerIpcHandlers, sendDeepLinks, sendMenuCommand, sendSqliteMigrationProgress } from "./ipc"
@@ -37,9 +43,6 @@ import {
3743
} from "./server"
3844
import { createLoadingWindow, createMainWindow, setDockIcon } from "./windows"
3945

40-
import type { InitStep, ServerReadyData, SqliteMigrationProgress, WslConfig } from "../preload/types"
41-
import type { CommandChild } from "./cli"
42-
4346
type ServerConnection =
4447
| { variant: "existing"; url: string }
4548
| {
@@ -56,16 +59,19 @@ const initEmitter = new EventEmitter()
5659
let initStep: InitStep = { phase: "server_waiting" }
5760

5861
let mainWindow: BrowserWindow | null = null
59-
let loadingWindow: BrowserWindow | null = null
62+
const loadingWindow: BrowserWindow | null = null
6063
let sidecar: CommandChild | null = null
61-
let loadingComplete = defer<void>()
64+
const loadingComplete = defer<void>()
6265

6366
const pendingDeepLinks: string[] = []
6467

6568
const serverReady = defer<ServerReadyData>()
6669
const logger = initLogging()
6770

68-
logger.log("app starting", { version: app.getVersion(), packaged: app.isPackaged })
71+
logger.log("app starting", {
72+
version: app.getVersion(),
73+
packaged: app.isPackaged,
74+
})
6975

7076
setupApp()
7177

@@ -162,7 +168,10 @@ async function initialize() {
162168
const loadingTask = (async () => {
163169
logger.log("setting up server connection")
164170
const serverConnection = await setupServerConnection()
165-
logger.log("server connection ready", { variant: serverConnection.variant, url: serverConnection.url })
171+
logger.log("server connection ready", {
172+
variant: serverConnection.variant,
173+
url: serverConnection.url,
174+
})
166175

167176
const cliHealthCheck = (() => {
168177
if (serverConnection.variant == "cli") {
@@ -175,7 +184,10 @@ async function initialize() {
175184
if (progress.type === "Done") sqliteDone?.resolve()
176185
})
177186
await health.wait
178-
serverReady.resolve({ url: serverConnection.url, password: serverConnection.password })
187+
serverReady.resolve({
188+
url: serverConnection.url,
189+
password: serverConnection.password,
190+
})
179191
}
180192
} else {
181193
serverReady.resolve({ url: serverConnection.url, password: null })
@@ -370,8 +382,10 @@ async function checkUpdate() {
370382
files: updateInfo?.files?.map((file) => file.url) ?? [],
371383
})
372384
const version = result?.updateInfo?.version
373-
if (!version) {
374-
logger.log("no update available", { reason: "provider returned no newer version" })
385+
if (result?.isUpdateAvailable === false || !version) {
386+
logger.log("no update available", {
387+
reason: "provider returned no newer version",
388+
})
375389
return { updateAvailable: false }
376390
}
377391
logger.log("update available", { version })

0 commit comments

Comments
 (0)