From 4caba0a34c2464e621b6382f6f7c639716a8aa3f Mon Sep 17 00:00:00 2001 From: Nils Pukropp Date: Thu, 1 Oct 2026 18:17:25 +0200 Subject: [PATCH] chore(deps): require proton SDK 0.7.2 0.7.2 resolves each shared root with its own key. With 0.7.1, when several accepted shares came from the same owner's volume, only the first appeared under Shared with me and the rest were skipped with "missing key" (B112, proton-sdk-rs#2). --- Cargo.lock | 8 ++++---- Cargo.toml | 4 ++-- docs/BUGS.md | 21 +++++++++++++++++++++ docs/CHANGELOG.md | 6 ++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d819bbf..ea75072 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3773,9 +3773,9 @@ dependencies = [ [[package]] name = "proton-drive-rs" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8807e007328fd08cad9fe93c84dd7cdb38dc97469250edf3d6b58c6df0ac0d4f" +checksum = "d6ce113d234474821d34787436ee80e1458e3d8a8f97212219615ed315eb70be" dependencies = [ "async-trait", "base64 0.23.1", @@ -3800,9 +3800,9 @@ dependencies = [ [[package]] name = "proton-sdk" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "085cd6506a49d8892a2b7ed6b5db3909750d9844610178f55979ed330d9fe715" +checksum = "2a33c67df9694f90ce60e5b34984275956244138511b4640ca0d100e1dac8b3d" dependencies = [ "aes-gcm 0.11.1", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 456c846..bf96f41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,8 +15,8 @@ keywords = ["proton", "drive", "fuse", "sync", "linux"] categories = ["filesystem", "command-line-utilities"] [workspace.dependencies] -proton-sdk = { version = "0.7.1" } -proton-drive-rs = { version = "0.7.1" } +proton-sdk = { version = "0.7.2" } +proton-drive-rs = { version = "0.7.2" } # Internal crates. pdfs-core = { path = "crates/pdfs-core" } diff --git a/docs/BUGS.md b/docs/BUGS.md index 52b5488..770b6fd 100644 --- a/docs/BUGS.md +++ b/docs/BUGS.md @@ -12,6 +12,27 @@ Conventions: --- +## B112 — Folders shared by the same person disappear from Shared with me + +**Status:** Fixed (unverified). +**Found:** 2026-09-30, reported in #25. An account with several accepted shares from one other +account listed only some of them, in both the control listing and the FUSE mount. The journal +showed `skipping undecryptable node ... failed to decrypt: missing key`. Each missing folder +opened on the Proton Drive website and resolved when the SDK was asked for it alone. + +**Where:** `proton-drive-rs` 0.7.1, `enumerate_nodes_detail`, which serves both +`enumerate_nodes` and `enumerate_nodes_light`. The app hit it in `list_shared_with_me` +(`crates/pdfs-fuse/src/sharing.rs`) and in the shared-root listing in +`crates/pdfs-fuse/src/lib.rs`. + +**Cause.** The SDK cached parent keys per batch by the link's parent id. Every share root has +no parent, so all roots on one volume shared the `None` entry, and the roots after the first were +decrypted with the first root's share key (proton-sdk-rs#2). + +**Fix.** Require `proton-drive-rs` 0.7.2, which names each key `Parent(folder)` or `Root(link)`. +No app code changes. The app-side workaround in #25, one SDK call per root, is not needed. +Unverified: no account with several shares from one owner has listed through 0.7.2 yet. + ## B111 — Renaming a file back right after renaming it fails with EIO **Status:** Fixed (unverified). diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index eea6811..be07690 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -11,6 +11,12 @@ scratch (user data in `staging/` and `recovery/` is never touched by this). ## [Unreleased] +### Fixed +- **Folders shared with you no longer go missing when one person shared several.** When + several accepted shares came from the same owner's volume, only the first appeared under + Shared with me, and the rest were skipped with `missing key`. `proton-drive-rs` 0.7.2 resolves + each shared root with its own key (B112, #25). + ## [2.8.1] — 2026-09-30 Schema: **35** (unchanged). Requires `proton-drive-rs` **0.7.1**.