summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/cli/cmd/tui/thread.ts12
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({