A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is sync adapter.
Repair the sync adapter request stream implementation so it enforces a per-key sliding window and reports allowed and rejected requests.
Evidence
- Affected surface: Android / Kotlin / sync adapter.
- Observed failure family: apply a sliding rate window.
- Scope policy: contractVersion must equal 2.