Changelog

What shipped in each version of the kit and the public sample app.

2026-06-13

v0.4.0 — Payments core: Stripe webhook signature verification

payments v0.4 — Stripe webhook signature verification + checkout.session.completed. This milestone documents the provider-gated billing boundary for technical evaluation.

  • Stripe webhook endpoint with raw-body signature verification: t=/v1= header parsing, HMAC-SHA256, replay tolerance, constant-time comparison
  • checkout.session.completed handling: purchase record plus a billing.checkout_completed audit event
  • Webhook receipt log dedupes provider retries by event id
  • The demo stays no-charge: without billing keys the endpoint answers 503 — inspect the implemented boundary in the Code tab
2026-06-10

v0.3.0 — Plan & access simulator and locales

Sample plan switching with entitlement re-sync, the en/ko/ja locale dictionaries, and the docs/marketing content scaffold.

  • Plan & access simulator: apply sample plans and watch entitlements re-sync — no charge path
  • Access webhook simulation endpoint with audit events
  • Locale dictionaries for en/ko/ja with an active locale switcher (en default)
  • Blog, changelog, legal placeholder, and docs content modules
2026-06-02

v0.2.0 — Admin console and mail queue

Cross-account admin registry, audit events, in-app notifications, and the local mail preview queue.

  • System admin console with cross-account tenant registry and open-as-owner
  • Audit event stream and background job surface
  • Mail templates with rendered preview and local delivery queue
  • In-app notifications with per-type preferences
2026-05-22

v0.1.0 — Kit scaffold and tenant core

First cut of the kit: Google OAuth sign-in, tenant shell, projects and tasks, and seeded sample accounts.

  • Google OAuth sign-in with sample workspace provisioning on first sign-in
  • Tenant app shell with dashboard, projects, and tasks
  • Postgres schema, migrations, and three protected seed accounts
  • Role table for owner/admin/member with deny-by-default policies