refactor(tui): centralize application exit (#31524)

This commit is contained in:
Dax
2026-06-09 11:46:02 -04:00
committed by GitHub
parent 960eacebcf
commit 37522185d3
32 changed files with 176 additions and 1217 deletions
@@ -1,4 +1,5 @@
import { NamedError } from "@opencode-ai/core/util/error"
import { ConfigErrorV1 } from "@opencode-ai/core/v1/config/error"
import { Cause, Effect } from "effect"
import { HttpRouter, HttpServerError, HttpServerRespondable, HttpServerResponse } from "effect/unstable/http"
@@ -15,6 +16,15 @@ export const errorLayer = HttpRouter.middleware<{ handles: unknown }>()((effect)
if (!defect) return Effect.failCause(cause)
const error = defect.defect
if (
ConfigErrorV1.JsonError.isInstance(error) ||
ConfigErrorV1.InvalidError.isInstance(error) ||
ConfigErrorV1.FrontmatterError.isInstance(error) ||
ConfigErrorV1.DirectoryTypoError.isInstance(error)
) {
return Effect.succeed(HttpServerResponse.jsonUnsafe(error.toObject(), { status: 400 }))
}
const ref = `err_${crypto.randomUUID().slice(0, 8)}`
return Effect.logError("failed", { ref, error, cause: Cause.pretty(cause) }).pipe(
@@ -264,7 +264,7 @@ export function createRoutes(
]),
Layer.provide(Layer.succeed(CorsConfig)(corsOptions)),
Layer.provide(InstanceLayer.layer),
Layer.provide(Observability.layer),
Layer.provideMerge(Observability.layer),
)
}