shipped
Workspace invites end-to-end, billing past-due handling, and API rate limits
The workspace invite flow is finally end-to-end — new signups join via migration trigger, existing customers click an invite link, sign in, and get moved into the inviting workspace. Stripe payment_failed now flips workspaces to past_due with banner + email. The public API has hourly per-plan rate limits.
Details
- ▸Workspace invite flow finished end-to-end: brand-new signups join via the migration trigger; existing customers click an invite link, sign in, and get moved into the inviting workspace via /api/auth/accept-invite
- ▸Stripe payment_failed handling: workspace.billing_status flips to past_due, owner gets an email, dashboard shows a billing banner
- ▸Hourly enrichment quota on the public REST API (plan-tier caps + 429 with Retry-After)
- ▸/privacy and /terms pages
- ▸Route-level loading skeletons for /dashboard/cases, /alerts, /inbox, /intelligence
Want this in your inbox?
Subscribe to the changelog RSS feed or follow the team via the marketing newsletter.
Start free trial