A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is ViewModel state.
Repair the ViewModel state data migration implementation so it selects safe work under row and risk capacity while explaining skipped candidates.
Evidence
- Affected surface: Android / Kotlin / ViewModel state.
- Observed failure family: plan migration batches.
- Scope policy: tenantId must equal tenant-primary.