From a6e1aa085f19c1837d6bf7fd2164ada22a5fb239 Mon Sep 17 00:00:00 2001 From: James Long Date: Wed, 20 May 2026 18:35:37 -0400 Subject: [PATCH] fix(tui): default new sessions always to local project (#28541) --- .../src/cli/cmd/tui/component/prompt/index.tsx | 16 ++-------------- packages/opencode/src/cli/cmd/tui/plugin/api.tsx | 1 - .../opencode/src/cli/cmd/tui/routes/home.tsx | 6 +----- packages/plugin/src/tui.ts | 6 +----- 4 files changed, 4 insertions(+), 25 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index e4907dcc27..f4b11fa465 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -64,7 +64,6 @@ import { useTuiConfig } from "../../context/tui-config" export type PromptProps = { sessionID?: string - workspaceID?: string visible?: boolean disabled?: boolean onSubmit?: () => void @@ -201,7 +200,6 @@ export function Prompt(props: PromptProps) { const [cursorVersion, setCursorVersion] = createSignal(0) const currentProviderLabel = createMemo(() => local.model.parsed().provider) const hasRightContent = createMemo(() => Boolean(props.right)) - const defaultWorkspaceID = createMemo(() => props.workspaceID ?? project.workspace.current()) function selectWorkspace(selection: WorkspaceSelection | undefined) { setWorkspaceSelection(selection) @@ -1061,7 +1059,7 @@ export function Prompt(props: PromptProps) { if (sessionID == null) { const workspace = workspaceSelection() const workspaceID = iife(() => { - if (!workspace) return defaultWorkspaceID() + if (!workspace) return undefined if (workspace.type === "none") return undefined if (workspace.type === "existing") return workspace.workspaceID return undefined @@ -1422,17 +1420,7 @@ export function Prompt(props: PromptProps) { | undefined >(() => { const selected = workspaceSelection() - if (!selected) { - const workspaceID = defaultWorkspaceID() - if (props.sessionID || !workspaceID) return - const workspace = project.workspace.get(workspaceID) - return { - type: "existing", - workspaceType: workspace?.type ?? "unknown", - workspaceName: workspace?.name ?? workspaceID, - status: project.workspace.status(workspaceID) ?? "error", - } - } + if (!selected) return if (selected.type === "none") return if (props.sessionID && !workspaceCreating()) return if (selected.type === "new") { diff --git a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx index a704286835..fd6802de23 100644 --- a/packages/opencode/src/cli/cmd/tui/plugin/api.tsx +++ b/packages/opencode/src/cli/cmd/tui/plugin/api.tsx @@ -277,7 +277,6 @@ export function createTuiApi(input: Input): TuiPluginApi { return ( () @@ -73,13 +71,11 @@ export function Home() { } + right={} placeholders={placeholder} /> diff --git a/packages/plugin/src/tui.ts b/packages/plugin/src/tui.ts index d78c607f80..e36d91381d 100644 --- a/packages/plugin/src/tui.ts +++ b/packages/plugin/src/tui.ts @@ -210,7 +210,6 @@ export type TuiPromptRef = { export type TuiPromptProps = { sessionID?: string - workspaceID?: string visible?: boolean disabled?: boolean onSubmit?: () => void @@ -458,12 +457,9 @@ export type TuiHostSlotMap = { app_bottom: {} home_logo: {} home_prompt: { - workspace_id?: string ref?: (ref: TuiPromptRef | undefined) => void } - home_prompt_right: { - workspace_id?: string - } + home_prompt_right: {} session_prompt: { session_id: string visible?: boolean