From b467518daea702962bf0091e1e55dafcb956e7b5 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2026 07:25:12 +0000 Subject: [PATCH] fix(desktop): preserve macOS app on window close (#40974) Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> --- packages/desktop/src/main/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/desktop/src/main/index.ts b/packages/desktop/src/main/index.ts index 7fb56391a6f..183fc634db0 100644 --- a/packages/desktop/src/main/index.ts +++ b/packages/desktop/src/main/index.ts @@ -6,7 +6,7 @@ import { homedir, tmpdir } from "node:os" import { join } from "node:path" import { getCACertificates, setDefaultCACertificates } from "node:tls" import type { Event } from "electron" -import { app } from "electron" +import { app, BrowserWindow } from "electron" import { Deferred, Effect, Fiber } from "effect" import contextMenu from "electron-context-menu" @@ -408,6 +408,15 @@ const main = Effect.gen(function* () { yield* Fiber.await(loadingTask) + app.on("window-all-closed", () => { + if (process.platform === "darwin") return + app.quit() + }) + app.on("activate", () => { + if (BrowserWindow.getAllWindows().length > 0) return + restoreMainWindows() + }) + const windows = restoreMainWindows() if (windows.length) createMenu(menuDeps) })