fix(session): add typed message lookup wrappers (#27269)

This commit is contained in:
Shoubhit Dash
2026-05-13 13:04:07 +05:30
committed by GitHub
parent e9a29e4908
commit fed043a1ad
3 changed files with 49 additions and 10 deletions

View File

@@ -14,7 +14,6 @@ import { SessionStatus } from "@/session/status"
import { SessionSummary } from "@/session/summary"
import { Todo } from "@/session/todo"
import { MessageID, PartID, SessionID } from "@/session/schema"
import { NotFoundError } from "@/storage/storage"
import { NamedError } from "@opencode-ai/core/util/error"
import { Cause, Effect, Option, Schema, Scope } from "effect"
import * as Stream from "effect/Stream"
@@ -105,11 +104,13 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
return yield* session.messages({ sessionID: ctx.params.sessionID })
}
const page = MessageV2.page({
sessionID: ctx.params.sessionID,
limit: ctx.query.limit,
before: ctx.query.before,
})
const page = yield* SessionError.mapStorageNotFound(
MessageV2.pageEffect({
sessionID: ctx.params.sessionID,
limit: ctx.query.limit,
before: ctx.query.before,
}),
)
if (!page.cursor) return page.items
const request = yield* HttpServerRequest.HttpServerRequest
@@ -131,10 +132,7 @@ export const sessionHandlers = HttpApiBuilder.group(InstanceHttpApi, "session",
params: { sessionID: SessionID; messageID: MessageID }
}) {
return yield* SessionError.mapStorageNotFound(
Effect.try({
try: () => MessageV2.get({ sessionID: ctx.params.sessionID, messageID: ctx.params.messageID }),
catch: (error) => error,
}).pipe(Effect.catch((error) => (NotFoundError.isInstance(error) ? Effect.fail(error) : Effect.die(error)))),
MessageV2.getEffect({ sessionID: ctx.params.sessionID, messageID: ctx.params.messageID }),
)
})