Repository navigation
fix(storage): prevent id collisions and keep ids on vault scan - #981
Merged
Merged
Conversation
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.
Fixes duplicate and lost record ids during a full markdown vault scan (code, notes and HTTP spaces).
state.json/.state.yaml) is missing or does not know a file, ids for files without a free frontmatter id are now allocated after the scan, above every id already taken. Previously a file without an id could take an id explicitly written in the frontmatter of a file scanned later, so that record was reassigned (HTTP also rewrote it into the file).Foo copy.mdfrom Finder) never takes the id of its original, regardless of directory order. Notes previously had no such reservation..history/<id>) attached; it happened even with the app open, since every external HTTP change triggers a full scan.>instead ofMath.max, so an index entry without an id cannot turn new ids intoNaN.Ids of existing indexed records are never changed and nothing new is written to user files (HTTP write-back is unchanged). No extra file reads.
Accepted risks:
Tests cover a missing index, a valid index with new files, external rename, copies with an explicit directory order, and index entries without an id.