From 87da1554779a8dd5a5205fecc656649586c451ed Mon Sep 17 00:00:00 2001 From: yangzheli <43645580+yangzheli@users.noreply.github.com> Date: Mon, 12 May 2025 09:00:57 +0800 Subject: [PATCH] fix: agent log modal fails to open and the timer is not cleared (#18900) (#19471) --- web/app/components/base/chat/chat/hooks.ts | 2 ++ web/app/components/base/chat/chat/type.ts | 1 + .../components/base/markdown-blocks/think-block.tsx | 10 ++++------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/web/app/components/base/chat/chat/hooks.ts b/web/app/components/base/chat/chat/hooks.ts index bff222ea38..fde4674539 100644 --- a/web/app/components/base/chat/chat/hooks.ts +++ b/web/app/components/base/chat/chat/hooks.ts @@ -424,6 +424,8 @@ export const useChat = ( const response = responseItem as any if (thought.message_id && !hasSetResponseId) response.id = thought.message_id + if (thought.conversation_id) + response.conversationId = thought.conversation_id if (response.agent_thoughts.length === 0) { response.agent_thoughts.push(thought) diff --git a/web/app/components/base/chat/chat/type.ts b/web/app/components/base/chat/chat/type.ts index 7f22ba05b7..b37151f8f9 100644 --- a/web/app/components/base/chat/chat/type.ts +++ b/web/app/components/base/chat/chat/type.ts @@ -41,6 +41,7 @@ export type ThoughtItem = { tool_input: string tool_labels?: { [key: string]: TypeWithI18N } message_id: string + conversation_id: string observation: string position: number files?: string[] diff --git a/web/app/components/base/markdown-blocks/think-block.tsx b/web/app/components/base/markdown-blocks/think-block.tsx index 282282db2b..565582e326 100644 --- a/web/app/components/base/markdown-blocks/think-block.tsx +++ b/web/app/components/base/markdown-blocks/think-block.tsx @@ -41,9 +41,10 @@ const useThinkTimer = (children: any) => { const timerRef = useRef() useEffect(() => { + if (isComplete) return + timerRef.current = setInterval(() => { - if (!isComplete) - setElapsedTime(Math.floor((Date.now() - startTime) / 100) / 10) + setElapsedTime(Math.floor((Date.now() - startTime) / 100) / 10) }, 100) return () => { @@ -53,11 +54,8 @@ const useThinkTimer = (children: any) => { }, [startTime, isComplete]) useEffect(() => { - if (hasEndThink(children)) { + if (hasEndThink(children)) setIsComplete(true) - if (timerRef.current) - clearInterval(timerRef.current) - } }, [children]) return { elapsedTime, isComplete }