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

fix(server): log instance disposal failures from HTTP API lifecycle (#26446)

Kit Langton 3 месяцев назад
Родитель
Сommit
f73a56c223
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      packages/opencode/src/server/routes/instance/httpapi/lifecycle.ts

+ 6 - 1
packages/opencode/src/server/routes/instance/httpapi/lifecycle.ts

@@ -1,9 +1,12 @@
 import { EffectBridge } from "@/effect/bridge"
 import type { InstanceContext } from "@/project/instance"
 import { InstanceStore } from "@/project/instance-store"
+import * as Log from "@opencode-ai/core/util/log"
 import { Effect } from "effect"
 import { HttpEffect, HttpMiddleware, HttpServerRequest } from "effect/unstable/http"
 
+const log = Log.create({ service: "server" })
+
 type MarkedInstance = {
   ctx: InstanceContext
   store: InstanceStore.Interface
@@ -47,6 +50,8 @@ export const disposeMiddleware: HttpMiddleware.HttpMiddleware = (effect) =>
     const marked = disposeAfterResponse.get(request.source)
     if (!marked) return response
     disposeAfterResponse.delete(request.source)
-    yield* Effect.uninterruptible(marked.bridge.run(marked.store.dispose(marked.ctx)))
+    yield* Effect.uninterruptible(marked.bridge.run(marked.store.dispose(marked.ctx))).pipe(
+      Effect.catchCause((cause) => Effect.sync(() => log.warn("instance disposal failed", { cause }))),
+    )
     return response
   })