Skip to content
CAI
Software that uses CAICheck a score

onevcat/Kingfisher

74.9

Strong · 27 September 2026

23.4k

lines of production code

Swift

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Kingfisher is a Swift library for loading, caching, and displaying images across Apple platforms, including iOS, macOS, tvOS, watchOS, and visionOS. It provides a unified API for handling remote URLs, local files, and various asset types such as Live Photos, animated GIFs, and video frames, while supporting both UIKit and SwiftUI interfaces. The system features a robust, concurrency-safe caching architecture with configurable memory and disk storage, along with tools for image processing, progress tracking, and network metrics.

How it got here

2015–2016 — Kingfisher 8.13.0 release preparation

11 changes.

This period focused on preparing the Kingfisher 8.13.0 release by establishing robust build infrastructure, including Swift Package Manager and CocoaPods support, alongside comprehensive test coverage for core components. The work involved restructuring the Xcode project and workspace to integrate demo applications and modern iOS features, while automating release processes with Fastlane. Documentation was also updated to support LLM-friendly guidance and ensure compliance with Apple's privacy requirements.

2017–2018 — Kingfisher 7.0 major rewrite

22 changes.

This period marks the development of Kingfisher 7.0, featuring a comprehensive API overhaul to support Swift concurrency, a builder pattern, and native Live Photos integration. The core library underwent significant architectural changes, including a complete rewrite of the caching and networking layers for improved performance and thread safety. Concurrently, the demo applications across all Apple platforms were modernized to showcase these new capabilities, such as SwiftUI support and advanced image processing.

2019–2024 — SwiftUI integration and documentation

8 changes.

This period focused on introducing native SwiftUI support for Kingfisher through new views like KFImage and KFAnimatedImage, alongside comprehensive tutorials and code samples for both UIKit and SwiftUI. The work also expanded the demo application to showcase these capabilities and included regression tests to verify specific image loading behaviors.

Features

Added Kingfisher-Demo Xcode scheme

The demo project now includes a dedicated Xcode scheme (Kingfisher-Demo.xcscheme) that configures build, test, launch, profile, analyze, and archive actions for the Kingfisher-Demo.app target. This allows users to easily run, test, and debug the demo application directly from Xcode without manual configuration.

Demo/Kingfisher-Demo.xcodeproj/xcshareddata · high confidence

Added UIKit and SwiftUI tutorial code samples for Kingfisher integration

The documentation resources now include a complete set of step-by-step Swift code files for integrating the Kingfisher image-loading library in both UIKit and SwiftUI. The UIKit section demonstrates building a table view with custom cells, configuring image processors (such as round corners and PNG serialization), setting up activity indicators, and implementing cache management features like checking disk size and clearing the cache via alerts. The SwiftUI section provides equivalent examples using KFImage, showing how to apply modifiers for image processing, handle load success/failure states, and replicate the cache inspection and clearing functionality within a SwiftUI List.

Sources/Documentation.docc/Resources/code-files · high confidence

Added Xcode workspace configuration and template files

The workspace now includes shared configuration files for Xcode, specifically adding IDE template macros for standard file headers, workspace settings, and source control blueprints to streamline development and ensure consistent project setup.

Kingfisher.xcworkspace/xcshareddata · high confidence

Demo app adds unified action sheet for cache management and view reloading

The demo application now includes a new extension for UIViewController that provides a consistent 'Action' button in the navigation bar. Tapping this button presents an action sheet allowing users to clear the Kingfisher memory and disk caches, cancel the dialog, or reload the current table or collection view data. This simplifies testing and debugging image caching behavior within the demo environment.

Demo/Demo/Kingfisher-Demo/Extensions · high confidence

Demo app adds view controllers for new image loading features

The demo application now includes view controllers demonstrating several new Kingfisher capabilities: loading images from AVAsset video frames (AVAssetImageGeneratorViewController), handling Live Photos (LivePhotoViewController), integrating with the iOS PHPicker for image selection (PHPickerResultViewController), and displaying network download metrics (NetworkMetricsViewController). Additional samples cover auto-sizing table cells with aspect-fit resizing, high-resolution image handling with downsampling, and various image processors including flipping and custom indicators.

Demo/Demo/Kingfisher-Demo/ViewControllers · high confidence

Demo project restructured with new SwiftUI and platform-specific samples

