# Changelog

## Score

- CAI 58 → 59 (+1.8)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 78 → 78 (-0.0)
- Architecture 83 → 83 (+0.1)
- Maturity 71 → 71 (+0.0)
- Readiness 61 → 70 (+9.5)
- Security 44 → 43 (-1.3)
- Domain Modelling 100 → 100 (+0.0)

## Resolved (47)

- Build action pinned to a mutable branch
- Change coupling: Application.cs ↔ MoveAssetsService.cs (JPPhotoManager/JPPhotoManager.Application/Application.cs)
- Change coupling: Application.cs ↔ SyncAssetsService.cs (JPPhotoManager/JPPhotoManager.Application/Application.cs)
- Change coupling: AssetRepository.cs ↔ StorageService.cs (JPPhotoManager/JPPhotoManager.Infrastructure/Repositories/AssetRepository.cs)
- Change coupling: CatalogAssetsService.cs ↔ MoveAssetsService.cs (JPPhotoManager/JPPhotoManager.Domain/Services/CatalogAssetsService.cs)
- Change coupling: SyncAssetsDirectoriesDefinition.cs ↔ AssetRepository.cs (JPPhotoManager/JPPhotoManager.Domain/Entities/SyncAssetsDirectoriesDefinition.cs)
- Critical CVE: [GHSA redacted] (JPPhotoManagerWeb/frontend/package-lock.json)
- Dependency hygiene not measured — this repository's dependencies are not NuGet
- Duplicated block (10 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/convert/ConvertAssetsUseCaseImpl.java)
- Duplicated block (10 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/AddTagToAssetUseCaseImpl.java)
- Duplicated block (10 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/BulkRemoveTagUseCaseImpl.java)
- Duplicated block (10 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/service/M3uPlaylistParserServiceAdapter.java)
- Duplicated block (14 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/BulkAddTagUseCaseImpl.java)
- Duplicated block (16 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/kafka/KafkaProgressListener.java)
- Duplicated block (5 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/persistence/adapter/AssetRepositoryImpl.java)
- Duplicated block (5 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/web/controller/AlbumController.java)
- Duplicated block (6 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/web/controller/AuthController.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/album/GetAlbumSummaryUseCaseImpl.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/web/controller/ConvertController.java)
- Duplicated block (7 lines × 3) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- …and 27 more

## New (50)

- Critical CVE: [GHSA redacted] (JPPhotoManagerWeb/frontend/package-lock.json)
- Critical CVE: [GHSA redacted] (JPPhotoManagerWeb/frontend/package-lock.json)
- Dependency hygiene not measured — no packages were read
- Duplicated block (10 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/service/M3uPlaylistParserServiceAdapter.java)
- Duplicated block (15 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/kafka/KafkaProgressListener.java)
- Duplicated block (5 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/web/controller/AuthController.java)
- Duplicated block (6 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/album/GetAlbumSummaryUseCaseImpl.java)
- Duplicated block (6 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/web/controller/ConvertController.java)
- Duplicated block (6 lines × 3) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- Duplicated block (6 lines × 3) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- Duplicated block (6 lines × 4) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/user/CreateUserUseCaseImpl.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/batch/CatalogAssetItemProcessor.java)
- Duplicated block (7 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/infrastructure/kafka/AssetHashProcessor.java)
- Duplicated block (8 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/asset/CropAssetUseCaseImpl.java)
- Duplicated block (8 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/convert/ConvertAssetsUseCaseImpl.java)
- Duplicated block (8 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/BulkAddTagUseCaseImpl.java)
- Duplicated block (9 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/AddTagToAssetUseCaseImpl.java)
- Duplicated block (9 lines × 2) (JPPhotoManagerWeb/backend/src/main/java/com/jpablodrexler/photomanager/application/usecase/tag/BulkRemoveTagUseCaseImpl.java)
- …and 30 more
