-
v1.0.28
released this
2026-05-25 04:18:13 +00:00 | 51 commits to main since this releaseCritical sync loop fix\n\nRoot cause 1 — folder change → delete loop: when you change
localPathorremotePathon a pair, all old file-state records are now wiped immediately. Previously those stale records caused every sync to try deleting the old folder's files from the server in an infinite loop.\n\nRoot cause 2 — download rewrite loop: after downloading a file via SAF (content:// path), the Android DocumentsProvider cursor can return a stale mtime. StoringnullforlocalModifiedAtafter a download lets the next sync's SKIP reconciliation pass read the real mtime — breaking the re-download loop.\n\nRoot cause 3 — millisecond vs. second precision: WebDAV and FAT32 use 1–2 second mtime precision. All comparisons now useepochSecond, not milliseconds.\n\n### Icon\nThree bold teal/red/yellow teardrop streaks (Avast color palette) pointing into a white cloud on dark charcoal.Downloads