A state restoration path produces a user-visible duplicate after an interrupted session. The affected area is keychain session.
Repair the keychain session module boundary implementation so it ranks change-prone modules, preserves ownership boundaries, and identifies where characterization tests are required before extraction.
Evidence
- Affected surface: iOS / Swift / keychain session.
- Observed failure family: choose a safe refactoring boundary.
- Scope policy: contractVersion must equal 2.