diff --git a/connector_whatsapp.go b/connector_whatsapp.go index 306ef3f..8d4bded 100644 --- a/connector_whatsapp.go +++ b/connector_whatsapp.go @@ -144,9 +144,15 @@ func (w *WhatsAppConnector) FetchNew() ([]UnifiedMessage, error) { return nil, err } + w.mu.Lock() + defer w.mu.Unlock() + var result []UnifiedMessage for _, msg := range messages { - // WhatsApp bridge doesn't track seen status, so return all recent + // Skip if already marked as seen + if w.lastSeen[msg.ID] { + continue + } // Filter to last 24 hours for "new" if time.Since(msg.Timestamp) < 24*time.Hour { result = append(result, w.convertMessage(msg))