Commit Graph
3767 Commits
Author SHA1 Message Date
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 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
Matthew MeszarosandDevin AI 1090284452 feat: cover warmup preparation recovery with eligible partners and accurate worker protocol
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 12:57:37 +00:00
Matthew MeszarosandDevin AI 665bd5cf22 feat: seed post-stop monitoring from existing disabled warmup mailboxes at upgrade
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 12:37:55 +00:00
Matthew MeszarosandDevin AI e8597e8af1 feat: retire unstarted warmup commands on mailbox stop and alert on post-stop execution
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-14 12:36:01 +00:00
Matthew Meszaros 51f76294a0 Merge pull request #973 from warmbly/perf/emails-tab-warmup-health-queries
feat: cut database CPU across warmup selection, Emails tab status and periodic sweeps
v0.6.52
2026-10-14 10:57:29 +00:00
Matthew Meszaros 2acacc87a7 feat: refresh the shared warmup seven-day snapshot on a detached context while serving the previous one, and derive the Emails tab status chunk layout from committed state instead of writing a ref during render 2026-10-14 12:39:53 +02:00
Matthew Meszaros 3d238f403d feat: cut database CPU by serving the warmup partner cap from a live today count plus a shared seven-day snapshot, batching the Emails tab status reads into a fixed query count per page, indexing the tasks and warmup scans, bounding the contact verification sweep, skipping existing leads in segment sync, and throttling pool-link and Graph cursor writes 2026-10-14 12:14:18 +02:00
Matthew Meszaros dbfc5b06f8 feat: keep unibox sends out of campaign, warmup and shared send caps with their own 500-recipient daily ceiling and report refused sends to the mailbox owner, skip IMAP history below the held UIDNEXT on a folder-wide MODSEQ bump, and stop treating mail received before its sender became a contact as a reply in reply processing, the repair sweep and the opt-out recheck 2026-10-14 06:38:34 +02:00
Matthew Meszaros df99a87994 Merge pull request #970 from warmbly/devin/1791947120-cpu-backend-ready
feat: reuse scheduler timezone parsing and Go PubSub publisher lifecycles
v0.6.51
2026-10-14 04:10:14 +00:00
Matthew Meszaros 99b86daacf Merge pull request #971 from warmbly/devin/1791947120-cpu-tracking-ready
feat: coalesce Rust tracking ticket lookups and avoid unused digest encoding
2026-10-14 04:10:05 +00:00
Matthew Meszaros f6da948b36 Merge pull request #968 from warmbly/devin/1791947120-cpu-realtime-ready
feat: remove repeated realtime subscriptions, connection scans and event normalization
2026-10-14 04:09:42 +00:00
Matthew Meszaros 4414ded2cf Merge pull request #967 from warmbly/devin/1791947120-cpu-frontends-ready
feat: avoid rebuilding unchanged dashboard lists and mailbox status query aggregation
2026-10-14 04:09:39 +00:00
Matthew Meszaros 816a92904a Merge pull request #966 from warmbly/devin/1791947120-cpu-sql-ready
feat: reduce PostgreSQL history scans in task scheduling, warmup health and dashboard analytics
2026-10-14 04:09:31 +00:00
Matthew Meszaros 1ad9214b51 Merge pull request #969 from warmbly/devin/1791947120-cpu-workers-ready
feat: reduce repeated worker template, mailbox preview and Graph lookup work
2026-10-14 04:09:14 +00:00
Devin AI cc15dab16a feat: run CPU query pressure and accounting parity regressions against PostgreSQL in CI 2026-10-14 03:36:05 +00:00
Devin AI 6f0700c82a feat: encode only the retained source-token digest prefix in Rust tracking with parity benchmarks 2026-10-14 03:35:28 +00:00
Devin AI 414e9f600e feat: reuse canonical realtime event types across org permission and intent gates 2026-10-14 03:35:28 +00:00
Devin AI 6a6cc3d94a feat: stabilize mailbox status query options and combine callback to avoid repeated aggregation 2026-10-14 03:35:28 +00:00
Devin AI ab193988c1 feat: reuse known Graph message mappings for legacy delta flag events without a second broker lookup 2026-10-14 03:35:28 +00:00
Devin AI 4fbc4c1ff4 feat: coalesce concurrent Rust tracking ticket cache fills while preserving source miss accounting and retries 2026-10-14 03:35:28 +00:00
Devin AI cc977ec737 feat: maintain an exact realtime connection aggregate instead of scanning users on each track 2026-10-14 03:35:28 +00:00
Devin AI ca0bc79f3c feat: reuse dashboard paginated lists across unchanged renders without altering fetch lifecycle 2026-10-14 03:35:28 +00:00
Devin AI 0559ddee09 feat: bound IMAP preview normalization while preserving whitespace quotes signatures and UTF-8 behavior 2026-10-14 03:35:28 +00:00
Devin AI 28ebed87a5 feat: remove duplicate Phoenix subscriptions from realtime admin and bulk channels 2026-10-14 03:35:28 +00:00
Devin AI effdf1a6f5 feat: cache raw task template sources so recipient rendering reuses custom-field preprocessing 2026-10-14 03:35:28 +00:00
Devin AI a8b095375b feat: reuse and stop PubSub topic publishers while preserving existence checks and delivery errors 2026-10-14 03:35:07 +00:00
Devin AI 0652590962 feat: reuse timezone parsing within behavior batches and campaign scheduling passes 2026-10-14 03:35:07 +00:00