Repository navigation
feat(evault): versioned MetaEnvelopes, pruning deletes and a history API - #1175
Merged
Merged
Conversation
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
1 of 11 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
In the eVault, MetaEnvelope writes no longer destroy data. Before this change, updates overwrote
Envelope.valuein place andremoveMetaEnveloperanDETACH DELETEon the record and its envelopes.MetaEnvelopeVersionsnapshot of the record's full resulting state. This covers create, update,updateEnvelopeValue, bulk create and delete, and the snapshot is written in the same transaction as the change.MetaEnvelopeHistory/MetaEnvelopeVersion) keyed by(metaEnvelopeId, eName). It is not linked into the live graph, so existing reads, payloads and envelope ids don't change.PrunedMetaEnvelope/PrunedEnvelope, and adeleteversion is appended.MetaEnvelope/Envelopequery skips pruned data without any changes.metaEnvelopeHistory(id, first, after)returns versions newest first and still works after removal.createversion from their current state on their first later write, so no data migration is needed.copyMetaEnvelopesToNewEvaultInstance) now copies history too.The awareness outbox events are unchanged: an update still carries the full merged state, and a delete still sends a
data: nulltombstone.Testing
pnpm --filter evault-core test --run: 283/283 pass. New coverage:tsc --noEmitis clean.