Skip to content

fix(sync): keep store paths inside the group folder - #448

Open
A-EDev wants to merge 2 commits into
mainfrom
fix/sync2-manifest-blob
Open

A-EDev wants to merge 2 commits into
mainfrom
fix/sync2-manifest-blob

Conversation

@A-EDev

@A-EDev A-EDev commented Nov 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

Two checks on store paths:

  • A snapshot manifest's blob must be 64 lowercase hex, which is what spec/store.md says a blob's name is. A manifest with anything else is discarded like any other invalid object, which stops only that sender's log.
  • The WebDAV client refuses any path that isn't plain names under the group's folder, so a URL can't resolve anywhere else on the account.

Related issue

None.

Change type

  • Bug fix

Validation

  • cargo fmt --all: run before committing.
  • cargo test --lib snapshot in src-tauri: passed, including the new manifest test.
  • cargo test --test sync2_webdav: 20 passed, including the new path test.
  • cargo test --test sync2_engine --test sync2_gc --test sync2_snapshots --test sync2_vectors: passed.
  • Each check was taken out in turn and its new test failed.
  • CI runs the full suite on this PR.
  • Not smoke-tested in a window or on a device. Only the in-process WebDAV server was used.

Risk and compatibility

No format change. Every path the client builds is hex, a .-suffixed name or a fixed word, so honest requests are unaffected. Manifests from this app and Android always name blobs by hash.

  • No new secrets, private data, telemetry, or broad Tauri permissions were introduced.

Copilot AI balanced review requested due to automatic review settings November 7, 2026 13:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants