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