Matthew Meszaros
ddecd1e65a
feat: compare presented SMTP and IMAP passwords with crypto/subtle.ConstantTimeCompare when pool link enrollment adopts the workspace's existing Cloud mailbox
2026-10-21 06:38:13 +02:00
Matthew Meszaros
f8fbca7cbb
feat: adopt the linked Cloud workspace's own SMTP/IMAP mailbox on self-hosted enrollment when the server presents its exact stored credentials and no active Cloud campaign sends from it, instead of answering pool_link_mailbox_conflict, with tests and Warmbly Cloud and error code docs
2026-10-21 06:20:14 +02:00
Devin AI
348dd803d3
feat: reserve Unibox search migrations after released warmup retirement and preserve retirement evidence through search rollback
2026-10-20 07:51:13 +00:00
Devin AI
7e19faa5e9
feat: incorporate released warmup retirement migration before reconciling Unibox search versions
2026-10-20 07:45:04 +00:00
Devin AI
52a4df2f1a
feat: permanently retire uncertain warmup sends without replay or refund and automatically resume eligible mailbox schedules
2026-10-20 06:36:25 +00:00
Devin AI
214428e2a5
feat: make monitoring permission evidence assertions clock-deterministic and isolate Unibox benchmark request deadlines
2026-10-20 06:27:50 +00:00
Devin AI
68dcaa7893
feat: keep Unibox search mailbox scoping in index scans and cover broad body prefixes, filters and representative ties
2026-10-20 06:14:18 +00:00
Devin AI
acbb701a82
feat: index Unibox participant searches, propagate interrupted reads and page conversations before aggregating thread state
2026-10-20 05:57:27 +00:00
Matthew Meszaros and Devin AI
bf6a450aa9
feat: recover abandoned warmup preparations and expose durable send safety holds in mailbox health
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-20 03:50:35 +00:00
Matthew Meszaros
0e82f1827c
feat: publish ACCOUNT_SYNCED for mailboxes the Warmbly Cloud settings sync changed with the job's own context instead of the pass deadline in internal/app/consumer/cloud_settings_sync.go, so an expired deadline cannot drop the event
2026-10-19 14:27:09 +02:00
Matthew Meszaros
b2a89f8ce4
feat: stamp cloud_link_mailboxes.settings_observed_at before mirroring Warmbly Cloud warmup settings so an older report cannot overwrite a newer one, give each cloud link its own deadline in the settings sync, keep drawer edits made during a save or reverted to the stored value, and correct the cloud_warmup_not_applied docs
2026-10-19 11:48:47 +02:00
Matthew Meszaros
061c804062
feat: send the instance's mailbox timezone to Warmbly Cloud with every relayed warmup settings change in internal/app/email/cloud_warmup.go, so the Cloud window is always read in the instance's zone
2026-10-19 10:53:13 +02:00
geetansh
4f926b3efc
feat: make Warmbly Cloud the owner of an enrolled mailbox's warmup ramp, window and days by relaying PATCH /emails/:id and warmup lifecycle edits to Cloud, mirroring Cloud's reported settings into the local columns on enroll, listing and a 15-minute consumer sync, keeping re-enrollment from overwriting them, and showing the Cloud-managed state on the Warmup tab
2026-10-19 10:53:05 +02:00
devin-ai-integration[bot]
e31d2ec479
Merge pull request #1000 from geetansh/warmup-cleanup-progress
...
feat: keep warmup inbox cleanup moving when one mailbox's Cloud checks fail or run slow
2026-10-19 07:29:58 +00:00
devin-ai-integration[bot]
ae19fbedb1
Merge pull request #1006 from 555aaditya/fix/993-unibox-overview-forget
...
feat: keep the shared unibox overview across read-only POSTs and drop it when opening a message marks it read
2026-10-19 07:29:57 +00:00
devin-ai-integration[bot]
f2304c0d0a
Merge pull request #1004 from 555aaditya/fix/orgtransfer-register-transfer-jobs
...
feat: register org_export_jobs and org_import_jobs as excluded from workspace archives, and check in CI that every org table is registered
2026-10-19 07:27:57 +00:00
devin-ai-integration[bot]
5f70e3821e
Merge pull request #1008 from warmbly/devin/1792390038-cloud-standing-fallback
...
feat: keep unavailable Cloud reports as sending holds without misclassifying them as reputation rests, including scheduler fallback reads
2026-10-19 06:54:43 +00:00
Devin AI
5ee2049ab4
feat: resolve Graph complaint MIME before writing an arrival body so temporary provider failures cannot accumulate orphaned blobs
2026-10-19 06:20:52 +00:00
Devin AI
a2e81c2ef5
feat: keep Graph complaint reports retryable across temporary raw message failures and bound MIME depth, parts and decoded content before admitting an arrival
2026-10-19 06:19:42 +00:00
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
555aaditya
1ff9da55a5
feat: keep the shared unibox overview across read-only POSTs (contact, deal and task search and summary, segment and template previews, campaign estimate) and drop it when opening a message marks it read
2026-10-19 01:59:29 +05:30
555aaditya
3386052ce8
feat: detect spam-complaint feedback reports on Microsoft Graph mailboxes by reading the report parts from the message's raw MIME when the synced rendered body cannot name the send, and drop the deliverability docs callout saying Graph complaints are not detected
2026-10-19 01:52:36 +05:30
555aaditya
4c0df6762d
feat: list org_export_jobs and org_import_jobs in the workspace archive's ExcludedTables, and add the live check (run in CI with the other spec checks) that every table with an organization_id is registered or excluded
2026-10-19 01:44:51 +05:30
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
geetansh
2050fcf23e
feat: keep warmup inbox cleanup moving when one mailbox's Cloud checks fail or run slow, retry each held mailbox on its own progress-aware schedule and keep it visible in the job panel
2026-10-18 10:12:59 +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
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]
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 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 Meszaros and Devin 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]
10cdecefd7
Merge pull request #991 from warmbly/devin/1792134927-linked-mailbox-status
...
feat: keep cold rests visible and explain repeated mailbox connection reports
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
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
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
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