summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2026-02-20 12:18:39 +0800
committerBrendan Allan <[email protected]>2026-02-20 12:18:39 +0800
commit1c2416b6deb1eee856d1fddbf08300cf851a19fc (patch)
tree39da283d0d2ad02c2c092099bf47ab726ef9244b /packages/desktop/src
parentd86c10816d75837c8f85e7b1ab0de5ff37ecf77b (diff)
downloadopencode-1c2416b6deb1eee856d1fddbf08300cf851a19fc.tar.gz
opencode-1c2416b6deb1eee856d1fddbf08300cf851a19fc.zip
desktop: don't spawn sidecar if default is localhost server
Diffstat (limited to 'packages/desktop/src')
-rw-r--r--packages/desktop/src/bindings.ts2
-rw-r--r--packages/desktop/src/index.tsx31
2 files changed, 18 insertions, 15 deletions
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(() => {
<AppBaseProviders>
<ServerGate>
{(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<ServerReadyData>) => JSX.Element }) {
+function ServerGate(props: { children: (data: ServerReadyData) => JSX.Element }) {
const [serverData] = createResource(() => commands.awaitInitialization(new Channel<InitStep>() as any))
return (
@@ -516,7 +517,7 @@ function ServerGate(props: { children: (data: Accessor<ServerReadyData>) => JSX.
</div>
}
>
- {(data) => props.children(data)}
+ {(data) => props.children(data())}
</Show>
</Show>
)