diff --git a/frontend/AGENTS.md b/frontend/AGENTS.md index 7d7be4d..92dc5cf 100644 --- a/frontend/AGENTS.md +++ b/frontend/AGENTS.md @@ -148,7 +148,7 @@ await api.getHealth(); // Radio await api.getRadioConfig(); await api.updateRadioConfig({ name: 'MyRadio' }); -await api.sendAdvertisement(true); +await api.sendAdvertisement(); // Contacts/Channels await api.getContacts(); diff --git a/frontend/src/components/MessageList.tsx b/frontend/src/components/MessageList.tsx index d5640a2..7d8b75c 100644 --- a/frontend/src/components/MessageList.tsx +++ b/frontend/src/components/MessageList.tsx @@ -239,6 +239,14 @@ export function MessageList({ } }, []); + // Sort messages by received_at ascending (oldest first) + // Note: Deduplication is handled by useConversationMessages.addMessageIfNew() + // and the database UNIQUE constraint on (type, conversation_key, text, sender_timestamp) + const sortedMessages = useMemo( + () => [...messages].sort((a, b) => a.received_at - b.received_at), + [messages] + ); + // Look up contact by public key const getContact = (conversationKey: string | null): Contact | null => { if (!conversationKey) return null; @@ -301,14 +309,6 @@ export function MessageList({ ); } - // Sort messages by received_at ascending (oldest first) - // Note: Deduplication is handled by useConversationMessages.addMessageIfNew() - // and the database UNIQUE constraint on (type, conversation_key, text, sender_timestamp) - const sortedMessages = useMemo( - () => [...messages].sort((a, b) => a.received_at - b.received_at), - [messages] - ); - // Helper to get a unique sender key for grouping messages const getSenderKey = (msg: Message, sender: string | null): string => { if (msg.outgoing) return '__outgoing__';