Commit Graph

8 Commits

Author SHA1 Message Date
maaz519 6f18433c67 fix(worker): throw on invalid approvedAt in index processor 2026-05-28 00:19:14 +05:30
maaz519 1e421c0073 feat(worker): add index queue and wire Meilisearch indexing after approval
Adds index.queue.ts and index.processor.ts to handle BullMQ indexing jobs,
updates main.ts to create a Meilisearch client, configure the index on startup,
and enqueue index + forward jobs from ApprovalResult after a star reaction.
2026-05-28 00:02:47 +05:30
maaz519 5ad33fd416 feat(worker): forward queue + processor with 20/min rate limiter 2026-05-27 17:23:08 +05:30
maaz519 0f30af6018 feat(worker): WhatsAppSessionPool + group-sync accepts accountId 2026-05-27 17:11:19 +05:30
maaz519 c7cec29c83 fix: rename queue from tower:ingest to tower-ingest (BullMQ v5 forbids colons)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 16:23:55 +05:30
maaz519 31f047492a fix: harden session error handling, normalizer null guard, extract redis-connection
- Wrap groupFetchAllParticipating in try/catch to prevent unhandled rejection on connect
- Catch errors from async onMessage/onGroups callbacks via Promise.resolve().catch
- Return null from normalizer when key.id is missing (prevents empty upsert key collision)
- Extract parseRedisUrl to redis-connection.ts to eliminate duplication

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 16:18:56 +05:30
maaz519 81da0d483e feat: add BullMQ ingest queue and processor
Idempotent message persistence via prisma.message.upsert. Uses URL parsing
to pass connection options to BullMQ, avoiding ioredis version conflicts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 15:18:04 +05:30
maaz519 a4135fe983 feat: add BullMQ ingest queue and processor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 15:15:08 +05:30