From a2a9c31f95041714897e32bd31ea1fbae351e892 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Sat, 28 Jun 2025 00:50:07 -0400 Subject: [PATCH] Filter out duplicate messages (#151) --- .../app/(authenticated)/usage/Messages.tsx | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/apps/web/src/app/(authenticated)/usage/Messages.tsx b/apps/web/src/app/(authenticated)/usage/Messages.tsx index 8fdba4e444..a585d1316f 100644 --- a/apps/web/src/app/(authenticated)/usage/Messages.tsx +++ b/apps/web/src/app/(authenticated)/usage/Messages.tsx @@ -32,13 +32,26 @@ const parseQuestionData = (text: string): QuestionData | null => { }; export const Messages = ({ messages }: MessagesProps) => { - const conversation = useMemo( - () => - messages - .filter(isVisible) - .map((message, index) => decorate({ message, index })), - [messages], - ); + const conversation = useMemo(() => { + const visibleMessages = messages.filter(isVisible); + + // Remove consecutive duplicates based on timestamp and text + const deduplicatedMessages = visibleMessages.filter((message, index) => { + if (index === 0) return true; + + const prevMessage = visibleMessages[index - 1]; + if (!prevMessage) return true; // Safety check, though this shouldn't happen + + return !( + message.timestamp === prevMessage.timestamp && + message.text === prevMessage.text + ); + }); + + return deduplicatedMessages.map((message, index) => + decorate({ message, index }), + ); + }, [messages]); return (