Matthew Meszaros
705651e01a
Merge remote-tracking branch 'origin/main' into feat/flow-builder-redesign
...
# Conflicts:
# web/src/app/app/campaigns/[id]/steps/page.tsx
2026-10-06 05:24:33 -07:00
Matthew Meszaros and Devin 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 Meszaros and Devin 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 Meszaros and Devin 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 Meszaros
8d8135c30c
feat: document the self-laying campaign and automation canvases in the sequences, campaigns, collaboration and realtime guides, correct the step position and empty-branch model comments, and add a campaign steps proof flow
2026-10-05 22:13:44 -07:00
Matthew Meszaros and Devin 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 Meszaros
c1606851d8
Merge pull request #845 from warmbly/devin/1791212676-structured-sender-variables
...
feat: add native Sender mailbox personalization to campaign emails
2026-10-05 16:37:09 +00:00
Matthew Meszaros and Devin 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 and Devin AI
d807aa2852
feat: expose typed sender mailbox details in campaign templates, previews and email editor variables
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-05 15:15:12 +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 Meszaros and Devin 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 Meszaros and Devin 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 Meszaros and Devin AI
6a5d76004a
feat: cover Google reauthorization origin rejection and unchanged Microsoft routing with clearer error documentation
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-05 12:20:28 +00:00
Matthew Meszaros and Devin 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 Meszaros and Devin AI
f56278488f
feat: keep worker farewell heartbeats independent of IP discovery and identify CPU-set resource scope accurately
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-05 11:43:16 +00:00
Matthew Meszaros and Devin 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 Meszaros and Devin 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
4e59bfd4d5
Merge pull request #839 from warmbly/feature/admin-redesign
...
feat: redesign the admin panel in a black and white dark-first theme with grouped sidebar sections, header tabs, a collapsible animated sidebar and a rebuilt sign-in, alert operators on admin sign-ins and admin access changes through opsnotify, and carry first-touch attribution from the marketing site to every dashboard link
2026-10-05 10:26:14 +00:00
Matthew Meszaros
1de33d9f41
feat: guard configuration tab links against losing unsaved edits, keep the login captcha mounted for resend, confirm warmup appeal decisions by mailbox, show header tabs only on section pages, show the update pill in the mobile drawer, make admin sign-in alerts opt-in per channel, check the admin bit before loading the account, and alert on admin access only when it changes
2026-10-05 03:21:44 -07:00
Matthew Meszaros
e506544119
Merge origin/main into feature/admin-redesign
2026-10-05 03:01:22 -07:00
Matthew Meszaros
8910b02198
feat: redesign the admin panel in a black and white dark-first theme with grouped sidebar sections, header tabs, a collapsible animated sidebar and a rebuilt sign-in, alert operators on admin sign-ins and admin access changes through opsnotify, and carry first-touch attribution from the marketing site to every dashboard link
2026-10-05 03:01:22 -07: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 Meszaros and Devin 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 Meszaros and Devin 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 Meszaros and Devin AI
5e6047198c
feat: sign a new account in after signup on its own 10s context detached from the request in sessionForNewAccount (internal/app/auth/registration.go), report a failed post-signup sign-in to Sentry instead of dropping it, and record that session under the email auth provider
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-05 05:35:31 +00:00
Matthew Meszaros
ce99b9b162
Merge pull request #836 from warmbly/feat/node-heartbeat-update-path
...
feat: node heartbeat update path survives a node token change
2026-10-05 05:07:07 +00:00
Matthew Meszaros and Devin 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 Meszaros and Devin 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 and Devin AI
0ea856537e
fix(security): drop jwt-go via first-party Apple auth, bump yoke-derive, grant checks:write to rust audit
...
Refs WAR-10
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-04 18:36:28 +00:00
Matthew Meszaros
211cf76230
Merge pull request #831 from warmbly/devin/1791136163-skip-onboarding-seeded-accounts
...
fix: skip the onboarding wizard for seeded, sandbox, bootstrap, and warmblyctl-created accounts
2026-10-04 18:12:49 +00:00
Matthew Meszaros and Devin AI
4da11c4933
fix: keep bootstrap provisioning the owner's org and admin when marking onboarding fails
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-04 18:01:53 +00:00
Matthew Meszaros and Devin AI
acb5b8f9f4
fix: skip the onboarding wizard for seeded, sandbox, bootstrap, and warmblyctl-created accounts
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-04 17:49:23 +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
06c2bdb6e1
feat: link the Slack installer in the background so the OAuth callback never waits on Slack, and fail the integration connect popup as soon as its window is closed while the authorization URL is still loading
2026-10-04 07:10:33 -07: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
Matthew Meszaros
4bd5c1283c
feat: refuse assistant connect links for integrations this instance has no credentials for, give a second OAuth account the first free label so it never replaces another account's connection, open the integration OAuth window inside the click so browsers do not block it, and stub the Slack test repository so link prompts run with APP_URL set
2026-10-04 05:32:44 -07:00
Matthew Meszaros
f092b71a30
feat: answer a spent confirmation budget with reauth_limited and say so in the dashboard and admin dialogs, keep an open confirmation dialog from timing out under the person, and stop the OAuth app webhook secret reveal from re-prompting after a cancel
2026-10-04 05:25:32 -07:00
Matthew Meszaros
4b09d03482
feat: treat the workspace owner as holding every permission when the HubSpot card resolves its matched member
2026-10-04 05:23:49 -07:00
Matthew Meszaros
fd940d905b
feat: answer a click on a Slack approval card that carries no tool call with a private note to ask again or approve in the dashboard
2026-10-04 05:23:36 -07:00
Matthew Meszaros
df0949a019
feat: mask invite and next URL parameters in dashboard and admin analytics, clear a copied invite link when the invitation is sent again, and read hex.info's newest stable release without consuming the gate's package list
2026-10-04 05:22:40 -07:00
Matthew Meszaros
5083bcbd54
feat: carry webhook and OAuth app signing secrets still stored as whsec_ plaintext into a workspace export as is, so they arrive sealed under the destination key instead of blank
2026-10-04 05:21:56 -07:00
Matthew Meszaros
79bf9a15c4
feat: refuse a pasted list of addresses where one recipient address is expected, so no listed recipient is silently dropped
2026-10-04 05:21:36 -07:00
Matthew Meszaros
3de01f25b3
feat: gate MCP and /ai/tools per tool for keys and tokens, with AI_AGENT on the web and playbook tools, and require use_ai for member sessions on /ai/tools
2026-10-04 05:21:18 -07:00
Matthew Meszaros
ab39429e37
feat: send HSTS from the forms service only on FORMS_DOMAIN and strip it in the installer's Caddy block for customer-owned domains, so no customer apex is pinned to HTTPS
2026-10-04 05:19:22 -07:00