From 1c2416b6deb1eee856d1fddbf08300cf851a19fc Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Fri, 20 Feb 2026 12:18:39 +0800 Subject: desktop: don't spawn sidecar if default is localhost server --- packages/desktop/src/bindings.ts | 2 ++ packages/desktop/src/index.tsx | 31 ++++++++++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'packages/desktop/src') diff --git a/packages/desktop/src/bindings.ts b/packages/desktop/src/bindings.ts index 67816ad41..6d05bfc56 100644 --- a/packages/desktop/src/bindings.ts +++ b/packages/desktop/src/bindings.ts @@ -35,7 +35,9 @@ export type LoadingWindowComplete = null; export type ServerReadyData = { url: string, + username: string | null, password: string | null, + is_sidecar: boolean, }; export type SqliteMigrationProgress = { type: "InProgress"; value: number } | { type: "Done" }; diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index 98af589dd..4a28e1b49 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -23,7 +23,7 @@ import { relaunch } from "@tauri-apps/plugin-process" import { open as shellOpen } from "@tauri-apps/plugin-shell" import { Store } from "@tauri-apps/plugin-store" import { check, type Update } from "@tauri-apps/plugin-updater" -import { type Accessor, createResource, type JSX, onCleanup, onMount, Show } from "solid-js" +import { createResource, type JSX, onCleanup, onMount, Show } from "solid-js" import { render } from "solid-js/web" import pkg from "../package.json" import { initI18n, t } from "./i18n" @@ -31,7 +31,7 @@ import { UPDATER_ENABLED } from "./updater" import { webviewZoom } from "./webview-zoom" import "./styles.css" import { Channel } from "@tauri-apps/api/core" -import { commands, type InitStep } from "./bindings" +import { commands, ServerReadyData, type InitStep } from "./bindings" import { createMenu } from "./menu" const root = document.getElementById("root") @@ -452,16 +452,19 @@ render(() => { {(data) => { - const server: ServerConnection.Sidecar = { - displayName: "Local Server", - type: "sidecar", - variant: "base", - http: { - url: data().url, - username: "opencode", - password: data().password ?? undefined, - }, + const http = { + url: data.url, + username: data.username ?? undefined, + password: data.password ?? undefined, } + const server: ServerConnection.Any = data.is_sidecar + ? { + displayName: "Local Server", + type: "sidecar", + variant: "base", + http, + } + : { type: "http", http } function Inner() { const cmd = useCommand() @@ -485,10 +488,8 @@ render(() => { ) }, root!) -type ServerReadyData = { url: string; password: string | null } - // Gate component that waits for the server to be ready -function ServerGate(props: { children: (data: Accessor) => JSX.Element }) { +function ServerGate(props: { children: (data: ServerReadyData) => JSX.Element }) { const [serverData] = createResource(() => commands.awaitInitialization(new Channel() as any)) return ( @@ -516,7 +517,7 @@ function ServerGate(props: { children: (data: Accessor) => JSX. } > - {(data) => props.children(data)} + {(data) => props.children(data())} ) -- cgit v1.2.3