From 160326b7039356ed81d92e33e332804be5388305 Mon Sep 17 00:00:00 2001 From: xintaofei Date: Mon, 9 Mar 2026 19:11:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E5=93=8D=E5=BA=94=E7=BB=93=E6=9D=9F=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E9=87=8D=E6=96=B0=E5=8A=A0=E8=BD=BD=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversations/conversation-detail-panel.tsx | 3 +-- src/components/message/message-list-view.tsx | 13 ++++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/components/conversations/conversation-detail-panel.tsx b/src/components/conversations/conversation-detail-panel.tsx index 9d3d836..68ebafb 100644 --- a/src/components/conversations/conversation-detail-panel.tsx +++ b/src/components/conversations/conversation-detail-panel.tsx @@ -111,8 +111,7 @@ const ExistingConversationView = memo(function ExistingConversationView({ // Wrap handleSend to update status const handleSendWithPersist = useCallback( (draft: PromptDraft, selectedModeId?: string | null) => { - setPendingMessages((prev) => [ - ...prev, + setPendingMessages([ { id: `pending-${Date.now()}`, role: "user", diff --git a/src/components/message/message-list-view.tsx b/src/components/message/message-list-view.tsx index cafd9b8..91cc3e2 100644 --- a/src/components/message/message-list-view.tsx +++ b/src/components/message/message-list-view.tsx @@ -213,17 +213,12 @@ export function MessageListView({ }: MessageListViewProps) { const t = useTranslations("Folder.chat.messageList") const sharedT = useTranslations("Folder.chat.shared") - const { detail, loading, error, refetch } = useDbMessageDetail(conversationId) + const { detail, loading, error } = useDbMessageDetail(conversationId) const turnCount = detail?.turns.length ?? 0 - const prevStatusRef = useRef(connStatus) - useEffect(() => { - const prev = prevStatusRef.current - prevStatusRef.current = connStatus - if (prev === "prompting" && connStatus && connStatus !== "prompting") { - refetch() - } - }, [connStatus, refetch]) + // 移除了 prompting 结束后的立即刷新 + // 原因:后端自动持久化可能有延迟,立即刷新会读到不完整数据 + // 现在通过清空 pending 来避免累积问题,等用户切换会话或手动刷新时再加载 const prevTurnCountRef = useRef(turnCount) const prevConvIdRef = useRef(conversationId)