Commit Graph
143 Commits
Author SHA1 Message Date
Matthew Meszaros cdb2eaa229 feat: add analytics share preview
Add preview sizing, copy-to-clipboard, and improved PNG rendering for analytics share cards. Refresh the exported share card visuals and keep chart bars constrained for compact layouts.
2026-06-04 18:57:08 +02:00
Matthew Meszaros f72952803e feat: add explicit campaign sender picker
Load campaign senders for explicit sender strategy and persist the selected mailbox pool through the campaign sender endpoint. Add a reusable account selector in campaign preferences.
2026-06-04 18:57:02 +02:00
Matthew Meszaros 40413db071 feat: add weekly campaign schedule editor
Add the dashboard editor for per-day campaign sending windows and wire campaign models to the new schedule_windows API shape. Refresh the shared calendar/date controls used by the campaign schedule screen.
2026-06-04 18:56:57 +02:00
Matthew Meszaros 203a3e0471 feat: add contacts sheet sync UI 2026-06-04 11:50:14 +02:00
Matthew Meszaros 7fe63a98eb feat: add lead sync frontend clients 2026-06-04 11:50:09 +02:00
Matthew Meszaros 6a4c370152 feat: share contact import mapping utilities 2026-06-04 11:50:04 +02:00
Matthew Meszaros e598b3bd5c feat: remove sheets from integrations UI 2026-06-04 11:50:00 +02:00
Matthew Meszaros 379e056a24 feat: fix organization sync query handling 2026-06-04 09:30:36 +02:00
Matthew Meszaros 0c49d3c607 feat: improve app routing and browser chrome 2026-06-04 08:55:26 +02:00
Matthew Meszaros f15753dc76 feat: polish dashboard menus and actions 2026-06-04 08:55:13 +02:00
Matthew Meszaros 276758e8b8 feat: improve contact drawer interactions 2026-06-04 08:54:48 +02:00
Matthew Meszaros 981ab01c8c feat: add bulk mailbox warmup controls 2026-06-04 08:54:42 +02:00
Matthew Meszaros ca310748fe feat: polish campaign schedule controls 2026-06-04 08:54:33 +02:00
Matthew Meszaros d630619a30 feat: redesign campaign sequence builder 2026-06-04 08:54:25 +02:00
Matthew Meszaros 33ccb99e7b feat: refresh campaign detail overview 2026-06-04 08:54:17 +02:00
Matthew Meszaros ef58d64988 feat: add campaign send control settings 2026-06-04 08:53:56 +02:00
Matthew Meszaros 2ad67762d4 feat: add dashboard analytics visuals 2026-06-04 08:53:42 +02:00
Matthew Meszaros 24422ed427 feat: add campaign template scoring
Add an advisory content score endpoint that reuses warmup linting heuristics for campaign templates.

Surface the score in the sequence editor so users can check subject and body deliverability before sending.
2026-06-03 06:27:07 +02:00
Matthew Meszaros e81f6d54cf feat: add mailbox deliverability checks
Add an email auth-check endpoint and dashboard panel for SPF, DKIM, and DMARC validation.

Expose warmup content segment editing on mailboxes so segment-aware warmup content can be selected intentionally.
2026-06-03 06:26:23 +02:00
Matthew Meszaros 15ef9d4994 feat: add warmup content controls
Add warmup content generation and admin review surfaces, plus mailbox warmup appeal/status APIs.

Track warmup engagement and tampering signals so unsafe mailboxes can be handled by the warmup flow.
2026-06-03 05:05:53 +02:00
Matthew Meszaros 83eae84d49 feat: merge main into warmup branch
Resolve the main-branch conflict in realtime event publishing by keeping both warmup account-health and audit-created events. Renumber the warmup migrations after the current main migration tail.
2026-06-01 11:36:04 +02:00
Matthew Meszaros a04d7450bc feat: guard warmup reconciliation by access
Make the warmup task reconciler re-check account state and org warmup access before scheduling replacement tasks. Remove pool membership for accounts whose org can no longer use warmup to avoid repeated no-access task churn.
2026-06-01 11:19:44 +02:00
Matthew Meszaros fc18b8e470 Merge pull request #23 from warmbly/feature/passkey-login-experience-2 2026-06-01 09:15:21 +02:00
Matthew Meszaros 218af13dd9 feat: add session management
Add authenticated session listing and revocation APIs, track the auth provider on sessions, and expose active session controls in account security settings.
2026-06-01 05:53:49 +02:00
Matthew Meszaros 6483f34dfb feat: portal popover menus
Render fixed-position popover menus through document.body so transformed layout containers cannot offset or clip the menu.
2026-06-01 05:51:05 +02:00
Matthew Meszaros e237986f46 feat: merge main into integrations oauth 2026-06-01 04:49:50 +02:00
Matthew Meszaros 4500aeba0f feat: add integration oauth connections
Adds OAuth-backed integration connection management across the API, repository, event dispatch, migrations, docs, and dashboard UI.

