From 607fce17dc9432c3bc1009689400733660e6bf1d Mon Sep 17 00:00:00 2001 From: kui123456789 Date: Mon, 30 Mar 2026 18:18:07 +0800 Subject: [PATCH] fix(context-injector): prefix synthetic part ids with prt_ Ensure injected synthetic message parts satisfy OpenCode's part-id schema and avoid new-session Zod validation failures. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/features/context-injector/injector.test.ts | 2 ++ src/features/context-injector/injector.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/features/context-injector/injector.test.ts b/src/features/context-injector/injector.test.ts index 09de376fe..840998222 100644 --- a/src/features/context-injector/injector.test.ts +++ b/src/features/context-injector/injector.test.ts @@ -106,6 +106,8 @@ describe("createContextInjectorMessagesTransformHook", () => { expect( "synthetic" in secondSyntheticPart && secondSyntheticPart.synthetic === true ).toBe(true) + expect(typeof secondSyntheticPart.id).toBe("string") + expect(secondSyntheticPart.id.startsWith("prt_")).toBe(true) expect(secondSyntheticPart.id).toBe(firstSyntheticPart.id) }) diff --git a/src/features/context-injector/injector.ts b/src/features/context-injector/injector.ts index 8a52de914..1fe8850a6 100644 --- a/src/features/context-injector/injector.ts +++ b/src/features/context-injector/injector.ts @@ -148,7 +148,7 @@ export function createContextInjectorMessagesTransformHook( // synthetic part pattern (minimal fields) const syntheticPart = { - id: `synthetic_hook_${sessionID}`, + id: `prt_synthetic_hook_${sessionID}`, messageID: lastUserMessage.info.id, sessionID: (lastUserMessage.info as { sessionID?: string }).sessionID ?? "", type: "text" as const,