The Kingfisher demo application has been significantly updated to include new sample scenes for modern iOS and macOS development. This change adds dedicated demos for SwiftUI integration (including \SwiftUIViewController\, \LazyVStackDemo\, and \GridDemo\), native image picking via \PhotosPickerDemo\ and \PHPickerResultViewController\, and progressive JPEG loading (\ProgressiveJPEGDemo\). It also introduces samples for animated images (\AnimatedImageDemo\), high-resolution image handling, and network metrics visualization, while maintaining support for watchOS and macOS platforms through specific extension and framework embedding configurations.

Demo/Kingfisher-Demo.xcodeproj · high confidence

Expanded SwiftUI demo views for image loading scenarios

The SwiftUI demo app now includes a broader set of sample views to showcase Kingfisher's capabilities, including animated images, grid and list layouts, geometry readers, progressive JPEG loading, and custom failure views. New dedicated demos demonstrate load transitions (fade, slide, scale, opacity, blur), PhotosPicker integration for iOS 16+, and regression cases for specific issues, providing developers with concrete examples for complex SwiftUI image handling patterns.

Demo/Demo/Kingfisher-Demo/SwiftUIViews · high confidence

Introduce SwiftUI image loading views (KFImage and KFAnimatedImage)

This change adds native SwiftUI support for Kingfisher by introducing the \KFImage\ and \KFAnimatedImage\ views. \KFImage\ provides asynchronous image loading with caching, progress reporting, and placeholder support, while \KFAnimatedImage\ extends this to handle animated formats like GIF. The implementation includes a \Context\ for managing options (such as \cancelOnDisappear\ and \reducePriorityOnDisappear\), an \ImageBinder\ for state management, and support for custom failure views via the \onFailureView\ modifier. It also supports SwiftUI-native transitions and animations, and defaults to loading disk files synchronously to prevent flickering during view updates.

Sources/SwiftUI · high confidence

Introduction of AnimatedImageView and configurable activity indicators

This change introduces the \AnimatedImageView\ component, a specialized view for displaying animated images (such as GIFs) that optimizes memory usage by preloading only a subset of frames at a time, rather than loading all frames into memory simultaneously. It includes features like configurable frame preload counts, automatic playback on visibility, and delegate notifications for animation loops. Additionally, the \Indicator\ system is updated to support custom image-based indicators (including GIFs) and provides platform-specific styling for activity indicators on iOS, macOS, tvOS, and visionOS, allowing developers to display progress during image downloads with greater flexibility.

Sources/Views · high confidence

New Core Image filters and refined animated image handling

The library now includes a new \Filter\ type and \CIImageProcessor\ protocol, allowing users to apply Core Image effects such as tinting and color control (brightness, contrast, saturation, exposure) to images. Additionally, the \GIFAnimatedImage\ and \ImageFrameSource\ APIs have been introduced to provide more robust decoding and frame extraction for animated images, while \ImageProgressive\ has been updated to support configurable blur effects during progressive JPEG loading.

Sources/Image · high confidence

New UIKit and AppKit view extensions for image loading

Kingfisher now supports setting images on a broader range of UIKit and AppKit components beyond standard image views. New extensions allow you to use the same \kf.setImage\ API on \UIButton\ and \NSButton\ (including alternate images on macOS), \NSTextAttachment\ for inline images in attributed strings, \CPListItem\ for CarPlay interfaces, and \PHLivePhotoView\ for live photos. This unifies the image loading experience across more UI elements in your app.

Sources/Extensions · high confidence

New data providers for AVAsset, PHPicker, PhotosPicker, and Live Photos

This change introduces several new image data providers in the \Sources/General/ImageSource\ directory. \AVAssetImageDataProvider\ allows extracting images from video assets at specific times. \PHPickerResultImageDataProvider\ and \PhotosPickerItemImageDataProvider\ enable loading images directly from iOS/macOS picker results (\PHPickerResult\ and \PhotosPickerItem\ respectively), with stable caching based on asset identifiers. Additionally, \LivePhotoSource\ and \LivePhotoResource\ are added to support loading and caching Live Photos, including file type guessing for HEIC and MOV formats. These providers integrate with the existing \ImageDataProvider\ protocol and \Source\ enum, allowing users to load images from these new sources using Kingfisher's standard APIs.

Sources/General/ImageSource · high confidence

New fastlane actions for changelog management and build number synchronization