Includes realtime invalidation and small dashboard type compatibility fixes needed for the web typecheck gate.
2026-06-01 04:25:14 +02:00
Matthew Meszaros 541bddbe34 feat: force explicit passkey prompt in Safari
Use a direct navigator.credentials.get call with required mediation for explicit passkey clicks, while keeping conditional autofill on SimpleWebAuthn.
2026-06-01 04:24:09 +02:00
Matthew Meszaros e0ced97ba1 feat: add organization audit trail
Move audit logs into org-scoped Postgres storage, wire audit events across backend handlers, and surface actor details in the dashboard activity log.

Add realtime audit invalidation and retention pruning so the trail stays current and bounded.
2026-06-01 04:23:00 +02:00
Matthew Meszaros e627f05509 feat: keep passkey button clickable while preparing
Split visual loading from disabled state so the passkey spinner can show during challenge preparation without preventing Safari from receiving the explicit click.
2026-06-01 04:00:31 +02:00
Matthew Meszaros 01de325164 feat: use visible passkey spinner
Keep the working passkey wiring from the previous commit and replace the fragile shared loading SVG with a lucide spinner that is visible inside the fixed icon slot.
2026-06-01 03:38:34 +02:00
Matthew Meszaros 3465ee27ab feat: preserve passkey loading animation
Keep the animated passkey spinner while preserving the Safari-safe native click listener and challenge preparation hooks.
2026-06-01 03:33:23 +02:00
Matthew Meszaros b11f728342 feat: surface Safari passkey failures
Add visible passkey progress states, skip background conditional UI on Safari, and cancel explicit sign-in if Safari never presents a credential prompt.
2026-06-01 03:13:40 +02:00
Matthew Meszaros 87f9bf58b0 feat: add Safari-ready passkey login
Add passkey enrollment and login wiring, including a Safari-safe explicit login path that prefetches the WebAuthn challenge before the click and calls the credential ceremony immediately from the user gesture.
2026-06-01 03:09:17 +02:00
Matthew Meszaros 545dcea940 feat: show scheduled replies in threads
Add a thread_id filter for scheduled Unibox sends and expose a per-thread hook for the dashboard.

Render queued sends inline in ThreadView with cancellation, refreshing the thread, scheduled list, and overview caches after cancel.
2026-05-31 05:19:39 +00:00
Matthew Meszaros 2d11ed8166 feat: add mobile unibox scope picker
Expose the Unibox scope rail through a mobile sheet so smaller screens can switch between inbox scopes, mailboxes, tags, and scheduled views.

Simplify template rows in the reply composer to keep the picker compact.
2026-05-31 05:17:32 +00:00
Matthew Meszaros 6249d3e1a2 feat: refine unibox reply workflow
Open the reply composer only after the user chooses a message to reply to or forward, and wire per-message actions through the thread view.

Also clean up cancelled scheduled sends from Cloud Tasks on a best-effort basis while keeping the database status as the source of truth.
2026-05-31 05:14:22 +00:00
Matthew Meszaros 70bfa39163 feat: update unibox scheduled UI
Add scheduled-send scope, queued-send review and cancel flows, richer reply composer controls, snooze picker polish, and API client models for the new Unibox endpoints.
2026-05-31 04:26:46 +00:00
Matthew Meszaros bf40834557 feat: update unibox experience 2026-05-30 16:37:50 +00:00
Matthew Meszaros 4663333d2c feat: update billing and email settings 2026-05-30 15:45:10 +00:00
Matthew Meszaros a227938778 feat: seed unibox trial fixtures 2026-05-30 14:06:36 +00:00
Matthew Meszaros d08c984c42 feat: snapshot current dashboard changes 2026-05-30 13:56:27 +00:00
Matthew Meszaros 44c837d8ac Merge branch 'main' into feature/dashboard-plans
# Conflicts:
#	AGENTS.md
2026-05-30 09:49:12 +00:00
Matthew Meszaros b168f4d466 feat: simplify worker installer route 2026-05-30 09:37:26 +00:00
Matthew Meszaros e35a91f6bc feat: make worker enrollment default 2026-05-30 05:13:18 +00:00
Matthew Meszaros 60773b3d8e feat: make dashboard realtime 2026-05-30 04:17:10 +00:00
Matthew Meszaros 7f830b976f feat: sync org session, harden campaign loading, add mailbox bulk-remove 2026-05-30 03:42:39 +00:00
Matthew Meszaros b146417b50 chore: dashboard and plans 2026-05-29 16:42:05 +00:00
Matthew Meszaros ff763c4483 feat: add role and team-size onboarding questions and rework site SEO me 2026-05-29 14:47:16 +00:00
Matthew Meszaros 1d132ccd56 feat: rework auth layout for mobile sky backdrop and email pill 2026-05-29 09:57:59 +00:00