A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is permission request.
Repair the permission request cache lifecycle implementation so it separates purge, refresh, and escalation actions by staleness and risk.
Evidence
- Affected surface: Android / Kotlin / permission request.
- Observed failure family: plan cache invalidation.
- Scope policy: retained must equal true.