iachat/spec/jobs
Shivam Mishra b75ea7a762
feat: Use resolved contacts as base relation for filtering (#12520)
This PR has two changes to speed up contact filtering

### Updated Base Relation

Update the `base_relation` to use resolved contacts scope to improve
perf when filtering conversations. This narrows the search space
drastically, and what is usually a sequential scan becomes a index scan
for that `account_id`

ref: https://github.com/chatwoot/chatwoot/pull/9347
ref: https://github.com/chatwoot/chatwoot/pull/7175/

Result: https://explain.dalibo.com/plan/c8a8gb17f0275fgf#plan


## Selective filtering in Compose New Conversation

We also cost of filtering in compose new conversation dialog by reducing
the search space based on the search candidate. For instance, a search
term that obviously can’t be a phone, we exclude that from the filter.
Similarly we skip name lookups for email-shaped queries.

Removing the phone number took the query times from 50 seconds to under
1 seconds

### Comparison

1. Only Email: https://explain.dalibo.com/plan/h91a6844a4438a6a 
2. Email + Name: https://explain.dalibo.com/plan/beg3aah05ch9ade0
3. Email + Name + Phone:
https://explain.dalibo.com/plan/c8a8gb17f0275fgf
2025-09-25 15:26:44 +05:30
..
account feat: Use resolved contacts as base relation for filtering (#12520) 2025-09-25 15:26:44 +05:30
agent_bots feat: Implement UI for Agent Bots in settings and remove CSML support (#11276) 2025-04-16 18:02:49 +05:30
agents chore: Enable the new Rubocop rules (#7122) 2023-05-19 14:37:10 +05:30
avatar fix: Add URL validation and rate limiting for contact avatar sync (#11979) 2025-09-10 20:08:06 +05:30
campaigns chore: Add validations to campaign model 2025-03-19 17:29:08 -07:00
channels feat: Added the backend support for twilio content templates (#12272) 2025-08-24 10:05:15 +05:30
conversations chore: move UpdateMessageStatus to deferred queue (#11943) 2025-07-16 08:19:00 +05:30
crm feat: integrate LeadSquared CRM (#11284) 2025-04-29 09:14:00 +05:30
inboxes feat: Run assignment every 15 minutes (#12334) 2025-08-29 15:10:56 -07:00
internal feat: automate account deletion (#11406) 2025-05-23 12:58:13 +05:30
labels chore: Enable the new Rubocop rules (#7122) 2023-05-19 14:37:10 +05:30
migration chore: [Snyk] Security upgrade rspec-rails from 6.1.4 to 6.1.5 (#10066) 2024-09-16 09:44:07 +05:30
notification chore: [Snyk] Security upgrade rspec-rails from 6.1.4 to 6.1.5 (#10066) 2024-09-16 09:44:07 +05:30
webhooks fix: Flaky Instagram webhook specs (#12170) 2025-08-12 20:12:18 +05:30
bulk_actions_job_spec.rb feat: Add support for bulk snooze until (#9360) 2024-05-08 08:55:31 +05:30
data_import_job_spec.rb fix: downcase email before finding (#8921) 2024-02-21 18:51:00 +05:30
delete_object_job_spec.rb fix(delete_object_job): pre-purge heavy associations before destroy to prevent timeout (#12408) 2025-09-11 18:43:36 +05:30
event_dispatcher_job_spec.rb chore: Enable the new Rubocop rules (#7122) 2023-05-19 14:37:10 +05:30
hook_job_spec.rb feat: integrate LeadSquared CRM (#11284) 2025-04-29 09:14:00 +05:30
mutex_application_job_spec.rb fix: mutex timeout and error handling (#8770) 2024-01-24 14:18:21 +04:00
send_on_slack_job_spec.rb fix: issue with slack job (#7179) 2023-05-24 20:22:34 +05:30
send_reply_job_spec.rb feat: Instagram Inbox using Instagram Business Login (#11054) 2025-04-08 10:47:41 +05:30
slack_unfurl_job_spec.rb feat: Support link unfurling for all the channels within the same connected channel account. (#8033) 2023-10-08 17:55:03 +05:30
trigger_scheduled_items_job_spec.rb chore: Add validations to campaign model 2025-03-19 17:29:08 -07:00
webhook_job_spec.rb feat: Mark the messages as failed if the API channel webhooks fail for any reason. (#8277) 2023-11-04 12:26:28 +05:30