This change introduces four new fastlane actions to the \fastlane/actions\ directory. The \ExtractCurrentChangeLogAction\ parses a YAML file to extract version-specific changelog details (additions, fixes, removals), while \UpdateChangeLogAction\ formats this data into Markdown and appends it to a changelog file (defaulting to \CHANGELOG.md\). Additionally, \SyncBuildNumberToGitAction\ automatically sets the project's build number to match the total git commit count, and \GitCommitAllAction\ provides a convenient wrapper to stage and commit all changes with a specified message.

fastlane/actions · high confidence

New fastlane automation for xcframework builds and releases

A new Fastfile has been added to automate the build, packaging, and release process for the Kingfisher framework. This includes lanes to run tests across iOS, macOS, tvOS, watchOS, and visionOS simulators, lint the library via CocoaPods and SPM, and generate signed, zipped xcframework bundles for all supported platforms as well as an iOS-only variant. The release lane orchestrates version bumping, changelog generation, Git tagging, and uploading the resulting artifacts to GitHub releases.

fastlane · high confidence

New getting-started tutorials for SwiftUI and UIKit

Added comprehensive documentation tutorials for Kingfisher, providing step-by-step guides for both SwiftUI and UIKit. The new 'Getting Started with Kingfisher (SwiftUI)' tutorial covers installing the library via Swift Package Manager, loading images using \KFImage\, applying image processors like rounded corners, and managing the image cache. The 'Getting Started with Kingfisher (UIKit)' tutorial offers a parallel guide for UIKit, demonstrating how to set up a \UITableView\, load images into \UIImageView\ using the \kf\ wrapper, and handle cache size inspection and clearing. These tutorials are organized under a new 'Kingfisher Tutorials' index in the documentation.

Sources/Documentation.docc/Tutorials · high confidence

WatchOS demo extension now supports image loading via Kingfisher

The WatchKit extension for the Kingfisher demo app has been updated to demonstrate image loading capabilities on watchOS. The InterfaceController now imports Kingfisher and uses the kf.setImage method on WKInterfaceImage to load remote images, providing a working example of how to integrate the library into watchOS applications.

Demo/Demo/Kingfisher-watchOS-Demo Extension · high confidence

Behavioural changes

Add Xcode scheme configuration for Kingfisher

The project now includes a shared Xcode scheme (Kingfisher.xcscheme) that defines build, test, launch, profile, analyze, and archive actions. This configuration enables code coverage for tests, sets parallel build options, and specifies the Kingfisher framework as the primary build target for launching and profiling.

Kingfisher.xcodeproj/xcshareddata/xcschemes · high confidence

Added iOS privacy manifest and Info.plist for Swift Package Manager

The Sources directory now includes a PrivacyInfo.xcprivacy file and an Info.plist to support the Swift Package Manager structure. The privacy manifest declares access to the file timestamp API (reason code C617.1) and explicitly states that no tracking is performed, no tracking domains are used, and no data types are collected, ensuring compliance with Apple's App Tracking Transparency requirements.

Sources · high confidence

Centralized demo image URL configuration

The demo application now uses a centralized \ImageLoader\ struct to manage all sample image URLs, replacing scattered or hardcoded references. This change consolidates URLs for standard images, orientation tests, high-resolution images, GIFs, progressive loading, and flower data into a single source, ensuring consistent and maintainable access to demo assets across the sample app.

Demo/Demo/Kingfisher-Demo/Resources · high confidence

Demo app UI modernized with dark mode support and new sample pages

The demo application's main storyboard has been updated to support dark mode, utilizing system colors and safe area layouts for a modern appearance. New sample pages have been added to the navigation menu, including sections for Basic loading, Auto Sizing, and Image Transitions, allowing users to explore these specific Kingfisher features directly within the demo app.

Demo/Demo/Kingfisher-Demo/Base.lproj · high confidence

Demo app updated to iOS 13 scene-based lifecycle and modernized layout

The Kingfisher-Demo application has been migrated to support the iOS 13+ scene-based lifecycle, introducing a SceneDelegate and updating the Info.plist to use UISceneConfigurations. The demo interface has been modernized with a new launch screen that utilizes safe area layout guides and system colors, and the app bundle version has been updated to 4.6.2 (build 1244).

Demo/Demo/Kingfisher-Demo · high confidence

Demo project workspace structure updated

The Kingfisher-Demo project has been moved into a subfolder, resulting in the creation of a new workspace configuration file (contents.xcworkspacedata) and an IDE workspace checks plist. This change updates the project's internal build structure to reflect the new directory location.

