From 1653a2be6eb517bcb85300dcf54319c98c47326a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 2 Oct 2026 17:53:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9ADirectProject=20?= =?UTF-8?q?=E5=9B=9E=E5=90=88=E5=9D=97=E6=A0=87=E8=AE=B0=20data-turn-key?= =?UTF-8?q?=20=E4=BE=9B=E6=BB=9A=E5=8A=A8=E9=94=9A=E7=82=B9=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DirectProjectTurn 的正文块、执行过程折叠块与终态文案块写上 data-turn-key - ToolCallGroup 与 AgentReasoning 新增可选 turnKey 透传,工具组与思考块也带回合身份 - 锚点按「回合 key + 块内序号 + 偏移」定位,不新增 DOM 包裹层 Co-authored-by: Junie --- .../AgentReasoning/AgentReasoning.tsx | 7 +++++++ .../DirectProjectTurn.tsx | 21 ++++++++++++++++--- .../ToolCallGroup/ToolCallGroup.tsx | 7 +++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/project-development/chat/components/AgentReasoning/AgentReasoning.tsx b/apps/ai-game-creator-shell/src/view/project-development/chat/components/AgentReasoning/AgentReasoning.tsx index c3d7da397..99d32d69c 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/chat/components/AgentReasoning/AgentReasoning.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/chat/components/AgentReasoning/AgentReasoning.tsx @@ -18,10 +18,16 @@ function AgentReasoningImpl({ text, label = '思考过程', testId, + turnKey, }: { text: string; label?: string; testId?: string; + /** + * 所属回合的 `DirectChatTurn.key`:写进 `data-turn-key`,供会话滚动的前插锚点按 + * 「回合 key + 块序号」定位这一块(见 `DirectProjectConversation/conversationScrollAnchor.ts`)。 + */ + turnKey?: string; }) { const [expanded, setExpanded] = useState(false); /* @@ -37,6 +43,7 @@ function AgentReasoningImpl({ className="design-agent-reasoning" aria-label={label} data-testid={testId} + data-turn-key={turnKey} onToggle={(event) => setExpanded((event.currentTarget as HTMLDetailsElement).open) } diff --git a/apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectTurn.tsx b/apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectTurn.tsx index 8ac6cb5f9..dce1a4c56 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectTurn.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/chat/components/DirectProjectConversation/DirectProjectTurn.tsx @@ -58,7 +58,11 @@ function renderTurnProcess(turn: DirectChatTurn, streamingKey: string | null) { ); if (turn.state !== 'finished') return blocks; return ( -
+
执行过程
{blocks}
@@ -78,6 +82,7 @@ function DirectProjectTurnUsage({ turn }: { turn: DirectChatTurn }) { className="message-turn-usage" data-testid="turn-usage" data-turn-running="false" + data-turn-key={turn.key} > {`本轮结束于 ${new Date(endedAt).toLocaleTimeString('zh-CN', { hour12: false, @@ -99,17 +104,27 @@ function renderBlock( calls={block.calls} active={turn.state === 'running'} className="message-tool-call" + turnKey={turn.key} /> ); } if (block.kind === 'reasoning') { return ( - + ); } const role = block.kind === 'user' ? 'user' : 'assistant'; return ( -
+