From 12fa7821372ac14352e4ca3053e844dbe19bd4aa Mon Sep 17 00:00:00 2001
From: LukeParkerDev <10430890+Hona@users.noreply.github.com>
Date: Fri, 17 Apr 2026 10:56:28 +1000
Subject: [PATCH] refactor: treat WSL servers as additive alongside windows
local
Local Server is always Windows-native now; WSL lives as a separate list
of one-or-more distro-bound sidecars spawned alongside it. Manage Servers
shows an Add WSL button on Windows, each WSL server appears as its own
row with remove + retry, and the wizard runs scoped to a new distro.
---
packages/app/src/app.tsx | 10 +-
.../src/components/dialog-select-server.tsx | 285 +++-----
...local-server.tsx => dialog-wsl-server.tsx} | 402 +++++------
packages/app/src/context/platform.tsx | 139 ++--
packages/app/src/context/server.tsx | 7 +
packages/app/src/index.ts | 18 +-
.../desktop-electron/src/main/constants.ts | 3 +-
packages/desktop-electron/src/main/index.ts | 124 ++--
packages/desktop-electron/src/main/ipc.ts | 76 +-
.../desktop-electron/src/main/local-server.ts | 678 ------------------
packages/desktop-electron/src/main/server.ts | 86 ++-
.../desktop-electron/src/main/wsl-servers.ts | 483 +++++++++++++
packages/desktop-electron/src/main/wsl.ts | 15 +-
.../desktop-electron/src/preload/index.ts | 33 +-
.../desktop-electron/src/preload/types.ts | 136 ++--
.../desktop-electron/src/renderer/env.d.ts | 2 +-
.../desktop-electron/src/renderer/index.tsx | 109 +--
17 files changed, 1165 insertions(+), 1441 deletions(-)
rename packages/app/src/components/{dialog-local-server.tsx => dialog-wsl-server.tsx} (58%)
delete mode 100644 packages/desktop-electron/src/main/local-server.ts
create mode 100644 packages/desktop-electron/src/main/wsl-servers.ts
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx
index e0f8a1481..362ac271e 100644
--- a/packages/app/src/app.tsx
+++ b/packages/app/src/app.tsx
@@ -76,7 +76,7 @@ declare global {
__OPENCODE__?: {
updaterEnabled?: boolean
deepLinks?: string[]
- wsl?: boolean
+ activeServer?: string
}
api?: {
setTitlebar?: (theme: { mode: "light" | "dark" }) => Promise
{language.t("app.server.retrying")}
-