Просмотр исходного кода

tui: exit cleanly without hanging after session ends

- Force process exit after TUI thread completes to prevent lingering processes
- Add 5-second timeout to worker shutdown to prevent indefinite hangs during cleanup
Dax Raad 1 месяц назад
Родитель
Сommit
ad3c192837

+ 1 - 0
packages/opencode/src/cli/cmd/tui/thread.ts

@@ -184,5 +184,6 @@ export const TuiThreadCommand = cmd({
     } finally {
       unguard?.()
     }
+    process.exit(0)
   },
 })

+ 6 - 1
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)
   },
 }