Commit Graph
3481 Commits
Author SHA1 Message Date
Matthew Meszaros 09ffccca80 feat: show out-of-scope sidebar pages to restricted members as locked rows that explain their access scope instead of hiding them 2026-10-09 15:07:29 +02:00
Matthew Meszaros 1f928de78f feat: record member access proof with a per-flow account option in the qa harness, and hide inbox compose and out-of-scope mailbox tags from restricted members 2026-10-09 13:42:09 +02:00
Matthew Meszaros bb4156cc6a feat: add resource-scoped member access that restricts a member to selected campaign folders, campaigns and mailboxes read-only, enforced in the API route gate, SQL filters, permission trigger, realtime channels and dashboard 2026-10-09 13:34:05 +02:00
Matthew Meszaros 2eede6647f Merge pull request #895 from warmbly/devin/1791529804-cookieless-source-attribution
feat: preserve cookieless signup sources and expose admin referrers
2026-10-09 08:10:52 +00:00
Devin AI 4cad34c84a feat: retain signup attribution through same-path marketing query navigation and reject cross-origin landing paths 2026-10-09 07:36:25 +00:00
Devin AI 5d641b3ebe feat: cover nested onboarding acquisition redirects through the parent route guard in frontend regressions 2026-10-09 07:20:04 +00:00
Devin AI 6af3ba910c feat: preserve cookieless first-touch signup attribution through marketing and app redirects and expose admin referrer hosts 2026-10-09 07:19:23 +00:00
Matthew Meszaros 0ff58248e1 Merge pull request #894 from warmbly/devin/1791523174-persistent-mailbox-alerts
feat: prevent held warmup tasks starving the queue and expire stale warnings with fleet alerts
v0.6.41
2026-10-09 06:27:06 +00:00
Matthew MeszarosandDevin AI f06617afe3 feat: verify existing warmup state and new mailbox tasks survive release upgrades and gate CI on live recovery regressions
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-09 06:05:20 +00:00
Matthew MeszarosandDevin AI 5a85395ad7 feat: ignore invalid future warmup evidence before selecting current incidents so genuine failures remain visible
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-09 05:57:34 +00:00
Matthew MeszarosandDevin AI 859b14bfaa feat: reject future-dated loading observations in mailbox warnings and fleet incident detection
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-09 05:45:36 +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 676445a6ee Merge pull request #888 from warmbly/devin/1791517488-campaign-mailbox-admission
feat: enforce per-mailbox campaign caps and configurable variable sending defaults
v0.6.40
2026-10-09 04:56:33 +00:00
Matthew Meszaros b95655c358 Merge remote-tracking branch 'origin/main' into fix888 2026-10-09 06:40:54 +02:00
q 38208c84e3 feat: renumber the mailbox behavior defaults migration to 000276 and its live test path, after 000275 went to the unibox forward-thread migration 2026-10-09 06:40:25 +02:00
Matthew Meszaros c513fd2d93 Merge pull request #893 from warmbly/fix/oauth-dynamic-client-registration
feat: mark unverified OAuth apps as not affiliated with Warmbly and reserve the Warmbly name in app names
2026-10-09 04:30:25 +00:00
Matthew Meszaros 4d46290bc0 Merge pull request #889 from warmbly/fix/campaign-pool-pacing
feat: let one campaign fill a large sender pool by keeping sub-minute pacing in finalSlot and dividing the pool send interval in floating point
2026-10-09 04:28:35 +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 1ce4a75545 Merge pull request #890 from warmbly/feature/unibox-forwarded-email-threading
feat: show forwarded emails inside the original Unibox thread
2026-10-09 04:27:52 +00:00
Matthew Meszaros da861b2610 Merge pull request #891 from warmbly/feature/analytics-campaign-folder-filter
feat: filter the Analytics dashboard by campaigns and campaign folders
2026-10-09 04:27:37 +00:00
Matthew Meszaros db32f2347d feat: mark unverified OAuth apps as not affiliated with Warmbly on the consent screen, reserve the Warmbly name in third-party app names (registration, edit, import, and self-registered clients), and show no website for self-registered clients 2026-10-09 06:19:09 +02:00
Matthew Meszaros b9cc87db1a feat: enable configurable 28–32 daily mailbox sending plans with admission rechecks, clear limit controls and consistent UTC placement budgets 2026-10-09 04:18:52 +00:00
Matthew Meszaros c6c79d8dcd feat: enforce configurable per-mailbox campaign admission caps with UTC budgets, accurate diagnostics and PostgreSQL regressions 2026-10-09 04:18:52 +00:00
Matthew Meszaros fd1c333402 feat: add positive replies, positive reply rate, interested leads and a reply-class breakdown to campaign analytics (summary, per-step, daily series, AI tool, OpenAPI, Zapier/Make samples), show them on the campaign overview with a reply quality card, positive chart series and step column, mirror them in the iOS models, document them, and seed classified replies plus a proof flow 2026-10-09 06:08:28 +02: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 11b56b7031 feat: file Unibox forwards into the conversation they were forwarded from via email_tasks.forward_thread_id and unibox_emails.filed_forward, sent with no provider thread or In-Reply-To and skipped by reply threading 2026-10-09 06:03:21 +02:00
Matthew Meszaros b66c98a4ca feat: let one campaign fill a large sender pool by keeping sub-minute pacing in finalSlot and dividing the pool send interval in floating point 2026-10-09 05:58:14 +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
v0.6.39
2026-10-08 17:42:14 +00:00
Matthew Meszaros 18bd3b16c2 Merge pull request #885 from warmbly/devin/1791477768-existing-mailbox-recovery
feat: recover existing warmup mailboxes with never-started sends
2026-10-08 17:40:26 +00:00
Matthew MeszarosandDevin AI 65c48b8cb8 feat: publish mailbox-list standing transitions separately from consumer sync and prevent duplicate Cloud health notifications
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:32:04 +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 dd9b1d5895 feat: keep warmup seeding running when dispatch recovery fails
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 17:01:05 +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 Meszaros acbd79e3bf Merge pull request #884 from warmbly/devin/1791468189-dashboard-domexception
feat: handle already-registered passkeys without dashboard crash reports
v0.6.38
2026-10-08 14:58:04 +00:00
Matthew Meszaros a1efdc928f Merge pull request #883 from warmbly/devin/1791468218-toast-contrast-sheets-setup
feat: fix notification text contrast and document Google Sheets OAuth setup
2026-10-08 14:57:55 +00:00
Matthew MeszarosandDevin AI dd56447c73 feat: classify duplicate passkey enrollment separately from sign-in cancellation and keep known already-registered authenticator refusals out of dashboard error tracking
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 14:15:54 +00:00
Matthew MeszarosandDevin AI 3d3e546946 feat: clarify project-level Google OAuth consent isolation when setting up Sheets alongside Gmail verification
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 14:13:10 +00:00
Matthew MeszarosandDevin AI eef3ea356c feat: make shared notification text readable in both themes and document Google Sheets OAuth credentials and contact sync setup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 14:06:32 +00:00
Matthew Meszaros 1ab74efedb Merge pull request #882 from warmbly/devin/1791458327-warmup-host-coverage
feat: use qualified recipients and balanced host coverage without paid-receiver bias
2026-10-08 12:27:31 +00:00
Matthew Meszaros d22893ca65 Merge pull request #881 from warmbly/devin/1791458091-mailbox-tag-sets
feat: group mailbox accounts by their complete unordered tag sets
2026-10-08 12:27:24 +00:00
Matthew Meszaros f6f46b1647 Merge pull request #880 from warmbly/devin/1791456836-worker-startup-recovery
feat: retry worker startup reload requests and show provider-specific warmup failure guidance
2026-10-08 12:27:14 +00:00
Matthew Meszaros 332b9b627f Merge pull request #879 from warmbly/devin/1791453680-normal-existing-cloud-connections
feat: keep existing Cloud connections usable without a legacy migration flow
2026-10-08 12:27:05 +00:00
Matthew MeszarosandDevin AI 4b11147ff9 feat: align mailbox filtering documentation with complete tag-set grouping
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 11:32:49 +00:00
Matthew MeszarosandDevin AI 691280cdef feat: give premium warmup senders all qualified recipients and balance host coverage without paid-receiver bias
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 11:31:05 +00:00
Matthew MeszarosandDevin AI c28097cafd feat: keep mailbox accounts with identical unordered tag sets together in the default list order
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 11:18:15 +00:00
Matthew MeszarosandDevin AI 46673a0cb8 feat: keep worker startup reload requests pending when the backend returns a null heartbeat reply
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 11:08:09 +00:00
Matthew MeszarosandDevin AI c687b6fd78 feat: retry unacknowledged worker startup heartbeats and show provider-specific warmup failure guidance
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 10:57:15 +00:00
Matthew MeszarosandDevin AI d86a9b683a feat: clarify that per-workspace Cloud billing applies to new connections without changing existing shared plans
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 10:11:04 +00:00
Matthew MeszarosandDevin AI add3d31050 feat: keep existing Warmbly Cloud connections fully usable and remove the legacy migration settings flow
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-08 10:10:33 +00:00