fb6ecc10be78fa53dadd08b8930da85283ad39a3
BackupEngine was building pendingAssets from ManifestIndex(manifest:) which only knows about files Kisani previously uploaded. When most NAS files were uploaded by other tools, nearly all phone photos passed the pending filter and "Back up again" would queue and attempt to re-upload everything. Fix: step 3b builds a filterIndex from the cached NAS directory filenames (or a fresh listDirectory scan when cache is unavailable) when the directory has more files than the manifest. The filename-based filterIndex correctly identifies only photos whose filenames are absent from the NAS, so "Back up again" queues exactly the delta — not a full library re-upload. The baseManifest/baseIndex are unchanged and still drive the manifest write. Co-Authored-By: Kutesir <kutesir@provoc.ug> Co-Authored-By: Sentry <sentry@provoc.ug>
perf: eliminate full rescans with local caches; add queue tracking, notifications, SyncView redesign
Description
Privacy-first iOS photo backup to NAS — SMB + SFTP, auto LAN trigger
Languages
Swift
100%