Matthew Meszaros
b6196f8666
feat: count workspace-sealed mailbox credentials separately in warmblyctl keys status and reseal, scan KeyDomainMailbox columns under the instance key, and report sealed-format values no key opens as unreadable instead of legacy plaintext
2026-10-22 19:11:23 +02:00
Matthew Meszaros
03170c5482
feat: share one cancellation-proof bounded DEK lookup per organization, bound worker token sealing, reseal empty mailbox credential values, refuse an invalid MAILBOX_CREDENTIALS_SEALING in warmblyctl, keep credential exports gated on the instance key and log workspace-key failures in mailbox erasure
2026-10-22 19:11:23 +02:00
Matthew Meszaros
537a622409
feat: seal mailbox SMTP/IMAP logins and OAuth tokens under KMS-protected workspace DEKs behind MAILBOX_CREDENTIALS_SEALING, carry them sealed in ADD_EMAIL and token refreshes, reseal stored credentials in a resumable consumer job, and cache DEKs in process with singleflight in front of Redis and KMS
2026-10-22 19:11:23 +02:00
Matthew Meszaros
95b4ca8c5e
feat: refuse a malformed credential encryption key with a fixed message in encrypt.NewEncrypterFromHex and warmblyctl keys so the error never quotes key material
2026-10-22 15:55:46 +02:00
Matthew Meszaros
3518708a99
feat: add warmblyctl keys status, reseal and generate to count instance-key ciphertext by the key that opens it and move read-key values onto the primary with resumable compare-and-swap writes, and keep sealed-format OAuth values no key opens untouched
2026-10-22 15:24:33 +02:00
Matthew Meszaros
fdea749005
feat: preserve encrypted credentials and MFA enrollments across staged key rotation with scoped token grace periods
2026-10-22 12:37:19 +02:00
Matthew Meszaros
ee8581136e
feat: require direct database sessions and verify authenticated worker dependencies during AWS deployment
2026-10-22 11:01:04 +02:00
Matthew Meszaros
99357a6823
feat: add Terraform AWS hosting with optional Postgres pooling and migration-gated deployments
2026-10-22 08:57:54 +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
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
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
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
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]
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
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
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
8b667c2d29
feat: merge main into the mobile app redesign branch, keep both the apollo and appattest handler imports, and renumber the app_attest_keys migration to 000291 now that main holds 000290
2026-10-12 10:40:02 +02:00
Matthew Meszaros
8c06efc6e4
feat: ship the iOS app to TestFlight from GitHub Actions on merges touching ios/ (ios-release workflow with cloud-managed signing, shared Warmbly scheme, ExportOptions, iPhone-only 1.0.0, privacy manifest), add in-app account deletion and a read-only billing page, let admins exempt an existing account from the emailed login code for App Review, read Apple .p8 keys as PEM or base64 through one applekey parser for Sign in with Apple and APNs, and document the release flow and Apple web sign-in setup
2026-10-12 10:38:14 +02:00
Matthew Meszaros
ec46f57d22
feat: redesign the iOS app (inbox with inbox agent drafted replies edited in the full composer, Remie, home, analytics, CRM, contacts, settings hubs, mailbox connect flow covering every dashboard source) and replace Turnstile in the app with Apple App Attest (attested keys in app_attest_keys, challenge and key endpoints, verifyHuman gate on login, registration and password reset, auth config flag, docs and OpenAPI)
2026-10-11 19:00:50 +02:00
Matthew Meszaros
19d8d24fac
feat: add Apollo integration (API key connect, list imports with hourly sync, contact enrichment) and two-way Clay integration (inbound row URL creating contacts, outbound event rows, automation action) with dashboard pages, brand logos, Discover ranking, org transfer registration and docs
2026-10-11 12:41:56 +02:00
Matthew Meszaros
78da37dfca
Merge pull request #930 from warmbly/devin/1791639319-protect-legacy-dlq-replay
...
feat: protect legacy send dead letters and expose unverified recovery evidence
2026-10-10 14:41:43 +00:00
Matthew Meszaros and Devin AI
ab3f0c0ca4
feat: preserve the unverified dead-letter monitoring identity in redacted administrator CLI output
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-10 13:53:18 +00:00
Matthew Meszaros and Devin AI
ba1c6e3f3e
feat: bound local task dispatch across polling rounds using effective database pool capacity without stamping queued work
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-10 13:23:12 +00:00
Matthew Meszaros
9712ea5262
Merge pull request #926 from warmbly/devin/1791630200-combined-restricted-member-security
...
feat: close all restricted-member data leaks and resource-scope escapes
2026-10-10 12:07:57 +00:00
Matthew Meszaros
74d4c1eb02
feat: enforce current workspace membership on owner-addressed realtime events and notification ingress, stored feeds, deferred email and push delivery
2026-10-10 10:54:59 +00:00
Devin AI
d152c0778a
feat: atomically validate same-day warmup hours and defer invalid configured windows before claiming or sending while preserving visible safety holds
2026-10-10 10:48:15 +00:00
Matthew Meszaros and Devin AI
0fef20131c
feat: reject unknown monitoring identities and severities before generic CLI enum redaction
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-10 09:55:19 +00:00
Matthew Meszaros and Devin AI
d3833c315f
feat: preserve typed monitoring identifiers units severity and coverage reasons in redacted administrator CLI output
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-10 09:44:39 +00:00
Matthew Meszaros
507c98e008
feat: preserve retry-safe locked fleet enrollment identities and trusted canonical CLI credential roots while disclosing unavailable generic runtime log sources
2026-10-10 07:55:46 +00:00
Matthew Meszaros
03ed09138b
feat: add remotely approved warmblyctl administrator sessions with isolated private credentials, redacted operational diagnostics and catalog-bound confirmed recovery actions
2026-10-10 06:41:21 +00:00
Matthew Meszaros
9081b1bce0
feat: add proof-preserving one-use admin device sessions and bounded enrollment-authenticated worker evidence with scoped Kafka partition diagnostics
2026-10-10 06:14:52 +00:00
Devin AI
24b0130c45
feat: reconcile mailbox sync recovery with merged worker Kafka retry and broker-confirmed delivery safeguards
2026-10-09 18:18:26 +00:00
Devin AI
1ca77a431b
feat: integrate merged monitoring updates with ordered worker command recovery
2026-10-09 16:57:57 +00:00
Devin AI
4758216dbf
feat: integrate current monitoring and member access changes with durable mailbox synchronization
2026-10-09 16:56:53 +00:00
Matthew Meszaros
5ab4b5e544
feat: drain Kafka worker commands through bounded ordered mailbox lanes and accelerate safe startup recovery while backing off duplicate filing retries
2026-10-09 16:35:26 +00:00
Matthew Meszaros
9a09740c84
feat: add permission-shaped operational monitoring snapshots with aggregate recovery evidence and read-only broker diagnostics
2026-10-09 15:12:54 +00:00
Devin AI
445e014b5e
feat: recover mailbox synchronization across Gmail Outlook and IMAP with encrypted arrival replay and safe worker lifecycle
2026-10-09 14:24:10 +00:00
Matthew Meszaros and Devin AI
d7a9563e3f
feat: expire stale warmup failure warnings and alert persistent fleet stalls while safely retrying blocked dispatches
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-09 05:37:56 +00:00
Matthew Meszaros
1386dac607
Merge pull request #892 from warmbly/feature/campaign-positive-reply-analytics
...
feat: positive replies, positive reply rate and interested leads in campaign analytics
2026-10-09 04:28:22 +00:00
Matthew Meszaros
daf95ba790
feat: seed fixture mailboxes with test_mode legacy so a fresh make seed and QA stack can join them to their warmup pools again after migration 000273 defaulted new mailboxes to off
2026-10-09 06:08:28 +02:00
Matthew Meszaros
6d88588350
feat: filter the Analytics dashboard by campaigns and campaign folders (campaign_ids/folder_ids on GET /analytics/dashboard, resolved server-side to one deduplicated org-scoped set), with a picker on web, a filter sheet on iOS, CLI flags, an AI tool argument, and API, OpenAPI and guide docs
2026-10-09 06:04:31 +02:00
Matthew Meszaros
166637b395
Merge pull request #886 from warmbly/devin/1791479588-cloud-standing-refresh
...
feat: refresh Cloud-linked pool status without inventing reputation bans
2026-10-08 17:42:14 +00:00
Matthew Meszaros and Devin AI
b16dadd264
feat: refresh self-hosted Cloud pool standing from validated mailbox listings and separate availability holds from reputation bans
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:19:02 +00:00
Matthew Meszaros and Devin AI
d3c6efdc46
feat: retire proven-unstarted warmup reservations and request worker reloads for missing mailboxes
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 16:55:05 +00:00
Matthew Meszaros and Devin AI
e02655fd89
feat: coordinate TypeSafe billing recovery across backend and consumer, attribute token usage and reuse copy judgments during cache outages
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 04:28:37 +00:00
Devin AI
8a45508e79
feat: enforce shared outbound capacity and directional diagnostic consent across campaign manual warmup and seed dispatch with transactional result outbox bounded Gmail Graph DKIM audited repair holds and legacy upgrade gates
2026-10-07 14:02:11 +00:00
Devin AI
8e53fc7027
feat: integrate warmup observation evidence canonical diagnostics send-result recovery cloud trust exact-parent lineage durable dispatch portability and legacy compatibility
2026-10-07 12:38:58 +00:00