diff --git a/clients/desktop/src-tauri/src/sync/engine.rs b/clients/desktop/src-tauri/src/sync/engine.rs index 1d84ab9..8a79ad3 100644 --- a/clients/desktop/src-tauri/src/sync/engine.rs +++ b/clients/desktop/src-tauri/src/sync/engine.rs @@ -154,9 +154,18 @@ impl SyncEngine { continue; } - // Create .cloud placeholder + // Create or update .cloud placeholder let cloud_path = local_dir.join(format!("{}.cloud", entry.name)); - if !cloud_path.exists() { + let needs_update = if cloud_path.exists() { + // Check if server version changed + if let Ok(content) = std::fs::read_to_string(&cloud_path) { + if let Ok(old) = serde_json::from_str::(&content) { + old.checksum != entry.checksum.as_deref().unwrap_or("") + } else { true } + } else { true } + } else { true }; + + if needs_update { let placeholder = CloudPlaceholder { id: entry.id, name: entry.name.clone(), @@ -167,7 +176,9 @@ impl SyncEngine { }; if let Ok(json) = serde_json::to_string_pretty(&placeholder) { std::fs::write(&cloud_path, json).ok(); - log.push(format!("Platzhalter: {}.cloud", entry.name)); + if !cloud_path.exists() { + log.push(format!("Platzhalter: {}.cloud", entry.name)); + } } } }