Commit Graph

6 Commits

Author SHA1 Message Date
Abhinav Raut 9f686ac568 remove redundant translations and semicolons 2026-09-25 02:06:02 +05:30
Abhinav Raut 926bcc5d6e fix WhatsApp startup, retries and media limits
The ingester now starts on demand when a WhatsApp inbox exists, so an
install without WhatsApp boots even if Redis is down. Sends retry on 429
and 5xx, oversized media stores a placeholder, and inbox lookup failures
no longer read as "no inbox".
2026-09-03 01:29:39 +05:30
Abhinav Raut defc6535b9 send whatsapp attachments as one message per file
Meta accepts only one media per message and sends one status webhook per
message id, so a reply with 3 files is now sent as 3 requests from the reply
box instead of one message that half-succeeded. Drops the partial-send
tracking, markers and retry-attachments button that existed to paper over it.
2026-08-16 22:51:05 +05:30
Abhinav Raut 7a53cf9ae2 fix bugs and clean up code 2026-06-27 15:02:21 +05:30
Abhinav Raut ef80ba2fbf fix WhatsApp webhook ingestion gaps
Status events arriving before their message were silently dropped. Contacts with no email/ext_id could accumulate orphan rows on retry. Corrupt inbox configs were skipped without logging.
2026-06-27 13:33:10 +05:30
Abhinav Raut 74599df708 feat: durable WhatsApp inbound queue
Move WhatsApp inbound off the in-memory worker pool onto a new Redis Streams queue (internal/streamqueue): at-least-once, reclaim of orphaned entries, dead-letter for poison entries, panic-safe. The webhook verifies the signature from the in-memory inbox and 200-ACKs only after a successful enqueue, so a DB blip or restart no longer drops messages. The worker honors context cancellation for fast shutdown, dedups before downloading media, and routes template status updates by WABA.
2026-06-14 11:27:17 +05:30