Commit Graph
471 Commits
Author SHA1 Message Date
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 8b28b86b7f feat: support exposed local dev hosts
Add PUBLIC_HOST wiring for local web, admin, site, realtime, and backend CORS so the native dev stack can be reached over Tailscale or LAN without changing localhost defaults.
2026-06-01 05:51:02 +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 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 f93a01e966 Merge pull request #20 from warmbly/feature/remote-infra-dev-config
feat: support remote dev infra
2026-05-31 09:30:24 +02:00
Matthew Meszaros c1a744b656 feat: refresh repository banner assets
Update the repository banner artwork and stop tracking the stray root node_modules install by adding a root ignore rule.
2026-05-31 09:24:01 +02:00
Matthew Meszaros 1f4d06e881 feat: add repository banner
Replace the README mark heading with a branded banner asset and refresh the repository badges.
2026-05-31 09:11:20 +02:00
Matthew Meszaros 73d8ea3b5e feat: restore site header logo in repo docs
Use the same Warmbly paper-plane mark from the site header in the README and docs header.
2026-05-31 09:01:42 +02:00
Matthew Meszaros 3beb3bed0d feat: remove repository logo from docs
Remove the README logo block, delete the repository logo asset, and drop the docs header image reference so no broken logo path remains.
2026-05-31 08:59:54 +02:00
Matthew Meszaros fe6b2cca54 feat: update repository docs branding
Replace the repository logo with the site mark on a sky background and move contribution guidance into CONTRIBUTING.md.
2026-05-31 08:57:26 +02:00
Matthew Meszaros adedcc337e feat: support remote dev infra
Allow native dev services to target infrastructure running on another host by parameterizing local endpoints with INFRA_HOST and SELF_HOST.

Document the workflow and make Kafka advertise a configurable host for off-box clients.
2026-05-31 08:53:21 +02:00
Matthew Meszaros 88741ee960 Merge pull request #19 from warmbly/feature/dashboard-plans
feat: improve unibox scheduling and campaign wakeups
2026-05-31 07:26:51 +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 72073c669e feat: bootstrap campaign wakeups
Create the initial per-campaign Cloud Tasks wakeup when a campaign starts, using the same idempotent task chain as subsequent sends. Pause or complete campaigns instead of leaving active campaigns with no scheduler when no work can be queued.
2026-05-31 04:51:03 +00:00
Matthew Meszaros 946cd087e5 feat: cap active campaign schedulers
Limit organizations to 50 active campaigns before starting another campaign, make campaign wakeups idempotent per campaign, keep warmup wakeups idempotent per mailbox, and no-op stale non-pending campaign/warmup dispatches.
2026-05-31 04:48:39 +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 7b5a87d1d1 feat: add unibox scheduled send backend
Add Unibox overview, snooze, and scheduled-send endpoints with task repository support, queue caps, execution-time guards, and snooze persistence.
2026-05-31 04:26:26 +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 0740a8bbbe feat: fix local migrations and kafka topics 2026-05-30 14:11:47 +00:00
Matthew Meszaros a227938778 feat: seed unibox trial fixtures 2026-05-30 14:06:36 +00:00
Matthew Meszaros 17ce31a942 feat: extend dashboard session lifetime 2026-05-30 14:06:27 +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 9027086d77 feat: remove worker installer api alias 2026-05-30 09:40:46 +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 d8a546eca5 feat: add worker enrollment install 2026-05-30 05:10:27 +00:00
Matthew Meszaros d28c607013 feat: document api release standards 2026-05-30 04:35:26 +00:00
Matthew Meszaros cb0c2b4fac feat: harden webhook endpoints 2026-05-30 04:33:43 +00:00
Matthew Meszaros 640da62b32 feat: add api idempotency keys 2026-05-30 04:31:43 +00:00
Matthew Meszaros 878e8d921e feat: enforce api key email scopes 2026-05-30 04:28:25 +00:00
Matthew Meszaros 3076cff5d6 feat: add api request ids 2026-05-30 04:26:12 +00:00
Matthew Meszaros 67bbd72777 feat: harden api permission gates 2026-05-30 04:24:41 +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 090cc1c832 feat: rework dev workflow with native go services and dockerized infra 2026-05-30 02:57:27 +00:00
Matthew Meszaros 515ffcf099 feat: rework dev workflow with native go services and dockerized infra 2026-05-30 02:16:32 +00:00
Matthew Meszaros 49e21113dc feat: wire analytics and rate limit services into backend handler 2026-05-29 16:49:52 +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
Matthew Meszaros 483e27270b feat: telegraph next slide via progress bar fill and fix panel blur 2026-05-29 09:44:19 +00:00
Matthew Meszaros bb7008c50a feat: pin logo to showcase pane and restructure auth layout 2026-05-29 06:11:18 +00:00