Commit Graph
446 Commits
Author SHA1 Message Date
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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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 MeszarosandDevin 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