Demo/Kingfisher-Demo.xcodeproj/project.xcworkspace · medium confidence

Kingfisher 7.0: Major API overhaul with builder pattern and concurrency support

Kingfisher has been rewritten for version 7.0, introducing a new builder-based API (\KF.source\, \KF.url\) that replaces the previous extension methods on UI components. The framework now fully supports Swift concurrency (async/await) and is marked as \Sendable\ for thread safety. This release also adds native support for Live Photos, progressive JPEG loading, and low data mode, while removing deprecated APIs and CarPlay support for Mac Catalyst.

Sources/General · high confidence

Kingfisher project structure and source file configuration

The Kingfisher Xcode project file has been restructured to include a comprehensive set of source files, test targets, and resources. This update adds support for modern iOS features such as PHPicker and PhotosPicker via new ImageDataProviders, introduces Live Photo support through dedicated extensions and sources, and integrates SwiftUI components like KFImage and KFAnimatedImage. The project also includes extensive test coverage for image processing, caching, and download behaviors, along with resources for testing various image formats and pixel depths.

Kingfisher.xcodeproj · high confidence

Networking layer refactored for Swift concurrency and expanded capabilities

The networking implementation has been rewritten to adopt Swift concurrency, converting authentication challenge handling and delegate callbacks to async/await styles to improve cooperative cancellation and reduce retain cycles. This update introduces new capabilities including Live Photo resource downloading, network performance metrics collection (exposing download speed, latency, and byte counts), and a network connectivity monitor to support retry strategies. Additionally, the image processing pipeline now uses a dedicated queue for thread safety, and the prefetcher behavior has been adjusted to apply retry strategies and handle completion callbacks more robustly.

Sources/Networking · high confidence

Reimplemented image caching with new storage and serialization architecture

The disk and memory caching systems have been completely rewritten to improve performance and concurrency safety. The new architecture introduces dedicated \DiskStorage\ and \MemoryStorage\ backends that replace the previous implementation, featuring optimized disk I/O (such as single metadata syscalls for cache lookups) and full Swift concurrency support with \Sendable\ types. A new \CacheSerializer\ protocol and \DefaultCacheSerializer\ struct handle image serialization, adding support for compression quality configuration and preserving original data formats (like GIF) more reliably. Additionally, the \ImageCache\ now exposes memory storage cost via \memoryStorageCacheCost\ and provides clearer control over expiration policies through the \ExpirationExtending\ enum.

Sources/Cache · high confidence

Repository maintenance and documentation updates

This change updates the project's root-level configuration and documentation files. It introduces a new \.gitignore\ to exclude build artifacts, IDE settings, and AI tool local configurations (\.claude/\, \.codex/\), adds a \.ruby-version\ file to pin the Ruby toolchain to 3.3.6, and configures the Swift Package Index via \.spi.yml\. Documentation is refreshed with a new \AGENTS.md\ (referenced by a \CLAUDE.md\ symlink) providing LLM-friendly build and architecture guidance, a \README-LLM.md\ for quick overviews, and an updated \CONTRIBUTING.md\. The \LICENSE\ file's copyright year is updated to 2019, and a \Kingfisher.json\ manifest is added to track prebuilt framework release URLs.

(repo-wide) · high confidence

Reset macOS demo storyboard to default template

The Main.storyboard for the Kingfisher-macOS-Demo has been reset to a fresh, default Xcode template. This removes any custom UI elements, scene configurations, or layout changes previously present in the demo application, restoring the standard macOS application menu and initial view controller structure.

Demo/Demo/Kingfisher-macOS-Demo/Base.lproj · high confidence

Updated watchOS demo app metadata and interface layout

The watchOS demo application has been updated with a new app icon set supporting various Apple Watch sizes and roles, a revised interface storyboard defining the navigation flow between image display scenes, and an updated Info.plist reflecting version 4.6.2 (build 1244) with the bundle identifier com.onevcat.Kingfisher-Demo.

Demo/Demo/Kingfisher-watchOS-Demo · high confidence

Utility layer refactored with new concurrency-safe primitives and SHA-256 hashing

The Sources/Utility module has been restructured to introduce several new concurrency-safe components and update cryptographic practices. A new CancellationToken class provides thread-safe cooperative cancellation for background tasks, while a Delegate class simplifies weak-reference callback management to prevent retain cycles. Callback execution is now handled by a unified CallbackQueue enum that supports custom OperationQueues alongside standard dispatch queues. To address caching issues with special characters in URLs, String hashing has migrated from MD5 to SHA-256, and the String extension now includes stricter validation for file extensions to prevent broken disk caching. Additional utilities include a WeakBox for safe weak references in image download callbacks, a DisplayLink abstraction for cross-platform animation support, and various size and runtime helper extensions.

