From 8cb49f68b589a0477ddef1d4af9293bf422321bf Mon Sep 17 00:00:00 2001 From: MT-Mint <798521692@qq.com> Date: Tue, 31 Mar 2026 11:42:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(threads):=20=E5=85=81=E8=AE=B8=20sendMessag?= =?UTF-8?q?e=20=E6=8E=A5=E5=8F=97=20undefined=20threadId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/core/threads/hooks.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/frontend/src/core/threads/hooks.ts b/frontend/src/core/threads/hooks.ts index b177c1c9..c05310b8 100644 --- a/frontend/src/core/threads/hooks.ts +++ b/frontend/src/core/threads/hooks.ts @@ -271,7 +271,7 @@ export function useThreadStream({ const sendMessage = useCallback( async ( - threadId: string, + threadId: string | undefined, message: PromptInputMessage, extraContext?: Record, ) => { @@ -281,6 +281,8 @@ export function useThreadStream({ sendInFlightRef.current = true; const text = message.text.trim(); + const resolvedThreadId = + threadId ?? threadIdRef.current ?? undefined; // Capture current count before showing optimistic messages prevMsgCountRef.current = thread.messages.length; @@ -315,7 +317,9 @@ export function useThreadStream({ } setOptimisticMessages(newOptimistic); - _handleOnStart(threadId); + if (resolvedThreadId) { + _handleOnStart(resolvedThreadId); + } let uploadedFileInfo: UploadedFileInfo[] = []; @@ -359,12 +363,12 @@ export function useThreadStream({ ); } - if (!threadId) { + if (!resolvedThreadId) { throw new Error("Thread is not ready for file upload."); } if (files.length > 0) { - const uploadResponse = await uploadFiles(threadId, files); + const uploadResponse = await uploadFiles(resolvedThreadId, files); uploadedFileInfo = uploadResponse.files; // Update optimistic human message with uploaded status + paths @@ -431,7 +435,7 @@ export function useThreadStream({ ], }, { - threadId: threadId, + threadId: resolvedThreadId, streamSubgraphs: true, streamResumable: true, config: { @@ -452,7 +456,7 @@ export function useThreadStream({ : context.mode === "thinking" ? "low" : undefined), - thread_id: threadId, + thread_id: resolvedThreadId, }, }, );