v3.4.1
Fixed
BinaryStoreAdapter.applyChanges's idempotency check scanned the entire in-memory mutation log on every identity-bearing call (any write insidegraph.transaction()), an O(total historical mutation count) cost per call — the same bug class fixed in the Rust core'sStore::apply_with_identityin 3.3.2. Replaced theArray.some()scan withmutationOperationIds/mutationTransactionIdssets kept in sync withmutationRecords(on load, on push, and on retention trimming).
See CHANGELOG.md for details.