Fixed in https://github.com/badbundle/vault-app/pull/625 (merged as 736be18f).
RecordVaultStore: an in-memory store overVaultRecords that implements every vault store protocol and matches the SwiftData store's behaviour, including its quirks. Every operation builds the new state before swapping it in, so a failure changes nothing. It isn't wired into the app yet.- Contract suite: the old
PersistedLocalVaultStoreTestsis nowVaultStoreContractTests, with 118 tests that run against SwiftData in memory, SwiftData on SQLite (the setup the app actually uses) and the record store. - Differential test: 80 seeded random operation sequences, compared after every step across both engines.
- Bug found: the differential test caught a real bug in today's store, fixed in the same PR as VAULT-56. It also found a non-atomic override import, filed as VAULT-57.