Skip to content

v0.23.0 — Onboarding rework, premium UX, and nav accessibility

Choose a tag to compare

@gaidheal1 gaidheal1 released this 05 Jun 18:09
· 770 commits to main since this release
3c83d67

What's new

Onboarding

  • Inline tutorial modal replaces the /onboarding route and RequireOnboardingComplete guard that could cause an infinite redirect loop. First-time users now see the tutorial as a blocking overlay; completing it refreshes player state in place with no redirect.

Premium experience

  • SuccessPage redesign — celebratory copy and a premium perks list on the payment success screen
  • Premium visual flair — styled icon on the Infobar and a badge on the Account page for premium subscribers
  • Stripe billing portal — portal URL is now loaded from the STRIPE_BILLING_PORTAL_URL environment variable via app_config; the button is disabled when the URL is unset

Navigation and accessibility

  • Emoji icons on all Navbar and NavDrawer buttons for readability and dyslexia support (⏱ Timer, 📋 Activities, 👤 Account, 👋 Log out, 🔑 Log in, ❓ Help)
  • Desktop nav reordered to ❓ Help | 👤 Account | 👋 Log out
  • Mobile→desktop breakpoint bumped from sm to md so wider emoji buttons do not wrap
  • Heading levels and colour properties consistent across all pages
  • Tutorial modal height capped at min(90vh, 800px) with a green glowing focus ring
  • Activity input blurs the active element when the timer starts; improved inputMuted focus styling
  • Conflicting global focus-visible rules removed — keyboard focus rings now keep correct colour and shape

Bug fixes

  • Subscription deactivation no longer fails when the Stripe subscription record is missing remotely — the local record is still deactivated and a warning is logged
  • server_message WebSocket messages no longer appear as console warnings

Internal

  • Stop fetching /me/character/ (characters not currently live)
  • Dedicated seed_playwright_user management command and authenticatedPage Playwright utilities; all e2e specs refactored for stable, race-free runs
  • Dependabot updates: axios, twisted, django-stubs-ext, requests, sentry-sdk, mypy