A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is ViewModel state.
Repair the ViewModel state command handling implementation so it accepts first operations, recognizes safe repeats, and rejects key reuse with a different payload.
Evidence
- Affected surface: Android / Kotlin / ViewModel state.
- Observed failure family: enforce idempotent operations.
- Scope policy: tenantId must equal tenant-primary.