-
Notifications
You must be signed in to change notification settings - Fork 0
Dashboard Stabilization: Dark mode, Phase 0 baseline complete; proceed to Phases 1–6 #3
Copy link
Copy link
Open
Description
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
Reactions are currently unavailable