fix: incremental sync + unit tests for decide() logic
Sync change detection (3rd attempt — now correct): - After UPLOAD: save null remote metadata (server mtime unknown until next listing); decide() treats null remoteModifiedAt as "not changed" - After DOWNLOAD: read actual local mtime via accessor.lastModifiedMs() so the stored value matches what walkFiles() sees on next scan - SKIP reconciliation: if known state has null timestamps and both sides exist, fill them in — stabilises state within 2 syncs after first transfer - Extract syncDecide() as internal top-level function for testability Unit tests (14 cases covering all key scenarios): - First sync decisions (upload/download/conflict) - Second sync after upload with null remote metadata → SKIP - Second sync after download with recorded local mtime → SKIP - Epoch-millis precision: same ms = SKIP, +1ms = change detected - Regression: epoch-second stored value would have differed → now correct - Delete behaviour (MIRROR vs KEEP) - Direction filters (UPLOAD_ONLY, DOWNLOAD_ONLY) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -1,2 +1,2 @@
|
||||
VERSION_NAME=1.0.5
|
||||
VERSION_CODE=6
|
||||
VERSION_NAME=1.0.6
|
||||
VERSION_CODE=7
|
||||
|
||||
Reference in New Issue
Block a user