# Changelog

## Score

- CAI 60 → 60 (+0.0)

## Lenses

- Code Health 98 → 98 (+0.0)
- Architecture 97 → 97 (+0.0)
- Maturity 50 → 50 (+0.0)
- Readiness 45 → 45 (+0.0)
- Security 97 → 97 (+0.0)

## Resolved (5)

- Duplicate factory methods across `SKPhoto` and `SKLocalPhoto` with identical signatures. `SKLocalPhoto` appears to be a concrete implementation of `SKPhoto` (or similar), yet it exposes the same static factory methods. This creates redundancy and potential confusion about which type to instantiate.
- Inconsistent key types for cache lookup. One method uses a String key, while the other uses a URLRequest object. This forces consumers to know which specific cache entry type they are looking for, rather than having a unified lookup interface.
- Inconsistent storage methods for different data types. One stores a UIImage directly with a String key, while the other stores raw Data with a URLRequest. This splits the caching logic between 'image objects' and 'network responses' without a unified abstraction, making it unclear how to retrieve the data stored via `setImageData`.
- Off-boarding risk: anonymized user #1
- Workflow token permissions not restricted

## New (11)

- Off-boarding risk: anonymized user #1
- Orphaned file (SKPhotoBrowser/SKCache.swift)
- Orphaned file (SKPhotoBrowser/SKCaptionView.swift)
- Orphaned file (SKPhotoBrowser/SKPagingScrollView.swift)
- Orphaned file (SKPhotoBrowser/SKPhoto.swift)
- Orphaned file (SKPhotoBrowser/SKPhotoBrowserDelegate.swift)
- Orphaned file (SKPhotoBrowser/SKZoomingScrollView.swift)
- Orphaned file (SKPhotoBrowser/extensions/UIImage+Rotation.swift)
- Orphaned file (SKPhotoBrowserExample/SKPhotoBrowserExample/FromCameraRollViewController.swift)
- Orphaned file (SKPhotoBrowserExample/SKPhotoBrowserExample/FromLocalViewController.swift)
- Workflow token permissions not restricted (.github/workflows/swift_build.yml)