Sources/Utility · high confidence

Workspace configuration updated to reference Kingfisher-Demo

The Xcode workspace has been reconfigured to explicitly reference the Kingfisher-Demo project. This change introduces the standard workspace contents file pointing to the demo project and adds the IDE workspace checks plist, ensuring the workspace is correctly recognized and configured by Xcode for the demo target.

Kingfisher.xcodeproj/project.xcworkspace · high confidence

Workspace restructured to include demo project

The development environment has been updated to use a workspace that explicitly references both the main Kingfisher project and the demo application located in the Demo subfolder. This change consolidates the project structure, ensuring that the demo app is properly linked within the workspace configuration for easier development and testing.

Kingfisher.xcworkspace · high confidence

macOS demo app restructured with SwiftUI and animated image support

The macOS demo application has been reorganized into a dedicated subfolder and updated to support modern Swift UI paradigms. A new SwiftUI-based view controller demonstrates the \KFAnimatedImage\ component with features like frame preloading, caching, and fade transitions, while a separate view controller showcases \AnimatedImageView\ for handling heavy GIFs. The traditional AppKit interface now utilizes an \NSCollectionView\ to display images with progress indicators and cache management options, reflecting a shift towards supporting both SwiftUI and AppKit implementations for macOS users.

Demo/Demo/Kingfisher-macOS-Demo · high confidence

tvOS demo app migrated to modern iOS lifecycle and Swift 4.2

The tvOS demo application has been updated to support modern Xcode build requirements by migrating to Swift 4.2 and adopting the iOS 13+ scene-based lifecycle. This involves replacing the traditional \AppDelegate\ with a \SceneDelegate\ and configuring \UIApplicationSceneManifest\ in the Info.plist, ensuring the demo runs correctly on current development environments while maintaining the existing image loading demonstration interface.

Demo/Demo/Kingfisher-tvOS-Demo · high confidence

Fixes

Add regression test views for image loading issues

The demo app now includes four new SwiftUI views in the Regression section to help reproduce and verify fixes for specific GitHub issues: Issue1998View tests pre-loading in a list, Issue2035View handles nil image URLs, Issue2295View verifies hit-testing behavior on tappable images, and Issue2352View tests animated GIF scaling in a list.

Demo/Demo/Kingfisher-Demo/SwiftUIViews/Regression · high confidence

Added app-sandbox entitlements for Mac Catalyst builds

The demo application now includes an entitlements file enabling the app sandbox and network client capabilities, which is required to successfully build and run the demo on Mac Catalyst.

Demo · high confidence

Test coverage

Added performance baseline for image retrieval; Added test utilities for stale cache and network stubbing; Expanded test coverage for Kingfisher core components; Incorporated Nocilla HTTP stubbing library into test dependencies.

Dependencies

Initial release of Kingfisher 8.13.0 with Swift Package Manager and CocoaPods support

This change introduces the initial dependency manifests for Kingfisher version 8.13.0, establishing support for both Swift Package Manager (via Package.swift) and CocoaPods (via Kingfisher.podspec). The library is configured to require Swift 5.0 and targets iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 9.0, and visionOS 1.0. It links against the CFNetwork and Accelerate frameworks, with SwiftUI and Combine as weak dependencies. The build configuration enables \BUILD\_LIBRARY\_FOR\_DISTRIBUTION\ for framework distribution and includes a privacy manifest. The Ruby development environment is initialized with a Gemfile specifying fastlane and cocoapods.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 49 → 75 (+26.2)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 96 (-4.4)
  • Architecture 69 → 96 (+27.3)
  • Maturity 63 → 67 (+3.5)
  • Readiness 27 → 69 (+41.8)
  • Security 66 → 94 (+27.5)

