From ddcb32ae0b55581d56e5c4a199e3fb8c7b97409b Mon Sep 17 00:00:00 2001 From: Dax Date: Thu, 19 Mar 2026 19:32:59 -0400 Subject: [PATCH] refactor(tui): replace Bun-specific APIs with portable alternatives (#18304) --- packages/opencode/src/cli/cmd/tui/routes/session/index.tsx | 4 ++-- packages/opencode/src/cli/cmd/tui/worker.ts | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx index 7456742cd..7b54ec287 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/index.tsx @@ -907,12 +907,12 @@ export function Session() { const filename = options.filename.trim() const filepath = path.join(exportDir, filename) - await Bun.write(filepath, transcript) + await Filesystem.write(filepath, transcript) // Open with EDITOR if available const result = await Editor.open({ value: transcript, renderer }) if (result !== undefined) { - await Bun.write(filepath, result) + await Filesystem.write(filepath, result) } toast.show({ message: `Session exported to ${filename}`, variant: "success" }) diff --git a/packages/opencode/src/cli/cmd/tui/worker.ts b/packages/opencode/src/cli/cmd/tui/worker.ts index 408350c52..511182fe8 100644 --- a/packages/opencode/src/cli/cmd/tui/worker.ts +++ b/packages/opencode/src/cli/cmd/tui/worker.ts @@ -8,7 +8,6 @@ import { upgrade } from "@/cli/upgrade" import { Config } from "@/config/config" import { GlobalBus } from "@/bus/global" import { createOpencodeClient, type Event } from "@opencode-ai/sdk/v2" -import type { BunWebSocketData } from "hono/bun" import { Flag } from "@/flag/flag" import { setTimeout as sleep } from "node:timers/promises" @@ -38,7 +37,7 @@ GlobalBus.on("event", (event) => { Rpc.emit("global.event", event) }) -let server: Bun.Server | undefined +let server: Awaited> | undefined const eventStream = { abort: undefined as AbortController | undefined, @@ -120,7 +119,7 @@ export const rpc = { }, async server(input: { port: number; hostname: string; mdns?: boolean; cors?: string[] }) { if (server) await server.stop(true) - server = Server.listen(input) + server = await Server.listen(input) return { url: server.url.toString() } }, async checkUpgrade(input: { directory: string }) { @@ -143,7 +142,7 @@ export const rpc = { Log.Default.info("worker shutting down") if (eventStream.abort) eventStream.abort.abort() await Instance.disposeAll() - if (server) server.stop(true) + if (server) await server.stop(true) }, }