v0.6.0 (2026-09-12)
v0.6.0 focuses on release gates, Supabase free-tier keepalive/auto-restore, and operational evidence. The passkey session bridge was completed after the release and is tracked under Unreleased until the next patch release.
Highlights
- Health readiness contract:
/api/healthdistinguishes required and optional dependencies and reportsready,degraded, and Supabase status. - Keepalive: Vercel Cron and a daily GitHub Actions health check issue a lightweight Supabase query so an idle free-tier project is not paused.
- Auto-restore: A scheduled workflow checks the Supabase Management API and restores an
INACTIVEproject, then waits for database readiness. - Release operations: v0.6.0 runbook, production smoke matrix, rollback runbook, and
pnpm check:release-docsadd reproducible evidence gates. - Security/config: CI now checks migrations, RLS, Supabase boundaries, release docs, dependency vulnerabilities, and configured security headers.
Upgrade Notes
- Apply migrations
022-025before deploying the application. - Keep
HEALTHCHECK_URL,SUPABASE_PROJECT_REF, andSUPABASE_ACCESS_TOKENin GitHub repository variables/secrets for auto-restore. - Keep Supabase and application secrets in Vercel Secret/Sensitive variables; never place them in
.envfiles committed to Git.
Unreleased: Passkey login
Passkey assertion verification now bridges to a real Supabase session through a server-only, single-use magiclink token. The browser receives only the Supabase SSR HttpOnly cookie; tokens, action links, email addresses, and user IDs are not returned. Users with a verified MFA factor continue through the aal2 challenge.
Enable it only after deploying this version:
NEXT_PUBLIC_FEATURE_PASSKEY=true
NEXT_PUBLIC_FEATURE_PASSKEY_LOGIN=trueBoth values are build-time flags and should be stored as Vercel Secret/Sensitive environment variables. Passkey requires HTTPS (localhost is the development exception).