# Native File-Provider-Integration (Platzhalter-Modus) Zusaetzlich zum klassischen "alles-kopieren"-Sync bietet der Desktop-Client einen **OneDrive-aehnlichen Platzhalter-Modus**: Dateien erscheinen im Dateimanager als kleine Metadata-Dateien (Platzhalter) und werden erst bei Doppelklick vom Server geladen. ## Status | Plattform | Status | Technologie | | --------- | --------- | ------------------------------------ | | Windows | **MVP** | Cloud Files API (`cfapi.dll`) | | Linux | Skelett | FUSE (libfuse3) - feature `linux_fuse` | | macOS | Geplant | `NSFileProviderExtension` + Signatur | ## Windows ### Voraussetzungen - Windows 10 1709 (Build 16299) oder neuer - Der Client laeuft als regulaerer Benutzerprozess (keine Admin-Rechte noetig) ### Was funktioniert - `CfRegisterSyncRoot` registriert einen Ordner als Sync-Root, der Explorer zeigt Wolken-Overlay-Icons an. - `CfCreatePlaceholders` legt fuer jede Mini-Cloud-Datei einen Platzhalter mit korrekter Groesse und Aenderungszeit an. - `FETCH_DATA`-Callback laedt per Range-Request vom Server, sobald der Explorer Dateidaten anfordert (z.B. beim Oeffnen). - `CfSetPinState` erlaubt manuelles "Immer offline halten" / "Nur in Cloud". ### Was noch fehlt - Upload-Callback (`NOTIFY_FILE_CLOSE_COMPLETION`) fuer lokal geaenderte Dateien - Context-Menue "Ein-/Auschecken" via Shell-Extension - Delta-Updates (neue/geloeschte Dateien auf dem Server -> lokale Placeholder) - Konflikt-Aufloesung ### Einschalten Im Client-UI den Schalter **"Cloud-Files-Modus"** aktivieren (ruft intern `cloud_files_enable`-Command auf). Alternativ per Kommandozeile beim Build: ```powershell # Aus clients/desktop/src-tauri: cargo build --release ``` Windows-Targets brauchen das Windows-SDK (uebersetzt aber sauber mit cross-compile via `cargo xwin` aus Linux, wenn `build.sh windows` laeuft). ## Linux FUSE-Provider ist optional und mit einem Feature-Flag versehen, damit normale Linux-Builds nicht `libfuse3-dev` voraussetzen: ```bash cargo build --features linux_fuse ``` Overlay-Icons im Dateimanager (Nautilus / Dolphin / Caja) brauchen zusaetzlich eine native Extension pro DE - folgt in einem spaeteren Commit. ## macOS Braucht eine Apple Developer ID + Notarization, da `NSFileProviderExtension` sonst vom Finder nicht geladen wird. Wird angegangen, sobald ein Apple-Dev-Zugang verfuegbar ist.