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
|
1c325b7a87
|
Merge pull request #903 from warmbly/devin/1791559441-admin-monitoring-final
feat: show evidence-based admin monitoring and truthful mailbox refresh states
|
2026-10-09 16:38:53 +00:00 |
|
Matthew Meszaros
|
2cf19ebedf
|
feat: add permission-aware operational monitoring to admin Overview and health with evidence clocks, backlog signals, coverage docs and typed permission regressions
|
2026-10-09 15:34:18 +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
|
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
|
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
|
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 MeszarosandDevin AI
|
b4ef37fe82
|
feat: restore existing self-host realtime connections through normalized legacy gateway URLs and an authenticated API-origin WebSocket proxy, preserve ticket-bound client IP limits and direct retry fallback, and remember workspace mailbox tag filters across navigation with deterministic default account grouping
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-08 06:57:48 +00:00 |
|
Matthew Meszaros
|
706beca2f7
|
feat: integrate workspace-scoped Cloud ownership with durable consent restrictive standing and send safety while preserving legacy enrollments and renumbering unreleased upgrade migrations
|
2026-10-07 16:32:30 +00:00 |
|
Devin AI
|
d090b8e021
|
feat: complete native and Cloud diagnostic consent immutable shared provider attempt accounting authorized bounded IMAP timing retries conservative feedback pacing and released-schema correction fixtures
|
2026-10-07 15:12:45 +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 |
|
 Matthew MeszarosandDevin AI
|
2926f888c2
|
feat: allow unlimited self-hosted workspaces and bind Cloud billing access to individual workspace links while preserving legacy enrollments
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 13:49:42 +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 |
|
Matthew Meszaros
|
c069da9425
|
Merge pull request #865 from warmbly/devin/1791359161-posthog-production-followups
feat: serialize Kafka client shutdown and reduce routine internal access-log volume
|
2026-10-07 08:04:21 +00:00 |
|
 Matthew MeszarosandDevin AI
|
d8d537fb9a
|
feat: guard Kafka polling, offset storage and publication against client shutdown and preserve production diagnostics by trimming routine internal lookup access logs
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 07:52:15 +00:00 |
|
 Matthew MeszarosandDevin AI
|
b8303060dc
|
feat: integrate current main with a single consumer schema and relation visibility guard while preserving migration cancellation diagnostics and regression coverage
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 07:49:50 +00:00 |
|
Matthew Meszaros
|
bbd0d9f785
|
Merge pull request #863 from warmbly/devin/1791356256-posthog-root-causes
feat: fix PostHog root causes in API validation, Gmail recovery and frontend asset delivery
|
2026-10-07 07:35:04 +00:00 |
|
 Matthew MeszarosandDevin AI
|
dfed1e1593
|
feat: validate API UUIDs, recover expired Gmail history and guard consumer startup and stale frontend assets
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 07:19:15 +00:00 |
|
 Matthew MeszarosandDevin AI
|
7667a836ec
|
feat: resolve backend-compatible fleet images before node enrollment so failed joins cannot create duplicate orphan nodes on retry
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 07:05:38 +00:00 |
|
 Matthew MeszarosandDevin AI
|
3acfe64109
|
feat: preserve self-host upgrades with exact realtime CSP discovery, consumer migration readiness and backend-compatible fleet targets
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-07 06:53:14 +00:00 |
|
Matthew Meszaros
|
a92e40b4d1
|
feat: show Cloud warmup analytics and placement alongside local history on linked self-hosted instances with scoped report APIs
|
2026-10-07 06:12:04 +00:00 |
|
 Matthew MeszarosandDevin AI
|
e0f9a55a30
|
feat: apply shared query validation to the legacy invitation lookup before rate limiting and preserve valid link behavior
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 12:52:39 +00:00 |
|
 Matthew MeszarosandDevin AI
|
4d3c782ca1
|
feat: reject unsupported raw API query text before mailbox and campaign searches reach the database
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 12:22:33 +00:00 |
|
 Matthew MeszarosandDevin AI
|
416c4feee3
|
feat: prevent private API response storage and remove wildcard CORS from the static Pages dashboard
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 12:05:54 +00:00 |
|
 Matthew MeszarosandDevin AI
|
f52ef240b4
|
feat: add audited repeat-safe sample data provisioning for active dedicated Test workspaces in Admin Testers
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 09:23:31 +00:00 |
|
 Matthew MeszarosandDevin AI
|
925e0edc31
|
feat: proxy dashboard and editor image previews with SSRF-safe bounded fetching while preserving original customer email URLs
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 07:28:25 +00:00 |
|
 Matthew MeszarosandDevin AI
|
0f12b3b250
|
feat: preserve static CSP preview and runtime configuration cache rules with current main
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 06:05:17 +00:00 |
|
 Matthew MeszarosandDevin AI
|
bb0b822cb0
|
feat: reject unsupported request text and secure local dashboard responses
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-06 04:45:36 +00:00 |
|
 Matthew MeszarosandDevin AI
|
9d0f43780b
|
feat: provision onboarding-complete reviewer workspaces with expiring Test access, bounded credits and Test header labels
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 16:15:56 +00:00 |
|
Matthew Meszaros
|
fc18d8c186
|
Merge pull request #842 from warmbly/devin/1791201936-google-oauth-frontend-flag
feat: configure Google mailbox OAuth and trusted multi-dashboard returns
|
2026-10-05 13:31:17 +00:00 |
|
 Matthew MeszarosandDevin AI
