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 06835a6b8..807dcb409 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 @@ -32,22 +32,7 @@ export function DirectProjectTurn({ turn }: { turn: DirectChatTurn }) { {turn.users.map((block) => renderBlock(turn, block, 'body', streamingKey), )} - {turn.process.length > 0 ? ( - turn.active ? ( - turn.process.map((block) => - renderBlock(turn, block, 'process', streamingKey), - ) - ) : ( -
- 执行过程 -
- {turn.process.map((block) => - renderBlock(turn, block, 'process', streamingKey), - )} -
-
- ) - ) : null} + {renderTurnProcess(turn, streamingKey)} {turn.finals.map((block) => renderBlock(turn, block, 'body', streamingKey), )} @@ -56,6 +41,21 @@ export function DirectProjectTurn({ turn }: { turn: DirectChatTurn }) { ); } +/** 运行中的回合把执行过程平铺,已结束的回合折叠进「执行过程」。 */ +function renderTurnProcess(turn: DirectChatTurn, streamingKey: string | null) { + if (turn.process.length === 0) return null; + const blocks = turn.process.map((block) => + renderBlock(turn, block, 'process', streamingKey), + ); + if (turn.active) return blocks; + return ( +
+ 执行过程 +
{blocks}
+
+ ); +} + function DirectProjectTurnUsage({ turn }: { turn: DirectChatTurn }) { if (turn.active || !turn.startedAt) return null; const endedAt = Math.max(turn.endedAt, turn.startedAt);