From 70169e66bd73a44121c4cef8e40e5bfc82e70dbd Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Mon, 27 Apr 2026 16:00:46 -0400 Subject: [PATCH] fix(httpapi): include workspace routes in parity check --- packages/opencode/src/server/routes/instance/index.ts | 7 +++++++ packages/opencode/test/server/httpapi-bridge.test.ts | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/opencode/src/server/routes/instance/index.ts b/packages/opencode/src/server/routes/instance/index.ts index c80515b9c3..68b508a9a7 100644 --- a/packages/opencode/src/server/routes/instance/index.ts +++ b/packages/opencode/src/server/routes/instance/index.ts @@ -25,6 +25,7 @@ import { McpPaths } from "./httpapi/mcp" import { SessionPaths } from "./httpapi/session" import { SyncPaths } from "./httpapi/sync" import { TuiPaths } from "./httpapi/tui" +import { WorkspacePaths } from "./httpapi/workspace" import { ProjectRoutes } from "./project" import { SessionRoutes } from "./session" import { PtyRoutes } from "./pty" @@ -145,6 +146,12 @@ export const InstanceRoutes = (upgrade: UpgradeWebSocket): Hono => { app.post(TuiPaths.selectSession, (c) => handler(c.req.raw, context)) app.get(TuiPaths.controlNext, (c) => handler(c.req.raw, context)) app.post(TuiPaths.controlResponse, (c) => handler(c.req.raw, context)) + app.get(WorkspacePaths.adaptors, (c) => handler(c.req.raw, context)) + app.post(WorkspacePaths.list, (c) => handler(c.req.raw, context)) + app.get(WorkspacePaths.list, (c) => handler(c.req.raw, context)) + app.get(WorkspacePaths.status, (c) => handler(c.req.raw, context)) + app.delete(WorkspacePaths.remove, (c) => handler(c.req.raw, context)) + app.post(WorkspacePaths.sessionRestore, (c) => handler(c.req.raw, context)) } return app diff --git a/packages/opencode/test/server/httpapi-bridge.test.ts b/packages/opencode/test/server/httpapi-bridge.test.ts index 0908f40ce8..dac23a654d 100644 --- a/packages/opencode/test/server/httpapi-bridge.test.ts +++ b/packages/opencode/test/server/httpapi-bridge.test.ts @@ -3,6 +3,7 @@ import type { UpgradeWebSocket } from "hono/ws" import { Flag } from "@opencode-ai/core/flag/flag" import { Instance } from "../../src/project/instance" import { InstanceRoutes } from "../../src/server/routes/instance" +import { WorkspaceRoutes } from "../../src/server/routes/control/workspace" import { FilePaths } from "../../src/server/routes/instance/httpapi/file" import * as Log from "@opencode-ai/core/util/log" import { resetDatabase } from "../fixture/db" @@ -57,7 +58,11 @@ describe("HttpApi Hono bridge", () => { const experimental = InstanceRoutes(websocket) const bridge = experimental.routes.slice(0, experimental.routes.length - legacy.routes.length) - const legacyRoutes = [...new Set(legacy.routes.map(routeKey))] + const workspaceRoutes = WorkspaceRoutes().routes.map((route) => ({ + ...route, + path: `/experimental/workspace${route.path === "/" ? "" : route.path}`, + })) + const legacyRoutes = [...new Set([...legacy.routes, ...workspaceRoutes].map(routeKey))] const bridgeRoutes = new Set(bridge.map(routeKey)) expect(legacyRoutes.filter((route) => !bridgeRoutes.has(route))).toEqual([])