|
849cf18f55
|
feat: bind password recovery, invitations, mailbox and integration OAuth, referral and billing returns to trusted initiating dashboards
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 12:51:37 +00:00 |
|
Matthew Meszaros
|
b2bde4ed92
|
Merge pull request #840 from warmbly/devin/1791198671-admin-health-notices
feat: correct admin setup and health notices and add safe invitation cleanup
|
2026-10-05 12:35:00 +00:00 |
|
 Matthew MeszarosandDevin AI
|
caa1633dac
|
feat: verify main and TAC assessment dashboard origins share configurable backend CORS and OAuth routing
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 12:24:11 +00:00 |
|
 Matthew MeszarosandDevin AI
|
f58a6c1ff9
|
feat: control Gmail mailbox OAuth per frontend deployment and bind callbacks to allowlisted dashboard origins
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 12:16:34 +00:00 |
|
 Matthew MeszarosandDevin AI
|
5ae09e0e15
|
feat: separate fleet mailbox targets from measured CPU and RAM, report node public egress IPv4 and add workload share analytics
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 11:24:32 +00:00 |
|
 Matthew MeszarosandDevin AI
|
ded4e5f700
|
feat: correct split-host admin health checks and registration notices, distinguish informational context from problems, and add audited expired-invitation cleanup
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 11:17:13 +00:00 |
|
Matthew Meszaros
|
549a0f7293
|
Merge pull request #833 from warmbly/devin/1791173929-safari-oauth-popups
fix: open OAuth sign-in windows inside the click so Safari stops blocking them, and keep listening when one is blocked
|
2026-10-05 10:00:02 +00:00 |
|
Matthew Meszaros
|
01aae25483
|
Merge pull request #834 from warmbly/devin/1791174213-turnstile-trusted-device
feat: light, input-width Turnstile, one captcha per sign-in, and opt-in remembered devices
|
2026-10-05 08:37:40 +00:00 |
|
Matthew Meszaros
|
76ae0fcef2
|
Merge remote-tracking branch 'origin/main' into devin/1791173929-safari-oauth-popups
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
# Conflicts:
# web/src/router.tsx
|
2026-10-05 06:10:59 +00:00 |
|
Matthew Meszaros
|
38f1cdb517
|
Merge remote-tracking branch 'origin/main' into devin/1791174213-turnstile-trusted-device
|
2026-10-05 05:58:16 +00:00 |
|
Matthew Meszaros
|
e8a9dbc810
|
Merge pull request #837 from warmbly/devin/1791175783-slack-link-auto-and-oidc
feat: auto-link Slack members by email, Continue with Slack for mismatched emails, standalone /slack/link page
|
2026-10-05 05:56:40 +00:00 |
|
 Matthew MeszarosandDevin AI
|
8d034059f3
|
fix(auth): fail revocation when remembered devices can't be forgotten; resend never sends the device token
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 05:51:31 +00:00 |
|
 Matthew MeszarosandDevin AI
|
9eb109559f
|
feat: send OAuth sign-in windows that lost their opener (allowed from a blocked-popup prompt) back to the waiting dashboard tab via a new /oauth-return page and same-origin BroadcastChannel, marking dashboard-started mailbox states so the native app keeps its warmbly:// callback
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 05:40:23 +00:00 |
|
 Matthew MeszarosandDevin AI
|
55d1b9a634
|
feat: link Slack members to Warmbly automatically by matching email, add Continue with Slack (Sign in with Slack) for mismatched emails, and move the Slack link page to a standalone /slack/link screen
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 05:00:22 +00:00 |
|
Matthew Meszaros
|
cbee2d3073
|
feat: answer a node heartbeat sent with INTERNAL_API_TOKEN where NODE_BROKER_TOKEN is required with the node's desired version only, recording nothing, through NodeHeartbeatAuthMiddleware and fleetnode UpdateOnly, so a node on an older release always updates itself onto the broker token without NODE_ACCEPT_INTERNAL_TOKEN, and say so in the configuration and split-deployment docs
|
2026-10-05 06:54:31 +02:00 |
|
 Matthew MeszarosandDevin AI
|
e77e2dd98b
|
feat: light, input-width Turnstile on the auth screens, one captcha per sign-in instead of a second one on the code step, and an opt-in 30-day remembered device that skips the emailed login code with a random server-hashed account-bound token, revoked on password reset or change and on signing out everywhere or other sessions
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
2026-10-05 04:32:15 +00:00 |
|
Matthew Meszaros
|
36149cdebd
|
feat: add Pipedrive CRM mode (migration 000262) with write-through deals, activities and notes, outreach logged as Pipedrive activities, per-connection webhooks, filter import, a Warmbly person panel and modals, a provider registry behind the shared /crm routes, a provider-aware dashboard, and centered popups replacing the integration side drawer
|
2026-10-04 19:20:48 +02:00 |
|
Matthew Meszaros
|
f23c04ddd8
|
Merge remote-tracking branch 'origin/main' into feature/slack-app-agent
# Conflicts:
# deploy/slack/manifest.json
# docs/content/docs/development/slack-app.mdx
# docs/content/docs/guides/slack.mdx
# internal/app/integration/slack.go
# internal/app/slackapp/agent.go
# internal/app/slackapp/client.go
# internal/app/slackapp/slackapp_test.go
# web/src/lib/integrations/oauthPopup.ts
|
2026-10-04 06:54:19 -07:00 |
|