fix(files): preserve encryptedVersion when copying cache entries#62255
Open
leftybournes wants to merge 2 commits into
Open
fix(files): preserve encryptedVersion when copying cache entries#62255leftybournes wants to merge 2 commits into
leftybournes wants to merge 2 commits into
Conversation
Cache::copyFromCache() rebuilt the target's cache row via cacheEntryToArray(), which only carried over a boolean `encrypted` flag and dropped the real `encryptedVersion` count. Since View::copy() unconditionally calls copyFromCache() after the storage copy completes, this silently overwrote the correct encryptedVersion that Encryption::updateEncryptedVersion() had just set, collapsing it back to 0/1 on every copy of a file whose encryptedVersion was above 1. cacheEntryToArray() now includes the source entry's encryptedVersion when it is encrypted. The existing encrypted-to-non-encrypted-storage override in copyFromCache() also clears encryptedVersion alongside `encrypted`, since normalizeData() prefers encryptedVersion over `encrypted` when both are present in the update data. Signed-off-by: Kent Delante <kent@delante.me> Assisted-by: ClaudeCode:claude-sonnet-5
Signed-off-by: Kent Delante <kent@delante.me> Assisted-by: ClaudeCode:claude-sonnet-5
leftybournes
requested review from
Altahrim,
come-nc,
icewind1991 and
salmart-dev
and removed request for
a team
July 17, 2026 00:24
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.
Summary
Cache::copyFromCache()rebuilt the target's cache row viacacheEntryToArray(), which only carried over a booleanencryptedflag and dropped the realencryptedVersioncount. SinceView::copy()unconditionally callscopyFromCache()after the storage copy completes, this silently overwrote the correctencryptedVersionthat Encryption::updateEncryptedVersion() had just set, collapsing it back to 0/1 on every copy of a file whoseencryptedVersionwas above 1.cacheEntryToArray()now includes the source entry'sencryptedVersionwhen it is encrypted. The existing encrypted-to-non-encrypted-storage override in copyFromCache() also clears encryptedVersion alongsideencrypted, since normalizeData() prefers encryptedVersion overencryptedwhen both are present in the update data.Checklist
3. to review, feature component)stable32)AI (if applicable)