You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Chat: mensagens recebidas via webhook não aparecem na conversa ativa em tempo real #239
Quando uma mensagem chega via webhook do Pastorini para a conversa atualmente aberta, ela é adicionada ao array global messages da store sem verificar se pertence à conversa ativa. Isso causa dois problemas combinados:
Mensagens destinadas a outra conversa aparecem na janela de chat atual (contaminação cruzada)
Mensagens recebidas para uma nova conversa (contato ainda não listado) são adicionadas ao array que será limpo ao selecionar qualquer outra conversa — a mensagem some
O campo direction é corretamente definido no backend (inbound/outbound), então quando a mensagem errada aparece em outra conversa, o alinhamento também fica inconsistente com o contexto.
What I expected
Mensagens recebidas via WebSocket devem aparecer apenas na conversa à qual pertencem. Se a conversa não estiver ativa, apenas os metadados da conversa (unread_count, last_message_at) devem ser atualizados.
Steps to reproduce
Abrir o ISing e selecionar a conversa com o contato A
Enviar uma mensagem do WhatsApp de um contato B (diferente) para o número conectado
Observar que a mensagem de B aparece na janela de chat de A
Additional context
A função addMessage na store checa deduplicação por message.id, mas não filtra pelo activeConversation antes de inserir no array messages. A verificação de qual conversa pertence a mensagem (from_jid/to_jid vs activeConversation.contact.jid) precisa ser feita antes do set({ messages: [...messages, message] }).
Activity