- Handle loading, unauthenticated, permission-denied, and unavailable states truthfully in metric-card-lean (Peak Lean Angle KPI) rather than falling back to '--' and 'No IMU roll data'
- Reset metrics state to null on auth change and in onStatusChange loading/error branches to prevent stale metrics retention
- Add race condition guard in AppCloudData.loadData to discard in-flight results if firebaseAuth.currentUser changed during asynchronous fetch
- Prioritize Disconnected and Connecting states over sample example messages in real club mode in founder-chat.tsx
- Clear chat messages on channel switch in founder-chat.tsx to eliminate cross-channel message bleed, and fix invalid py-0.2 Tailwind classes to py-0.5
- Add regression tests in account-metrics-truthfulness.test.tsx and founder-routes-chat.test.tsx
- Replace false zero metrics (0 miles / 0 rides / 100% Cloud Synced) on loading, unauthenticated, permission-denied, or network errors with truthful states
- Update AppCloudData to query motorcycles and rides via Promise.allSettled and report granular CloudDataStatus
- Update AccountPage KPI cards to display Loading…, —, or Unavailable with explicit contextual status and error recovery
- Fix founder demo chat to permanently preserve Example thread and example badges during preview=demo simulation instead of flipping to Live Connected
- Add 8 unit/component tests in account-metrics-truthfulness.test.tsx and 6 tests in founder-routes-chat.test.tsx