diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index 6d41fe857..9eb296032 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -184,5 +184,6 @@ export const TuiThreadCommand = cmd({ } finally { unguard?.() } + process.exit(0) }, }) diff --git a/packages/opencode/src/cli/cmd/tui/worker.ts b/packages/opencode/src/cli/cmd/tui/worker.ts index e63f10ba8..bb5495c48 100644 --- a/packages/opencode/src/cli/cmd/tui/worker.ts +++ b/packages/opencode/src/cli/cmd/tui/worker.ts @@ -137,7 +137,12 @@ export const rpc = { async shutdown() { Log.Default.info("worker shutting down") if (eventStream.abort) eventStream.abort.abort() - await Instance.disposeAll() + await Promise.race([ + Instance.disposeAll(), + new Promise((resolve) => { + setTimeout(resolve, 5000) + }), + ]) if (server) server.stop(true) }, }