A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is permission request.
Repair the permission request input boundary implementation so it normalizes valid records and returns field-level errors for invalid ones.
Evidence
- Affected surface: Android / Kotlin / permission request.
- Observed failure family: validate a record batch.
- Scope policy: retained must equal true.