Commit Graph
3793 Commits
Author SHA1 Message Date
Matthew Meszaros ae9eca5c7e feat: cut database load from issue 993 with placement, sweep and unibox indexes, redundant index drops, identical-result rewrites of contact facets, dashboard stats, campaign progress, advisor bounces and routing pre-filter, bounded delivery evidence, cold-ramp skip, held advisor sections, ANALYZE after restore and hidden-tab realtime deferral 2026-10-17 05:18:45 +02:00
devin-ai-integration[bot] 0911c5390b Merge pull request #992 from warmbly/devin/1792150758-coolify-deployment
feat: support image-only Coolify deployment with step-by-step self-host instructions
2026-10-16 12:15:44 +00:00
Matthew MeszarosandDevin AI 9af270a533 feat: add production image-only Coolify Compose deployment with domain, secret, backup and setup instructions
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-16 11:47:52 +00:00
devin-ai-integration[bot] 10cdecefd7 Merge pull request #991 from warmbly/devin/1792134927-linked-mailbox-status
feat: keep cold rests visible and explain repeated mailbox connection reports
v0.6.55
2026-10-16 08:24:03 +00:00
devin-ai-integration[bot] 4890945ea1 Merge pull request #990 from warmbly/devin/1792133264-contacts-empty-campaign-steps
feat: prevent the contact activity drawer from crashing for campaigns without steps
2026-10-16 08:24:02 +00:00
devin-ai-integration[bot] 2f18278b9e Merge pull request #983 from warmbly/devin/1792124822-mailbox-health-recovery
feat: align mailbox health severity and volume recovery with displayed placement
2026-10-16 08:24:01 +00:00
devin-ai-integration[bot] 3b1c50b9ec Merge pull request #988 from warmbly/fix/reply-processing-stale-stored-mail
feat: withdraw reply intents and untouched follow-up tasks left by mail from before its sender's contact, and credit unthreaded mail only to an earlier send (#960)
2026-10-16 07:52:00 +00:00
devin-ai-integration[bot] bb1b93255d Merge pull request #987 from warmbly/fix/worker-send-deadline
feat: give worker sends a deadline that covers the SMTP budget and add ordered mailbox lanes on NATS
2026-10-16 07:51:59 +00:00
devin-ai-integration[bot] 3d7372142a Merge pull request #986 from warmbly/fix/unibox-forward-suppression
feat: let Unibox forwards reach suppressed recipients and name the suppressed address on every refusal
2026-10-16 07:51:58 +00:00
devin-ai-integration[bot] bdc9d38e1a Merge pull request #985 from warmbly/feature/reply-received-tagging-verdict
feat: carry the inbox-tagging verdict on campaign.reply_received so automations can filter on AI labels
2026-10-16 07:51:58 +00:00
Devin AI 776ec6dcc7 feat: label stored mailbox error report times without claiming all error categories refresh their latest observation 2026-10-16 07:35:57 +00:00
Matthew Meszaros 67a2077ce0 feat: align advisor throttling guidance and campaign hold actions with automatic placement recovery 2026-10-16 07:31:11 +00:00
Matthew Meszaros d3612255bb feat: update mailbox placement reason regression to verify watch recovery and independent ramp safeguards 2026-10-16 07:31:11 +00:00
Matthew Meszaros a54b50a971 feat: clarify placement standing recovery without promising to bypass independent ramp limits 2026-10-16 07:31:11 +00:00
Matthew Meszaros e1167f9a61 feat: align mailbox placement health with displayed UTC dates and preserve measured scores for reduced-volume warnings 2026-10-16 07:31:11 +00:00
Matthew Meszaros ed76eb5ac0 feat: show cold rests without campaigns and explain deduplicated mailbox connection reports 2026-10-16 07:30:19 +00:00
Matthew Meszaros a4d9ca5f20 feat: require exact message and CRM task provenance for historical reply cleanup, preserve unlinked legacy effects and retry failed pages idempotently 2026-10-16 07:30:17 +00:00
Matthew Meszaros 617aa26037 feat: fetch keyed NATS commands only after lane dispatch and cover saturated mailbox queues with an ordering and redelivery regression 2026-10-16 07:30:15 +00:00
Matthew Meszaros 7943d9c390 feat: document all-backend upgrade and old-replica drain requirements for suppressed-recipient Unibox forwards in send safety and self-host install docs 2026-10-16 07:30:13 +00:00
Matthew Meszaros 0004215fbe feat: clarify reply webhook identifiers and verdict presence and label confidence conditions with their selected operator 2026-10-16 07:30:11 +00:00
devin-ai-integration[bot] f90d87724d Merge pull request #984 from warmbly/fix/959-imap-modseq-bump-history
feat: cover the IMAP MODSEQ bump end to end with regression tests and document it in the mailboxes guide
2026-10-16 07:15:40 +00:00
Devin AI b7a564eac9 feat: keep contact campaign activity usable when a campaign has no flow steps and return empty step arrays 2026-10-16 06:52:47 +00:00
Matthew Meszaros fa6c935b12 feat: withdraw the reply intents and untouched follow-up tasks that mail from before its sender's contact produced through a one-time consumer cleanup, and credit an unthreaded contact message only to a campaign email sent before it arrived (#960) 2026-10-16 06:59:40 +02:00
Matthew Meszaros 46bd956229 feat: give worker SEND_EMAIL commands a 120s deadline that covers the SMTP client's 90s budget, run the worker command subscription under a 195s bus budget (NATS ack wait and Kafka handler context via eventbus.WithHandlerTimeout), and add ordered per-mailbox command lanes on NATS with in-progress heartbeats 2026-10-16 06:57:14 +02:00
Matthew Meszaros de4328b4cf feat: let Unibox forwards reach suppressed recipients by exempting forward tasks from the send-admission suppression check, refuse suppressed replies and direct sends before queueing with a recipient_suppressed 400 naming the address and matching entry, report admission refusals as RECIPIENT_SUPPRESSED with the address, show the server reason in the reply composer, and document it 2026-10-16 06:56:52 +02:00
Matthew Meszaros 8b9c9b3b70 feat: carry the stored inbox-tagging verdict (ai_labels, ai_intent, ai_intent_confidence, ai_kind, ai_relevance, ai_needs_review) on campaign.reply_received, offer it in the automation condition picker, match list fields by whole item in contains conditions and the new has/join template helpers, and title Slack and Discord reply messages with the tagging labels 2026-10-16 06:56:45 +02:00
Matthew Meszaros e240d8a0f0 feat: cover the IMAP MODSEQ bump end to end with tests that history spends no sync budget, records no throttled day and is searched once, and that a deferred arrival holds UIDNEXT so the retry keeps history out, and document the behavior in the mailboxes guide 2026-10-16 06:54:15 +02:00
Matthew Meszaros 4d70aada93 Merge pull request #980 from warmbly/fix/warmup-replies-reachability-imap-global
feat: send cross-tier warmup replies, drop unreachable warmup recipients, and sync past message/global bounces
v0.6.54
2026-10-15 17:47:40 +00:00
Matthew Meszaros 4ee78aebb2 feat: let a verified warmup arrival inside the arrival grace clear a recipient's unreachable result, and refuse an IMAP bare-envelope body fetch whose BODY[] section is missing 2026-10-15 19:30:27 +02:00
Matthew Meszaros 7d4c57cab3 feat: drop warmup recipients the pool cannot reach from partner selection, weight the draw by each recipient's verified arrival rate, and warn owners through the warmup_mail_not_arriving Advisor check 2026-10-15 19:08:54 +02:00
Matthew Meszaros b5891f3365 feat: keep IMAP sync running past RFC 6533 message/global bounces by stepping unreadable envelope fetches down to bare, single and skipped rungs with locally parsed MIME, and read global delivery-status parts as bounce reports on IMAP and Gmail 2026-10-15 19:08:54 +02:00
Matthew Meszaros 17a981ca3b feat: send warmup reply-backs across the free and paid tiers by reporting a mailbox outside the pool as not_in_pool in CanParticipate, and only let a healthy free mailbox answer a paid one 2026-10-15 19:08:48 +02:00
Matthew Meszaros 94f5ca195a Merge pull request #972 from warmbly/fix/recent-github-bug-reports
feat: keep unibox sends out of the campaign caps and report refusals, skip IMAP history on a MODSEQ bump, ignore mail from before a contact in reply processing
v0.6.53
2026-10-15 14:09:48 +00:00
Matthew Meszaros 4b7b626230 Merge pull request #979 from warmbly/fix/reported-user-issue
feat: let the confirm-it-is-you prompt offer only the methods an account has, adding passkey, Google/Apple/SSO popup and native iOS Apple/Google re-authentication bound to the session and linked identity, across backend, dashboard, admin, iOS and docs
2026-10-15 13:52:33 +00:00
Matthew Meszaros eaa7956558 feat: judge each message in the reply opt-out recheck against the contact's creation date or our first send even when the suppression is attributed to a campaign, using the campaign only once the contact is gone 2026-10-15 15:50:30 +02:00
Matthew Meszaros 28b7603fdd feat: give the workspace-wide unibox plan allowance its own advisory lock namespace instead of sharing the warmup recipient lock's 2026-10-15 15:29:34 +02:00
Matthew Meszaros 6be59ae374 feat: state in the send-safety shared_daily_limit and rolling_recipient_limit rows that manual Unibox sends do not count toward them and are held to their own fair-use limits 2026-10-15 15:28:37 +02:00
Matthew Meszaros f334207ccd feat: serve the dashboard's /reauth/complete popup landing on Pages so a Google, Apple or SSO re-authentication window can report back instead of 404ing 2026-10-15 15:28:15 +02:00
Matthew Meszaros 0ca6e7e642 feat: let the confirm-it-is-you prompt offer only the methods an account has, adding passkey, Google/Apple/SSO popup and native iOS Apple/Google re-authentication bound to the session and linked identity, across backend, dashboard, admin, iOS and docs 2026-10-15 15:26:25 +02:00
Matthew Meszaros f63f459c73 feat: bound unibox sends across a workspace's mailboxes by a fair-use allowance of twice its plan's daily email limit with a floor of 100, resolved through the feature gate so overrides apply and self-hosted or unlimited plans stay unbounded 2026-10-15 14:59:09 +02:00
Matthew Meszaros e978cc65e1 feat: hold unibox sends to a fair-use allowance sized by provider and lowered by mailbox age, warmup standing and workspace risk with hourly, per-message and new-conversation bounds, require an earlier send before the opt-out recheck treats pre-contact mail as a reply, keep zero-date mail in the reply repair sweep, and retry a unibox refusal that could not be recorded 2026-10-15 12:33:33 +02:00
Matthew Meszaros 2040492cd3 Merge pull request #976 from warmbly/devin/1792038755-cloud-link-enrollment-conflicts
feat: isolate Cloud mailbox enrollment conflicts from other retries and standing updates
2026-10-15 10:27:35 +00:00
Matthew Meszaros 702d46adc3 Merge pull request #975 from warmbly/devin/1791979233-warmup-stop-queue-safety
feat: retire unstarted warmup sends on mailbox stop and alert on post-stop execution
2026-10-15 10:26:56 +00:00
Matthew Meszaros df6bca3608 Merge pull request #978 from warmbly/devin/1792044826-campaign-cpu
feat: reduce campaign scheduler database reads and new-lead ordering work
2026-10-15 10:26:07 +00:00
Matthew MeszarosandDevin AI 70038e6809 feat: give every synthetic mailbox an explicit UUID in the campaign scheduler pool batching regression fixture
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 06:26:13 +00:00
Matthew MeszarosandDevin AI 5bef598a69 feat: batch campaign scheduler mailbox budgets and health reads before routing and standalone placement, and replace per-lead history sorting with existence checks for new-lead priority
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 06:21:23 +00:00
devin-ai-integration[bot] a0bbddac51 Merge pull request #977 from warmbly/devin/1792038679-database-error-fixes
feat: prevent mailbox enum write failures and multi-subscription realtime exceptions
2026-10-15 06:14:12 +00:00
Devin AI 6b3ca85e79 feat: persist no-action mailbox errors with valid database enums and retain realtime limits across workspace subscriptions 2026-10-15 04:40:18 +00:00
Matthew MeszarosandDevin AI 89c2c3949c feat: explain Cloud mailbox association conflicts and reconcile each pending mailbox independently while preserving standing updates
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 04:39:58 +00:00
Matthew MeszarosandDevin AI 43f344ad9b feat: model eligible warmup recipients in the delayed preparation duplicate regression
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 13:22:15 +00:00