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

This commit is contained in:
Kit Langton
2026-05-08 23:40:06 -04:00
committed by GitHub
parent c0acf5c43f
commit f73a56c223

View File

@@ -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
})