Resolved (12)

  • Dimension evaluation failed
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • LLM evaluation failed
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (88)

  • CGImageFrameSource.thumbnailMaxPixelSize (cyclomatic 16) (Sources/Image/GIFAnimatedImage.swift)
  • ClassTooLong: ImageCache (Sources/Cache/ImageCache.swift)
  • ClassTooLong: KingfisherManager (Sources/General/KingfisherManager.swift)
  • Coverage not measured — Swift suite
  • Documentation: no project overview (docs/testing.md)
  • Duplicate intent with different return types and threading models. One returns a synchronous Result<ImageCacheResult, KingfisherError> (blocking or main-thread dependent), while the other is asynchronous via callback. This forces users to choose based on threading preference rather than functional need, and the synchronous version can be dangerous if called on the main thread.
  • Duplicated block (10 lines × 2) (Demo/Demo/Kingfisher-Demo/ViewControllers/NormalLoadingViewController.swift)
  • Duplicated block (10 lines × 2) (Sources/Extensions/UIButton+Kingfisher.swift)
  • Duplicated block (11 lines × 2) (Sources/Cache/ImageCache.swift)
  • Duplicated block (11 lines × 2) (Sources/Documentation.docc/Resources/code-files/02-ContentView-5.swift)
  • Duplicated block (11 lines × 3) (Sources/Extensions/HasImageComponent+Kingfisher.swift)
  • Duplicated block (11–12 lines × 2) (Sources/Extensions/CPListItem+Kingfisher.swift)
  • Duplicated block (12 lines × 2) (Sources/Image/ImageDrawing.swift)
  • Duplicated block (12 lines × 6) (Sources/Extensions/HasImageComponent+Kingfisher.swift)
  • Duplicated block (12–13 lines × 2) (Sources/Extensions/HasImageComponent+Kingfisher.swift)
  • Duplicated block (18 lines × 2) (Sources/Extensions/ImageView+Kingfisher.swift)
  • Duplicated block (27–28 lines × 2) (Demo/Demo/Kingfisher-Demo/SwiftUIViews/AnimatedImageDemo.swift)
  • Duplicated block (5 lines × 4) (Sources/Extensions/CPListItem+Kingfisher.swift)
  • Duplicated block (5 lines × 6) (Sources/Extensions/ImageView+Kingfisher.swift)
  • Duplicated block (6 lines × 2) (Demo/Demo/Kingfisher-Demo/ViewControllers/NormalLoadingViewController.swift)
  • …and 68 more

Changes since last survey

  • 70 commits — 57 feature/other, 13 fixes

By area

  • (repo) — 20 commits
  • Tests/KingfisherTests — 9 commits
  • Sources/General — 8 commits
  • (root) — 6 commits
  • Sources/Networking — 5 commits
  • Sources/Cache — 3 commits
  • Sources/Image — 3 commits
  • Sources/SwiftUI — 3 commits
  • Sources/Views — 3 commits
  • Demo/Demo — 2 commits
  • Sources/Extensions — 2 commits
  • Sources/Documentation.docc — 1 commit
  • Sources/Utility — 1 commit
  • docs/issue-2495-analysis.md — 1 commit
  • docs/prefetch-concurrency-investigation.md — 1 commit
  • docs/reviews — 1 commit
  • docs/testing.md — 1 commit

Notable commits

  • fix: Add regression test for joined download priority
  • fix: Fix only-from-cache prefetch fallback
  • fix: Fix parameter documentation for retrieveImageFromCache
  • fix: Fix prefetch cancellation accounting and shared download scaling
  • fix: Merge branch 'master' into relay/fix-217-onevcat-kingfisher-downloadpriority-is-i-2cab0f3a
  • fix: Merge pull request #2563 from latent-9/docs/fix-doubled-word
  • fix: Merge pull request #2568 from onevcat/relay/fix-217-onevcat-kingfisher-downloadpriority-is-i-2cab0f3a
  • fix: Merge pull request #2573 from onevcat/fix/original-cache-hit-scheduling
  • fix: Merge pull request #2581 from onevcat/fix/xcode-27-health-check
  • fix: Merge pull request #2585 from onevcat/fix/animated-frame-downsampling
  • fix: Merge remote-tracking branch 'origin/master' into fix/animated-frame-downsampling
  • fix: Revert testing documentation changes
  • fix: fix code review
  • change: Add FlippingImageProcessor for mirroring images
  • change: Add a public DownloadTask initializer for custom downloaders
  • change: Add an isLoaded flag to the contentConfigure block
  • change: Add coverage for animated frame downsampling
  • change: Aggregate shared download priority by consumer
  • change: Avoid repeated full size decodes on an original cache hit
  • change: Bind the loaded image and its provenance together
  • …and 50 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

onevcat/Kingfisher was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit a821446e559d74f67d93dfcab86bcd370e177bf0 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d00c643c3f66.