A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is ViewModel state.
Repair the ViewModel state reporting metrics implementation so it groups records once and returns accurate counts and totals.
Evidence
- Affected surface: Android / Kotlin / ViewModel state.
- Observed failure family: aggregate grouped totals.
- Scope policy: tenantId must equal tenant-primary.