diff options
| author | Aiden Cline <[email protected]> | 2026-01-09 18:26:32 -0600 |
|---|---|---|
| committer | Aiden Cline <[email protected]> | 2026-01-09 18:26:32 -0600 |
| commit | 075fa2c0e81eb6497b78c91e008f0ac1396f369b (patch) | |
| tree | bd731607dbceed705bd2af4ede59f252c21e0f2d | |
| parent | 8b287caaad7453c958225b8665ee67776f8fdeec (diff) | |
| download | opencode-075fa2c0e81eb6497b78c91e008f0ac1396f369b.tar.gz opencode-075fa2c0e81eb6497b78c91e008f0ac1396f369b.zip | |
fix: instance dispose issue
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/thread.ts | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/thread.ts b/packages/opencode/src/cli/cmd/tui/thread.ts index b9654d339..5e50d38de 100644 --- a/packages/opencode/src/cli/cmd/tui/thread.ts +++ b/packages/opencode/src/cli/cmd/tui/thread.ts @@ -34,9 +34,15 @@ function createWorkerFetch(client: RpcClient): typeof fetch { return fn as typeof fetch } -function createEventSource(client: RpcClient): EventSource { +function createEventSource(client: RpcClient, directory: string): EventSource { return { - on: (handler) => client.on<Event>("event", handler), + on: (handler) => + client.on<Event>("event", (event) => { + handler(event) + if (event.type === "server.instance.disposed") { + client.call("subscribe", { directory }).catch(() => {}) + } + }), } } @@ -140,7 +146,7 @@ export const TuiThreadCommand = cmd({ // Use direct RPC communication (no HTTP) url = "http://opencode.internal" customFetch = createWorkerFetch(client) - events = createEventSource(client) + events = createEventSource(client, cwd) } const tuiPromise = tui({ |
