فهرست منبع

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 2 ماه پیش
والد
کامیت
ad3c192837
2فایلهای تغییر یافته به همراه7 افزوده شده و 1 حذف شده
  1. 1 0
      packages/opencode/src/cli/cmd/tui/thread.ts
  2. 6 1
      packages/opencode/src/cli/cmd/tui/worker.ts

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