Commit Graph
3804 Commits
Author SHA1 Message Date
Devin AI fe328eca7e feat: retain missing Cloud report classification when scheduler health batches fall back to a single mailbox read 2026-10-19 06:13:06 +00:00
geetansh aafcb4f759 feat: treat a missing Warmbly Cloud report as a send hold only, never a rest, while every real hold still applies in full and the send gate stays closed until a current report arrives 2026-10-18 10:13:00 +00:00
devin-ai-integration[bot] 169376ef9e Merge pull request #995 from warmbly/devin/1792205408-mailbox-recovery
feat: automatically clear recovered legacy mailbox and provider-limit warnings
v0.6.56
2026-10-17 18:14:01 +00:00
Devin AI edd1060e3e feat: synchronize recovered mailbox warnings with current main and reserve migration 313 after the new performance indexes 2026-10-17 17:50:09 +00:00
devin-ai-integration[bot] 3e0f5302dd Merge pull request #998 from warmbly/devin/1792255623-grant-delete-reauth-layer
feat: keep grant-removal identity confirmation above the pending confirmation dialog
2026-10-17 17:48:45 +00:00
devin-ai-integration[bot] 2fa359a3b5 Merge pull request #997 from warmbly/devin/1792207123-remie-tool-limit
feat: keep Remie within OpenAI tool limits without losing built-in or MCP capabilities
2026-10-17 17:48:44 +00:00
Matthew MeszarosandDevin AI 0ba1acf583 feat: keep identity confirmation above pending admin grant removal and cover secure retry and cancellation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-17 16:48:52 +00:00
Matthew Meszaros fdbca291d3 Merge pull request #996 from warmbly/perf/workspace-aggregate-database-load
feat: cut database load from issue 993 without changing results
2026-10-17 04:00:02 +00:00
Matthew Meszaros eea71832ec feat: count campaign progress emails_sent through the existing sequences join and return the restore context error when ANALYZE is cancelled 2026-10-17 05:43:20 +02:00
Matthew MeszarosandDevin AI 04cd135503 feat: keep Remie OpenAI requests within the tool limit using permission-scoped discovery for built-in and MCP capabilities
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-17 03:27:56 +00:00
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 6b8c66c249 feat: clear recovered legacy mailbox connection and provider-limit errors using confirmed send and sync evidence 2026-10-17 02:57:14 +00: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