diff options
| author | James Long <[email protected]> | 2026-03-09 16:14:19 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-09 16:14:19 -0400 |
| commit | 86cef169404cd52a57c2ce0cec344b0aca5401c3 (patch) | |
| tree | 067421ad26f83322e279984f264ac88966162a1a /packages | |
| parent | ce38997c76c3ebdd0d6b10ec38cb0aa2a57532dd (diff) | |
| download | opencode-86cef169404cd52a57c2ce0cec344b0aca5401c3.tar.gz opencode-86cef169404cd52a57c2ce0cec344b0aca5401c3.zip | |
fix(core): put workspace routing behind OPENCODE_EXPERIMENTAL_WORKSPACES flag (#16775)
Diffstat (limited to 'packages')
5 files changed, 17 insertions, 8 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/app.tsx b/packages/opencode/src/cli/cmd/tui/app.tsx index e939b831d..d5aef34f6 100644 --- a/packages/opencode/src/cli/cmd/tui/app.tsx +++ b/packages/opencode/src/cli/cmd/tui/app.tsx @@ -372,7 +372,7 @@ function App() { dialog.replace(() => <DialogSessionList />) }, }, - ...(Flag.OPENCODE_EXPERIMENTAL_WORKSPACES_TUI + ...(Flag.OPENCODE_EXPERIMENTAL_WORKSPACES ? [ { title: "Manage workspaces", diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx index 49b2d6109..f64dbe533 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/header.tsx @@ -103,7 +103,7 @@ export function Header() { <Match when={session()?.parentID}> <box flexDirection="column" gap={1}> <box flexDirection={narrow() ? "column" : "row"} justifyContent="space-between" gap={narrow() ? 1 : 0}> - {Flag.OPENCODE_EXPERIMENTAL_WORKSPACES_TUI ? ( + {Flag.OPENCODE_EXPERIMENTAL_WORKSPACES ? ( <box flexDirection="column"> <text fg={theme.text}> <b>Subagent session</b> @@ -154,7 +154,7 @@ export function Header() { </Match> <Match when={true}> <box flexDirection={narrow() ? "column" : "row"} justifyContent="space-between" gap={1}> - {Flag.OPENCODE_EXPERIMENTAL_WORKSPACES_TUI ? ( + {Flag.OPENCODE_EXPERIMENTAL_WORKSPACES ? ( <box flexDirection="column"> <Title session={session} /> <WorkspaceInfo workspace={workspace} /> diff --git a/packages/opencode/src/control-plane/workspace-router-middleware.ts b/packages/opencode/src/control-plane/workspace-router-middleware.ts index b48f2fd2b..463a95ef2 100644 --- a/packages/opencode/src/control-plane/workspace-router-middleware.ts +++ b/packages/opencode/src/control-plane/workspace-router-middleware.ts @@ -1,6 +1,5 @@ -import { Instance } from "@/project/instance" import type { MiddlewareHandler } from "hono" -import { Installation } from "../installation" +import { Flag } from "../flag/flag" import { getAdaptor } from "./adaptors" import { Workspace } from "./workspace" import { WorkspaceContext } from "./workspace-context" @@ -38,7 +37,7 @@ async function routeRequest(req: Request) { export const WorkspaceRouterMiddleware: MiddlewareHandler = async (c, next) => { // Only available in development for now - if (!Installation.isLocal()) { + if (!Flag.OPENCODE_EXPERIMENTAL_WORKSPACES) { return next() } diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts index 7c48e99f4..2488e7675 100644 --- a/packages/opencode/src/flag/flag.ts +++ b/packages/opencode/src/flag/flag.ts @@ -57,8 +57,8 @@ export namespace Flag { export const OPENCODE_EXPERIMENTAL_LSP_TOOL = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_LSP_TOOL") export const OPENCODE_DISABLE_FILETIME_CHECK = truthy("OPENCODE_DISABLE_FILETIME_CHECK") export const OPENCODE_EXPERIMENTAL_PLAN_MODE = OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_PLAN_MODE") - export const OPENCODE_EXPERIMENTAL_WORKSPACES_TUI = - OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_WORKSPACES_TUI") + export const OPENCODE_EXPERIMENTAL_WORKSPACES = + OPENCODE_EXPERIMENTAL || truthy("OPENCODE_EXPERIMENTAL_WORKSPACES") export const OPENCODE_EXPERIMENTAL_MARKDOWN = !falsy("OPENCODE_EXPERIMENTAL_MARKDOWN") export const OPENCODE_MODELS_URL = process.env["OPENCODE_MODELS_URL"] export const OPENCODE_MODELS_PATH = process.env["OPENCODE_MODELS_PATH"] diff --git a/packages/opencode/test/control-plane/session-proxy-middleware.test.ts b/packages/opencode/test/control-plane/session-proxy-middleware.test.ts index 369b9152a..c674d95ec 100644 --- a/packages/opencode/test/control-plane/session-proxy-middleware.test.ts +++ b/packages/opencode/test/control-plane/session-proxy-middleware.test.ts @@ -10,12 +10,22 @@ import { Database } from "../../src/storage/db" import { resetDatabase } from "../fixture/db" import * as adaptors from "../../src/control-plane/adaptors" import type { Adaptor } from "../../src/control-plane/types" +import { Flag } from "../../src/flag/flag" afterEach(async () => { mock.restore() await resetDatabase() }) +const original = Flag.OPENCODE_EXPERIMENTAL_WORKSPACES +// @ts-expect-error don't do this normally, but it works +Flag.OPENCODE_EXPERIMENTAL_WORKSPACES = true + +afterEach(() => { + // @ts-expect-error don't do this normally, but it works + Flag.OPENCODE_EXPERIMENTAL_WORKSPACES = original +}) + type State = { workspace?: "first" | "second" calls: Array<{ method: string; url: string; body?: string }> |
