From f7b15f124f53bc0d353f071a923c7525c7e1b377 Mon Sep 17 00:00:00 2001 From: Linghong Date: Sat, 5 Sep 2026 11:38:40 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AD=96=E5=88=92V2=E6=BE=84?= =?UTF-8?q?=E6=B8=85=E5=8E=86=E5=8F=B2=E5=AE=8C=E6=95=B4=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一解析回合结果与持久化历史中的问题结构 恢复历史消息中的问题正文、选项标签和选项说明 --- .../project-workspace/planningSessionV2.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/ai-game-creator-shell/src/features/project-workspace/planningSessionV2.ts b/apps/ai-game-creator-shell/src/features/project-workspace/planningSessionV2.ts index ed7130e28..eb96a519d 100644 --- a/apps/ai-game-creator-shell/src/features/project-workspace/planningSessionV2.ts +++ b/apps/ai-game-creator-shell/src/features/project-workspace/planningSessionV2.ts @@ -182,9 +182,11 @@ function asRecord(value: unknown): Record | null { : null; } -function resultQuestion(result: PlanningTurnResultV2 | null) { - const payload = asRecord(result?.payload); - const question = asRecord(payload?.question); +function questionFromPayload(payloadValue: unknown) { + const payload = asRecord(payloadValue); + // Turn results wrap the question in `payload.question`; persisted + // conversation messages store the question object directly in `payload`. + const question = asRecord(payload?.question) ?? payload; if (!question) { return null; } @@ -218,6 +220,10 @@ function resultQuestion(result: PlanningTurnResultV2 | null) { } satisfies PlanningQuestionV2; } +function resultQuestion(result: PlanningTurnResultV2 | null) { + return questionFromPayload(result?.payload); +} + export function planningResultText(result: PlanningTurnResultV2 | null) { const text = result?.payload?.text; return typeof text === 'string' ? text : ''; @@ -274,11 +280,7 @@ function messageDisplayText(message: PlanningMessageV2) { return payload.text; } if (message.kind === 'question') { - const question = resultQuestion({ - schemaVersion: 'planning-turn-result.v2', - kind: 'question', - payload: payload ?? {}, - }); + const question = questionFromPayload(payload); return question ? questionDisplayText(question) : ''; } if (message.kind === 'artifact') {