# Changelog

## Score

- CAI 64 → 65 (+0.8)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 97 → 96 (-0.6)
- Architecture 80 → 94 (+14.2)
- Maturity 55 → 55 (+0.0)
- Readiness 67 → 71 (+3.8)
- Security 64 → 64 (+0.0)

## Resolved (3)

- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)

## New (8)

- Coverage not measured — Swift suite
- Duplicated block (11 lines × 3) (Example/SDWebImageSwiftUIDemo/ContentView.swift)
- Duplicated block (17 lines × 2) (SDWebImageSwiftUI/Classes/Image.swift)
- Duplicated block (8 lines × 2) (SDWebImageSwiftUI/Classes/AnimatedImage.swift)
- Inconsistent callback naming convention. The View-based API uses 'onSuccess' (and onFailure/onProgress), while the Manager-based API uses 'setOnSuccess' (and setOnFailure/setOnProgress). The 'set' prefix is redundant and inconsistent with the declarative style of the View API.
- Inconsistent indicator API design. AnimatedImage exposes a low-level SDWebImageIndicator type directly, while WebImage exposes a high-level, SwiftUI-native Indicator type with a builder closure. This forces developers to use different patterns for similar functionality depending on which component they choose.
- Outdated: sdwebimage
- WebImage.body (cognitive 17) (SDWebImageSwiftUI/Classes/WebImage.swift)
