Skip to content

Dashboard Stabilization: Dark mode, Phase 0 baseline complete; proceed to Phases 1–6 #3

@thefiredev-cloud

Description

@thefiredev-cloud

Summary

  • Phase 0 baseline completed locally and via live smoke; app switched to dark mode only.

What changed

  • Forced dark mode globally (html.dark) with Tailwind darkMode: 'class'
  • Switched global CSS variables to dark palette
  • Sonner toaster set to theme="dark"
  • Charts theme mapping supports .dark
  • Clerk UI configured with baseTheme: dark

Baseline results

  • Type-check: clean
  • Lint: clean
  • Unit: 80 passed, 3 skipped
  • E2E live smoke (external Playwright config against https://sandboxmentoloop.online): passed; artifacts under tmp/browser-inspect/

Stripe verification (MCP)

  • Coupons: NP12345 100% (once), MENTO12345 99.9% (forever)
  • Prices include $0.01 price; recent PaymentIntents empty (expected when idle)

Outstanding warnings

  • Sentry SDK warns about missing onRequestError hook; add Sentry.captureRequestError in instrumentation.

Prioritized checklist (Phase 1)

  • Student dashboard
    • Messages: send, mark read, empty states (wire to Convex; optimistic UI; toasts)
    • Billing: open Stripe portal, show history (error guards)
  • Admin dashboard
    • Finance filters + CSV (verify), discount setup status (MENTO/NP status visible)
    • Matches actions: recompute MentorFit, audit logs
  • Preceptor dashboard
    • Matches list/actions, navigation from notifications

Acceptance criteria

  • All dashboard actions are wired with visible success/error feedback and no console errors
  • NP12345 (100%) and MENTO12345 (99.9%) e2e pass; no idempotency_error on retries
  • npm run type-check, npm run lint clean; tests green locally and in CI
  • Sentry quiet for common flows; Netlify deploys green

Repro/commands

  • Baseline: npm run type-check && npm run lint && npm run test:unit:run
  • Live smoke e2e: npx playwright test tests/e2e/inspect.spec.ts -c playwright.external.config.ts
  • Stripe MCP (in Cursor): list_coupons, list_prices, list_payment_intents

Notes

  • Local e2e against dev server requires NEXT_PUBLIC_CONVEX_URL; use external config for live runs.

Owner suggestions

  • Payments/Convex: @Apex-ai-net/mentoloop-payments
  • Dashboard UI/actions: @Apex-ai-net/mentoloop-frontend
  • Observability: @Apex-ai-net/mentoloop-ops

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions