QA plan — dashboard overview
No flag setup: dashboard-overview-revamp was merged permanently ON on
2026-08-22 and deleted, so the layout below is what every org gets.
G1 — owner, schedule org
- One header, one greeting; no duplicate session list anywhere (no classes-count tile — the Today panel owns the day).
- Action Center shows seeded finance + operations rules sorted by severity;
row click navigates to drilldown with
/{lang}prefix. - Pulse: collected-MTD tile shows MoM delta arrow; tasks tile = overdue +
due-today with the overdue count called out and links to /tasks; leads
tile shows untouched (
new) leads and links to /leads; members tile countsrole=memberonly (invite a coach — number must not change). - Today panel lists the WHOLE day: visit after the last class — past sessions render dimmed with “ended”, not an empty panel; a future session with no linked workout shows the amber chip and its menu says “Add workout”.
- Empty feed shows the all-clear row (not a blank page).
- Roster (“performance by member”, dual-mode orgs): only members enrolled in an active coaching program appear; a schedule-only member must not.
G2 — coach
- Schedule org: Action Center shows only staff rules (no debt/failed charges), no Pulse strip, Today panel populated (no 403 in network tab).
- Coaching org: coach KPIs incl. needs-attention; roster renders with a single header.
- No “Add Member” button.
G3 — coaching-mode owner (sole operator)
- Pulse = collected + active clients + due today + 7-day completion.
- Today = roster only; a single h1 on the page.
G4 — Ask Spotter
- Button on every feed row; opens the sheet and sends the localized prompt;
agent answer references the insight (context carries
insightId). - Check-ins row: click expands the inline review queue; “Mark reviewed” updates the count after refetch.
G5 — i18n / RTL
- he + ru: every new string localized (feed titles, chips, greetings, all-clear); RTL: severity rail sits on the inline-start edge, chevrons point start-ward.