From b76ead3fe80a6159fdbfcc9b82c7c6318be68e7f Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Thu, 12 Mar 2026 16:10:52 +0800 Subject: refactor(desktop): rework default server initialization and connection handling (#16965) --- packages/app/src/context/platform.tsx | 5 +++-- packages/app/src/context/server.tsx | 8 +++----- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'packages/app/src/context') diff --git a/packages/app/src/context/platform.tsx b/packages/app/src/context/platform.tsx index 86f3321e4..b8ed58e34 100644 --- a/packages/app/src/context/platform.tsx +++ b/packages/app/src/context/platform.tsx @@ -1,6 +1,7 @@ import { createSimpleContext } from "@opencode-ai/ui/context" import type { AsyncStorage, SyncStorage } from "@solid-primitives/storage" import type { Accessor } from "solid-js" +import { ServerConnection } from "./server" type PickerPaths = string | string[] | null type OpenDirectoryPickerOptions = { title?: string; multiple?: boolean } @@ -58,10 +59,10 @@ export type Platform = { fetch?: typeof fetch /** Get the configured default server URL (platform-specific) */ - getDefaultServerUrl?(): Promise + getDefaultServer?(): Promise /** Set the default server URL to use on app startup (platform-specific) */ - setDefaultServerUrl?(url: string | null): Promise | void + setDefaultServer?(url: ServerConnection.Key | null): Promise | void /** Get the configured WSL integration (desktop only) */ getWslEnabled?(): Promise diff --git a/packages/app/src/context/server.tsx b/packages/app/src/context/server.tsx index 4ff777e2e..1171ca905 100644 --- a/packages/app/src/context/server.tsx +++ b/packages/app/src/context/server.tsx @@ -1,9 +1,8 @@ import { createSimpleContext } from "@opencode-ai/ui/context" import { type Accessor, batch, createEffect, createMemo, onCleanup } from "solid-js" import { createStore } from "solid-js/store" -import { usePlatform } from "@/context/platform" import { Persist, persisted } from "@/utils/persist" -import { checkServerHealth } from "@/utils/server-health" +import { useCheckServerHealth } from "@/utils/server-health" type StoredProject = { worktree: string; expanded: boolean } type StoredServer = string | ServerConnection.HttpBase | ServerConnection.Http @@ -96,7 +95,7 @@ export namespace ServerConnection { export const { use: useServer, provider: ServerProvider } = createSimpleContext({ name: "Server", init: (props: { defaultServer: ServerConnection.Key; servers?: Array }) => { - const platform = usePlatform() + const checkServerHealth = useCheckServerHealth() const [store, setStore, _, ready] = persisted( Persist.global("server", ["server.v3"]), @@ -197,8 +196,7 @@ export const { use: useServer, provider: ServerProvider } = createSimpleContext( const isReady = createMemo(() => ready() && !!state.active) - const fetcher = platform.fetch ?? globalThis.fetch - const check = (conn: ServerConnection.Any) => checkServerHealth(conn.http, fetcher).then((x) => x.healthy) + const check = (conn: ServerConnection.Any) => checkServerHealth(conn.http).then((x) => x.healthy) createEffect(() => { const current_ = current() -- cgit v1.2.3