From 1593c3ed16369001f24252d0091092da8db26bf3 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Tue, 21 Apr 2026 23:28:33 -0400 Subject: [PATCH] refactor(core): migrate MessageV2 internal Cursor to Effect Schema (#23763) --- packages/opencode/src/session/message-v2.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index f1cb6db218..aceecd9b8c 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -638,18 +638,20 @@ export type WithParts = { parts: Part[] } -const Cursor = z.object({ - id: MessageID.zod, - time: z.number(), +const Cursor = Schema.Struct({ + id: MessageID, + time: Schema.Number, }) -type Cursor = z.infer +type Cursor = typeof Cursor.Type + +const decodeCursor = Schema.decodeUnknownSync(Cursor) export const cursor = { encode(input: Cursor) { return Buffer.from(JSON.stringify(input)).toString("base64url") }, decode(input: string) { - return Cursor.parse(JSON.parse(Buffer.from(input, "base64url").toString("utf8"))) + return decodeCursor(JSON.parse(Buffer.from(input, "base64url").toString("utf8"))) }, }