1- import { app , BrowserWindow , dialog } from "electron"
2- import type { Event } from "electron"
3- import pkg from "electron-updater"
41import { randomUUID } from "node:crypto"
52import { EventEmitter } from "node:events"
63import { existsSync } from "node:fs"
4+ import { createServer } from "node:net"
75import { homedir } from "node:os"
86import { 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+ }
1216const 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")
1822app . setPath ( "userData" , join ( app . getPath ( "appData" ) , app . isPackaged ? APP_IDS [ CHANNEL ] : "ai.opencode.desktop.dev" ) )
1923const { autoUpdater } = pkg
2024
25+ import type { InitStep , ServerReadyData , SqliteMigrationProgress , WslConfig } from "../preload/types"
2126import { checkAppExists , resolveAppPath , wslPath } from "./apps"
27+ import type { CommandChild } from "./cli"
2228import { installCli , syncCli } from "./cli"
2329import { CHANNEL , UPDATER_ENABLED } from "./constants"
2430import { registerIpcHandlers , sendDeepLinks , sendMenuCommand , sendSqliteMigrationProgress } from "./ipc"
@@ -37,9 +43,6 @@ import {
3743} from "./server"
3844import { createLoadingWindow , createMainWindow , setDockIcon } from "./windows"
3945
40- import type { InitStep , ServerReadyData , SqliteMigrationProgress , WslConfig } from "../preload/types"
41- import type { CommandChild } from "./cli"
42-
4346type ServerConnection =
4447 | { variant : "existing" ; url : string }
4548 | {
@@ -56,16 +59,19 @@ const initEmitter = new EventEmitter()
5659let initStep : InitStep = { phase : "server_waiting" }
5760
5861let mainWindow : BrowserWindow | null = null
59- let loadingWindow : BrowserWindow | null = null
62+ const loadingWindow : BrowserWindow | null = null
6063let sidecar : CommandChild | null = null
61- let loadingComplete = defer < void > ( )
64+ const loadingComplete = defer < void > ( )
6265
6366const pendingDeepLinks : string [ ] = [ ]
6467
6568const serverReady = defer < ServerReadyData > ( )
6669const 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
7076setupApp ( )
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