mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
feat(fuse,core,gui,cli): one-request move+rename drain, show who shared an item
- A queued rename that also changes folder now lands as one `move-multiple` request carrying the target name instead of rename-then-move, so there is no half-applied state and no second call for stale name requirements to hit (B46 follow-up). A destination name collision moves under a conflict name in one step; same-folder renames still use the rename endpoint. - Shared with me shows the inviter and invite date (GUI subtitle, `pdfs shared-with-me`), with a warning when the invitation signature does not verify against the claimed inviter's keys. `DirEntry` gains `shared_by`, `shared_at` and `shared_by_unverified`, all serde-defaulted. - Bump `proton-sdk` / `proton-drive-rs` to 0.6.3 (anonymous-node moves, `TrashTime` trashed detection).
This commit is contained in:
1 parent
c28803b037
commit
eb56f4a1e0
17 files changed
+315
-53
No files matched your search
@@ -2650,6 +2650,16 @@ collisions without losing the source. Simple rename-only and move-only calls
|
||||
remain synchronous. The managed live suite subsequently passed the replacement
|
||||
and combined move/rename cases.
|
||||
|
||||
**Follow-up (2026-09-15, unverified):** With SDK 0.6.3 the drain sends the
|
||||
move and the rename as one `move-multiple` request carrying the target name,
|
||||
instead of renaming in the source folder and then moving. That removes the
|
||||
second call the stale requirements could hit, and the SDK retries a remaining
|
||||
`InvalidRequirements` once with the server's current name hash. A destination
|
||||
name collision now moves under a conflict name in one step. Same-folder renames
|
||||
are unchanged. The synchronous FUSE `rename` path (`serve_rename`) still renames
|
||||
then moves with its bounded retry and has not been converted. Needs a managed
|
||||
live run of the combined move/rename cases.
|
||||
|
||||
---
|
||||
|
||||
## B47 — FUSE Accepts Path Components Longer Than NAME_MAX
|
||||
|
||||
+22
-1
@@ -11,7 +11,28 @@ scratch (user data in `staging/` and `recovery/` is never touched by this).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
Nothing yet.
|
||||
SDK bumped to `proton-sdk` / `proton-drive-rs` **0.6.3**. No schema change.
|
||||
|
||||
### Added
|
||||
- **Shared with me says who shared an item, and when.** The GUI row subtitle and `pdfs
|
||||
shared-with-me` show the inviter and invite date for a share root. The invitation's signature is
|
||||
checked against the claimed inviter's keys; when it does not verify, the GUI shows a warning
|
||||
and the CLI prints one, since the sender may be forged. `DirEntry` gains `shared_by`,
|
||||
`shared_at` and `shared_by_unverified` (defaulted, so older front-ends and daemons interoperate).
|
||||
|
||||
### Changed
|
||||
- **A queued move-and-rename lands as one request.** `drain_rename` used to rename in the source
|
||||
folder and then move, with a rename-out-of-the-way step when the destination held the name. It
|
||||
now calls `move-multiple` with a target name, so there is no half-applied state between the two
|
||||
halves and no second call for the encrypted-name requirements to go stale against (B46). A
|
||||
rename that stays in the same folder still uses the rename endpoint.
|
||||
|
||||
### Fixed
|
||||
- **Moving a node with no signature email no longer fails.** Such nodes (created anonymously, e.g.
|
||||
through a public link) need the passphrase signed by the mover; SDK 0.6.3 sends that signature.
|
||||
- **A node trashed through the newer API field is recognised as trashed.** The SDK now reads
|
||||
`TrashTime` as well as the legacy `Trashed` field, so the drain no longer tries to rename a node
|
||||
that is already in the trash.
|
||||
|
||||
## [1.9.3] — 2026-09-01
|
||||
|
||||
|
||||
Reference in new issue
Block a user