Commit Graph
1205 Commits
Author SHA1 Message Date
Matthew MeszarosandDevin AI fda0743eae feat: clean application header with route-aware breadcrumbs and responsive workspace navigation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-07 18:07:18 +00:00
Devin AI 26a74fa207 feat: align Cloud diagnostic participation regression fixtures with workspace-scoped pool enrollment and verify preserved legacy enrollment controls in the full web suite 2026-10-07 16:38:59 +00:00
Devin AI a9cee620b5 feat: retain current main URL-backed mailbox tag filters and atomic campaign template subject and body updates alongside diagnostic participation documentation 2026-10-07 16:34:24 +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
Matthew Meszaros 8b72f1f6e0 Merge pull request #872 from warmbly/devin/1791388041-mailbox-filter-template-subject
feat: retain mailbox filters and template subjects in new campaigns
2026-10-07 16:06:17 +00:00
Matthew Meszaros 8aacf13bd8 Merge pull request #868 from warmbly/devin/1791378965-workspace-cloud-billing
feat: allow unlimited self-hosted workspaces with workspace-scoped Cloud subscriptions
2026-10-07 16:06:07 +00:00
Matthew MeszarosandDevin AI 72b3620ea0 feat: retain mailbox tag filters on refresh and compose campaign wizard template subject and body updates against the latest draft
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-07 15:55:51 +00:00
Matthew MeszarosandDevin AI d93cf3c138 feat: preserve isolated email preview headers on the canonical Cloudflare Pages path while retaining dashboard frame protection
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-07 15:47:00 +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
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 1ac3ac5f35 feat: rewrite dashboard SPA routes to / instead of /index.html in web/public/_redirects so Cloudflare Pages serves the app shell for deep links while 404.html answers missing assets, and make check-pages-routing require the / target 2026-10-07 10:54:34 +02:00
Matthew Meszaros 2a6f88837b Merge pull request #862 from warmbly/devin/1791355411-self-host-upgrade-compatibility
feat: preserve self-host realtime and database compatibility during upgrades
2026-10-07 08:00:28 +00:00
Matthew Meszaros a6810f6ebe Merge pull request #864 from warmbly/devin/1791358068-campaign-name-priority
feat: prioritize campaign names over descriptions in campaign and analytics lists
2026-10-07 07:53:35 +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 efd2bb26b4 feat: prioritize campaign names over descriptions and use available list width while keeping actions accessible
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-07 07:30:19 +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 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 Meszaros d2a8e0830d Merge pull request #856 from warmbly/devin/1791293357-main-security-fixes
feat: patch vulnerable frontend dependencies across all production workspaces
2026-10-06 14:00:43 +00:00
Matthew Meszaros cfa948602d Merge pull request #855 from warmbly/devin/1791292066-filter-report-notifications
feat: filter system reports from reply notifications and default the bell to unread
2026-10-06 14:00:00 +00:00
Matthew MeszarosandDevin AI 63bb192a40 feat: patch vulnerable production frontend dependencies across dashboard admin site docs and forms and preserve site cursor type narrowing
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-06 13:38:12 +00:00
Matthew MeszarosandDevin AI 25514e13f6 feat: align reply notifications and queued delivery with Unibox machine-mail filtering and open the bell on unread
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-06 13:21:14 +00:00
Matthew Meszaros e6b0b4dbd3 Merge pull request #854 from warmbly/feat/flow-builder-redesign
feat: rebuild the automation and campaign step builders as a self-laying, animated design-tool canvas with + insertion, branch columns, a step picker and side-panel editing
2026-10-06 13:04:46 +00:00
Matthew Meszaros 01e56b06cb feat: make new campaign conditions drafts until saved, keep one Otherwise per step, carry switch case paths through renames by row, bridge deleted steps only through their main path, lock flow panels for viewers, and harden canvas pointer and Space input 2026-10-06 05:59:27 -07:00
Matthew Meszaros 69f2fef943 feat: move the flow canvas zoom controls to the bottom left, clear of the assistant launcher, in the app and the site mocks 2026-10-06 05:29:09 -07:00
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 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 Meszaros 62674fdcc9 feat: animate flow edits so cards glide to their new places, new steps fade and grow in, removed ones fade out, lines morph between straight and branched, and pills, waits and add buttons travel with their lines, skipping animation on first paint 2026-10-06 03:32:47 -07:00
Matthew Meszaros 1bbc88b250 feat: make the flow builders a full-height design-tool canvas with two-finger and drag panning with momentum, pinch and Ctrl or Cmd wheel zoom toward the pointer, a moving dot grid, no scrollbars, fenced bounds, zoom shortcuts, and a campaign canvas that fills the window 2026-10-06 03:24:49 -07:00
Matthew Meszaros 26b0333d87 feat: draw the flow builders as a plain scrolling page instead of a pan and zoom canvas, scroll a step into view only when needed, fade the panel and picker in, keep the campaign flow growing with the page beside a sticky panel, move stop on reply into a toolbar row, and drop React Flow and dagre 2026-10-06 02:07:47 -07:00
Matthew Meszaros 2d76c535c8 feat: quiet the flow canvas with two-line cards, a + that shows on hover, waits as plain text beside the line, pill-wide columns, an amber dot for steps needing setup and faded unconnected steps 2026-10-06 01:47:29 -07: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 34fbbc3c54 feat: apply per-response development nonces after Vite finishes rendering HTML
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-06 05:57:08 +00:00
Matthew MeszarosandDevin AI 589bc823ed feat: generate static dashboard CSP hashes and isolate email preview styling across Vite nginx and Pages
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-06 05:46:52 +00:00
Matthew Meszaros 91e031a41c feat: confirm discarding unsaved step edits outside the selection state updater, and mint campaign branch ids with the plain-HTTP-safe fallback 2026-10-05 22:20:56 -07:00
Matthew Meszaros aa63ed9a4f feat: redraw the site's campaign builder mock, campaigns page builder and hero fragments as the self-laying tree canvas with wait chips, column pills and End terminals, and drop dot and drag wording from the switch step editor 2026-10-05 22:19:23 -07: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 d25055c122 feat: rebuild the campaign step builder on the shared tree canvas with conditions as columns, waits on the lines, a step picker, path and step side panels with unsaved-change guards, reconnect-on-delete, and switch cases that keep their paths through a rename 2026-10-05 22:10:23 -07:00
Matthew Meszaros b553c61db1 feat: drop the automation canvas layout hook and client now that the builder derives positions from the flow's structure 2026-10-05 21:57:32 -07:00
Matthew Meszaros 63ae572345 feat: keep the connector + button under the pointer on hover, open the step picker beside the cards, top-anchor the first view, and update the automation docs, the site's builder demo and branching copy, and a proof flow for the tree builder 2026-10-05 21:56:30 -07: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 Meszaros 42205a6ade feat: rebuild the automation builder as an auto-laid-out tree with + insertion, branch columns, a step picker, undo/redo, inline issues and a side panel on a shared flow canvas 2026-10-05 21:41:40 -07: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 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 MeszarosandDevin 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 e19c55ebd6 feat: match the text/html media type case-insensitively in the dashboard client's web-page guard and cover a mixed-case Content-Type in Client.test.ts 2026-10-05 17:14:41 +02:00
Matthew Meszaros 0731a8c788 feat: refuse an HTML page as an API response in the dashboard client (api_url_not_api) so a missing or wrong API_URL falls back to the unreachable login state instead of crashing, and serve config.js with Cache-Control no-store from the dashboard and admin Pages _headers to match the nginx images 2026-10-05 17:04:05 +02:00