- ▪Resend event mirror — every delivery, bounce, open, and complaint Resend sends now writes to a local
email_eventstable via a signed webhook, so/admin/emailshows full history instead of just the last 100 live API rows. Cursor-paginated; 90-day retention via nightly cron. - ▪Onboarding nudge email — orgs that sign up but don't connect a site or add a credential within 24 hours get a friendly one-shot reminder. Deterministic A/B variant assignment per user, performance visible at
/admin/email/variants. - ▪One-click unsubscribe — lifecycle emails carry an HMAC-signed footer link so recipients can opt out without signing in. Auto-stamps every active org the user owns so they're never nudged again.
- ▪Weekly deliverability digest — Monday 08:00 UTC Slack post with 7-day delivered / bounced / complained rates, week-over-week volume delta, and top-5 bounce addresses. Red header when bounce >2% or complaint >0.1%.
- ▪Bounce auto-suppression — hard bounces and complaints from the Resend webhook now write to a
suppressed_emailstable; future sends to those addresses are refused before they reach Resend. Protects sender reputation automatically. - ▪Upcoming invoice line on
/account/billing— live from Stripe'sinvoices.retrieveUpcoming, shows your next scheduled charge with amount and date. Graceful no-show if the subscription is cancelled. - ▪Stripe Customer Portal config — dedicated branded configuration with plan switcher (Pro / Studio / Agency monthly + annual), immediate cancellation with proration, and an 8-option "reason for leaving" survey. Bootstrap script + setup doc at
docs/STRIPE_PORTAL_SETUP.md. - ▪Admin "Resend yesterday's digest" button on
/admin/orgs/[orgId]— support reps can trigger an on-demand resend scoped to a single org, rate-limited to 10/hour/engineer. - ▪Test digest + test nudge preview buttons on
/account/notificationsso any signed-in user can verify email deliverability against their own inbox without waiting for the cron. Force-variant buttons let QA flip between nudge A and B copy side-by-side. - ▪7-day deliverability KPIs on
/admin/email— platform-wide delivery / bounce / complaint rates with a stacked-bar sparkline for daily volume. - ▪Weekly executive summary email now ships Monday 09:00 UTC with week-over-week cost comparison and top-3 agents by spend.
- ▪Email preferences at
/account/notifications— toggle each digest independently. Operational notices (payment declined, invitations) bypass the toggles. - ▪Admin org drilldown at
/admin/orgs/[orgId]plus a searchable/admin/orgslist with plan + status filters. - ▪Per-agent budget caps — layer a spend limit on a specific agent on top of the org-wide cap. Surfaced on
/account/health.
Changelog.
Every customer-visible change. Source of truth is CHANGELOG.md in the repo — this page is regenerated on every deploy.
- ▪Topup UI on
/account/usage— buy one-off AI credit packs ($25 / $50 / $100 / $250) via Stripe Checkout when you hit your monthly cap. - ▪Organization switcher in the account header — switch between orgs you belong to without signing out.
- ▪Budget exceeded → topup CTA surfaces inline when a manual agent run is refused. One click takes you to Stripe Checkout with a suggested amount pre-selected.
- ▪Daily digest email at 09:00 UTC summarizing yesterday's agent runs, cost, and errors.
- ▪Phase 3 multi-tenancy — RLS across every per-org table, credential vault (AES-256-GCM), pairing flow, brain scoping by
site_id. - ▪WordPress plugin: Connect to Dashboard button — pair a site to an org in 3 clicks.
- ▪Danger zone at
/account/danger-zone— GDPR-clean org deletion with Stripe cancellation, 7-day data export download, and a goodbye email. - ▪Launch readiness probe at
/api/launch-check+ visual/account/launch-checkpage that auto-refreshes every 30s.
- ▪Initial Phase 2 release: Pro/Studio/Agency licenses, Stripe Checkout + webhook + portal, WP.org plugin submission.
Want this in your feed reader? Subscribe to /changelog.rss.