Make reads eviction-safe: download offloaded iCloud files instead of losing them
Wires the previously-dead ensureDownloaded into every read (it now polls, bounded 30s, instead of fire-and-forget) and fixes the deeper hole: the directory listing skipped hidden files, so evicted records — whose only local trace is a hidden .<name>.json.icloud placeholder — never appeared in reconcile at all and their cache entities were pruned as deleted. Also: reconcile no longer prunes entities whose file failed to read this pass (an eviction-download timeout is not a deletion); tombstone IDs come from stub filenames so an evicted stub still vetoes resurrection; the stale-file stub check is placeholder-aware; read failures log loudly instead of try?-skipping. Verified with a harness compiling the real ICloudFileManager against a local temp directory (placeholder mapping, dedup, tombstone derivation, soft-delete round trip). Real eviction/download behavior needs a device pass. Claude-Session: https://claude.ai/code/session_01SY5jsAUf4qoPxSvv8xAqXS
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
**July 2026**
|
||||
|
||||
Fixed workouts and splits vanishing from the app when iPhone storage ran low: when iOS offloads their files to iCloud to free up space, Workouts now downloads them back automatically instead of treating them as gone.
|
||||
|
||||
**June 2026**
|
||||
|
||||
Starting a new workout while another is still going now asks whether to end the current one first or run both in parallel.
|
||||
|
||||
Reference in New Issue
Block a user