fb22aeb090a2f7963564028e8af804739a182686
mergeIntoCache() previously extended cachedStart/End even when sync errors occurred — so isCached() returned true on the next call and the failed calendar was silently left empty (especially bad on first launch or after forceReload when there's nothing to preserve). Now the cached range is only extended on a fully clean fetch. When keepKeysInRange is non-empty (sync errors present), we leave cachedStart/End unchanged, forcing isCached() to return false and triggering an automatic retry on the next loadEvents call. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Swift
100%