037bf15b53
- Added a `hashRecognized` field to `MismatchDetails` and `MismatchError`, defaulting it to `true` for compatibility. - Updated stale mismatch rejection messaging to distinguish drifted hashes from session-absent hashes with explicit guidance. - Propagated `hashRecognized: snapshot !== null` in `Patcher` and added tests for both mismatch branches.