From e55ce106d414dab430d1d6c83c04a919433665a5 Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Wed, 15 Apr 2026 09:42:44 +0200 Subject: [PATCH] fix(cloud-files): Population-Policy FULL statt PARTIAL Mit PARTIAL erwartet Windows einen FETCH_PLACEHOLDERS-Callback fuer die Ordnerenumeration. Den haben wir nicht registriert, also lief der Explorer beim Oeffnen des Mount-Ordners in Timeout. FULL bedeutet: wir fuellen alle Platzhalter selbst vor (machen wir schon in populate_placeholders) und Windows fragt nicht nach. Hydration bleibt PARTIAL - Datei-Inhalt wird weiter bei Zugriff per FETCH_DATA geladen. Co-Authored-By: Claude Opus 4.6 (1M context) --- clients/desktop/src-tauri/src/cloud_files/windows.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/clients/desktop/src-tauri/src/cloud_files/windows.rs b/clients/desktop/src-tauri/src/cloud_files/windows.rs index ebf3b8f..9bdb415 100644 --- a/clients/desktop/src-tauri/src/cloud_files/windows.rs +++ b/clients/desktop/src-tauri/src/cloud_files/windows.rs @@ -91,10 +91,12 @@ pub fn register_sync_root( policies.Population = CF::CF_POPULATION_POLICY::default(); policies.InSync = CF::CF_INSYNC_POLICY::default(); - // Das Struct-Feld ist `CF_HYDRATION_POLICY` (u16-Wrapper um das - // _PRIMARY-Enum). Direkter Feldzugriff: + // Hydration PARTIAL = Datei-Inhalt kommt bei Zugriff per FETCH_DATA. + // Population FULL = Ordnerinhalt ist komplett vorgefuellt durch uns + // (populate_placeholders). So muss Windows NICHT FETCH_PLACEHOLDERS + // callen, den wir nicht implementieren - sonst timeout beim Oeffnen. policies.Hydration.Primary = CF::CF_HYDRATION_POLICY_PARTIAL; - policies.Population.Primary = CF::CF_POPULATION_POLICY_PARTIAL; + policies.Population.Primary = CF::CF_POPULATION_POLICY_FULL; // Holder fuer displayname, damit wir ihn spaeter ggf. in ein eigenes // struct einbauen koennen. windows-rs verlangt hier nichts weiter.