3D knowledge graph on landing page (React Three Fiber)
Data retention policy documentation
Post-MVP: Scaffolded (Partially Built)
Google Drive OAuth — stub routes return 501, settings UI exists, env vars empty. Needs Google Cloud project, OAuth consent screen, credentials, token storage, file picker UI.
Stripe billing (end-to-end) — all routes built, real keys set (pk_live_, sk_live_, price_, whsec_). Webhook idempotency, past_due blocking, and invoice.payment_failed handling are implemented. End-to-end checkout → webhook → plan upgrade flow needs production testing.
Post-MVP: Not Built
Roadmap versioning — conversations stored but no comparison/versioning system for roadmap outputs
Team vaults — everything is single-user, no shared vault or role-based access
Onboarding interview flow — no guided Q&A fallback for users with few files (profiling auto-triggers at 3+ nodes but no interview mode)
Email notifications — src/lib/email.ts uses Resend SDK with circuit breaker. Needs RESEND_API_KEY env var and verified sender domain to go live.
Changelog/roadmap/about/blog pages — footer links point to #
Full test coverage — 118 unit tests across 17 files in src/__tests__/ and __tests__/ (all mocked). Integration and end-to-end tests not yet written.
Known Issues
Stripe billing not fully end-to-end tested — webhook idempotency and past_due blocking are implemented, but the full checkout → webhook → plan upgrade flow needs production testing
Footer links are placeholders — changelog, roadmap, about, blog, etc. all point to #
upload_jobs CHECK constraint may be missing abandoned, cancelled, and permanently_failed statuses (added manually in Supabase, not in migration files)
Migration file numbering is inconsistent — duplicate prefixes for 005, 006, 007. No formal migration runner.
PERPLEXITY_API_KEY in .env is unused (not referenced in code)