fix(frontend): avoid duplicate optimistic user message (#3002)

This commit is contained in:
Admire
2026-05-23 17:02:23 +08:00
committed by GitHub
parent 604fcbb9d2
commit d0fa37e71d
2 changed files with 115 additions and 2 deletions
+21 -1
View File
@@ -135,6 +135,20 @@ function getMessagesAfterBaseline(
});
}
export function getVisibleOptimisticMessages(
optimisticMessages: Message[],
previousHumanMessageCount: number,
currentHumanMessageCount: number,
): Message[] {
if (
optimisticMessages.some((message) => message.type === "human") &&
currentHumanMessageCount > previousHumanMessageCount
) {
return [];
}
return optimisticMessages;
}
function getStreamErrorMessage(error: unknown): string {
if (typeof error === "string" && error.trim()) {
return error;
@@ -627,10 +641,16 @@ export function useThreadStream({
messagesRef.current = thread.messages;
}
const visibleOptimisticMessages = getVisibleOptimisticMessages(
optimisticMessages,
prevHumanMsgCountRef.current,
humanMessageCount,
);
const mergedMessages = mergeMessages(
history,
thread.messages,
optimisticMessages,
visibleOptimisticMessages,
);
const pendingUsageMessages = thread.isLoading
? getMessagesAfterBaseline(