fix(sync): isolate My files attachments

Schema 45 separates attachments from device backups so stopping sync or
changing mode cannot trash My files folders or evict their local data.
Exclude attachments from device profiles and validate device restores.

Verify attached roots before each pass and cover both local views,
concurrent edits, removal guards, and root loss across daemon restarts.

Refs #77
This commit is contained in:
nvrl committed 2026-11-05 17:11:57 +01:00
1 parent 5ca0272f15
commit d4a14a17a8
20 files changed
+595 -67

No files matched your search

+4
View File
@@ -2319,6 +2319,9 @@ fn cmd_locations() -> Result<()> {
MountKind::Device { sync_folder_id } => {
format!("Device folder {sync_folder_id}")
}
MountKind::Attached { sync_folder_id } => {
format!("My files mirror {sync_folder_id}")
}
MountKind::Shared { .. } => "Shared folder".to_string(),
};
let mode = match location.pending_mode {
@@ -4293,6 +4296,7 @@ mod diagnose_tests {
#[test]
fn a_synced_folder_in_error_is_reported() {
let folder = |id: i64, state: &str| pdfs_core::control::SyncFolderInfo {
kind: "device".into(),
id,
local_path: format!("/home/u/f{id}"),
remote_uid: "vol~link".into(),