Changelog
What we've shipped, when.
The short version: we keep cutting scope that isn't about reasoning, and adding depth on what is. This page is hand-curated; tiny bug fixes and internal refactors aren't listed.
April 21, 2026
Account self-service, observability, and a dark-mode contrast pass
Added
- Account settings at /account/settings: change display name, change password, change email (with confirmation link).
- Delete-account flow with password + email confirmation — covers GDPR-style erasure.
- Instructor onboarding tour (six role-specific steps on first visit to /instructor).
- Stripe billing portal reachable directly from account settings for paid users.
- Public /api/health endpoint reporting database, Resend, and Stripe connectivity.
- Composite database indexes for hot-path student and instructor queries.
- Sentry integration for swallowed-catch errors across Stripe webhook, registration, email flows.
- Instructor gradebook CSV now includes a UTF-8 BOM so Excel opens it cleanly.
Improved
- Dark-mode contrast across status badges, error text, danger buttons, and the footer.
- Mobile navigation drawer uses a solid background so menu items read clearly over scrolled content.
- Stripe webhook is resilient to out-of-order events and accounts deleted between checkout and webhook arrival.
- Onboarding now persists your answers and blocks Next on required selections.
Security
- Email change confirmation uses HMAC-signed, time-limited tokens (no DB state).
- APP_SECRET is now required at startup in production.
April 20, 2026
Performance, voice, and color correctness
Improved
- Anonymous lesson and unit content is cached for 10 minutes with tag-based invalidation.
- Pricing page is statically renderable for faster cold starts.
- Voice pass across catalog, instructor pages, dashboards, and transactional emails — precise, no jargon, friendly.
- Brand color tokens now use color-mix so tints stay accurate in dark mode.
- Defensive server-side paywall enforcement with visible lock badges on unit pages.
Fixed
- Save-status banner now handles 403 (paywall) and 429 (rate limit) with actionable copy.
- Dashboard queries parallelized to cut time to interactive.
April 19, 2026
Dark mode, lesson-level paywall, SEO, and landing polish
Added
- System-aware dark mode via prefers-color-scheme.
- Self-hosted Fraunces and Inter via next/font for consistent typography.
- /demo page with the Venn motif, proof tree, truth table, and tier ladder illustrations.
- Keyboard shortcuts help overlay.
- Vercel Web Analytics wired in.
- Trust signals, FAQ schema, breadcrumb schema, Course JSON-LD.
- Sitemap, robots.txt, Open Graph and Twitter card metadata.
Improved
- Lesson-level paywall: free tier = foundations + first lesson of each other unit.
- Instructor dashboard scoped to only the courses you teach (FERPA).
- Home hero and auth page tuned for cold traffic.
- Error recovery UX on error.tsx and global-error.tsx.
- 404 page copy and layout.
April 18, 2026
Initial public release
Added
- Eight reasoning domains live: foundations, propositional logic, categorical logic, fallacies, inductive, abductive, Bayesian, predicate logic, problem-solving.
- Evaluation engine with deterministic rubric scoring, optional AI rewriting of strengths/weaknesses.
- Diagnostic, spaced-repetition review queue, adaptive recommendations.
- Instructor track with courses, assignments, rosters, and gradebook CSV export.
- Stripe-backed Pro and Team plans.