Keys are stored and retrievable now, so landing + docs no longer say 'shown once'. README setup applies migrations 0001-0003 in order, drops a duplicate schema-isolation bullet, and documents key storage + workspace minting.
- Rename DATABASE_URL -> POSTGRES_URL and OPENROUTER_PROVISIONING_KEY -> OPENROUTER_MANAGEMENT_KEY to match the documented setup. - Inline repo URL and model constants (drop NEXT_PUBLIC_ indirection). - vercel.json: framework nextjs; enable git deployments.
- Next.js 15 App Router (JS+JSDoc): landing, auth-gated dashboard, docs - GitHub OAuth via Supabase; identity anchored on numeric provider_id - key provisioning: reserve-then-mint-persist-compensate, one key per account - api_keys in unexposed llmapikey schema via direct Postgres; RLS deny-all - live minting gated behind PROVISIONING_ENABLED; Vercel auto-deploy disabled - unit tests (mask, request-body), RLS deny-all test, reconcile script