diff options
| author | Kit Langton <[email protected]> | 2026-03-17 19:18:16 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-17 19:18:16 -0400 |
| commit | fee3c196c51329dec4a93095fc01a85d9e7b5dbb (patch) | |
| tree | f4275b2222f32522bd92349fa832a97872b053e5 | |
| parent | 6c047391bb4b9cf2bcb1d104a512ecf225e6d6fd (diff) | |
| download | opencode-fee3c196c51329dec4a93095fc01a85d9e7b5dbb.tar.gz opencode-fee3c196c51329dec4a93095fc01a85d9e7b5dbb.zip | |
add prompt schema validation debug logs (#17812)
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 25 | ||||
| -rw-r--r-- | packages/opencode/src/util/fn.ts | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index bf939c7e2..27a379daa 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1318,6 +1318,31 @@ export namespace SessionPrompt { }, ) + const parsedInfo = MessageV2.Info.safeParse(info) + if (!parsedInfo.success) { + log.error("invalid user message before save", { + sessionID: input.sessionID, + messageID: info.id, + agent: info.agent, + model: info.model, + issues: parsedInfo.error.issues, + }) + } + + parts.forEach((part, index) => { + const parsedPart = MessageV2.Part.safeParse(part) + if (parsedPart.success) return + log.error("invalid user part before save", { + sessionID: input.sessionID, + messageID: info.id, + partID: part.id, + partType: part.type, + index, + issues: parsedPart.error.issues, + part, + }) + }) + await Session.updateMessage(info) for (const part of parts) { await Session.updatePart(part) diff --git a/packages/opencode/src/util/fn.ts b/packages/opencode/src/util/fn.ts index 19c60265b..c75fc1bb5 100644 --- a/packages/opencode/src/util/fn.ts +++ b/packages/opencode/src/util/fn.ts @@ -7,6 +7,9 @@ export function fn<T extends z.ZodType, Result>(schema: T, cb: (input: z.infer<T parsed = schema.parse(input) } catch (e) { console.trace("schema validation failure stack trace:") + if (e instanceof z.ZodError) { + console.error("schema validation issues:", JSON.stringify(e.issues, null, 2)) + } throw e } |
