Add
- Add an opt-in
asyncCacheTypeCheckoption that dispatches the cache-existence probe onto the cache I/O queue, so the synchronous diskstatno longer runs on the caller thread. Useful for cell-based UI that scrolls through many cached images. #2521 @onevcat - Add
data() async throws -> DatatoImageDataProviderand route provider-backed loads through a Swift concurrencyTask. Cancelling the returnedDownloadTask(or callingimageView.kf.cancelDownloadTask()) now stops the provider work and reports.dataProviderCancelledinstead of delivering a late.success. #2519 #2511 @onevcat @FaizanDurrani @friday-refined
Fix
- Make
SessionDataTask.mutableDatareturn an independentDatasnapshot instead of sharing the internal COW buffer, fixing anassertionFailureinData.appendobserved on iOS 26 when concurrent readers held onto the snapshot. #2524 #2523 @onevcat @jeongju9216 - Fix a macOS crash when decoding images backed by an indexed (or pattern/unknown) color space by resolving an output-compatible color space before creating the bitmap context. #2516 #2467 @friday-refined @dream4java
- Correctly calculate animated image cost by deduplicating identical frame references in the
imagesarray viaObjectIdentifier, avoiding inflated memory cost when frames share storage. #2509 @aronspringfield - Document the previously undocumented
forcedCacheFileExtensionoption case so DocC covers everyKingfisherOptionsInfoItemcase. #2522 @RomanticD