# Changelog

## Score

- CAI 28 → 48 (+19.8)

## Lenses

- Code Health 92 (new)
- Architecture 74 (new)
- Maturity 13 → 62 (+48.6)
- Readiness 15 → 31 (+15.3)
- Security 100 → 55 (-44.7)
- Domain Modelling 71 (new)
- Event-Driven 100 (new)
- Performance 69 (new)

## Resolved (7)

- Dependency hygiene not measured — no supported dependency manifest was read
- No automated tests
- No tests found
- Test reliability not included
- bus factor not measured — no commits were sampled
- early-stage repository — too little history to judge knowledge freshness
- single-commit history — no usable git history window to measure hotspots

## New (158)

- ApplicationCache.CreateValidationResultCache (cognitive 19) (src/Shopway.Application/Cache/ApplicationCache.ResultValidations.cs)
- Bounded contexts not declared
- CommentedOutCode (test/Shopway.Tests.Benchmark/Benchmarks/ReflectionUtilitiesBenchmarks.cs)
- Coverage not measured — test suite did not build
- Critical CVE: Refit 7.2.1
- Critical CVE: Scriban.Signed 5.5.0
- Critical CVE: System.Drawing.Common 4.5.0-preview1-25914-04
- Deprecated: FluentValidation.AspNetCore
- Deprecated: xunit
- Disclosure policy has no reporting contact
- Dormant codebase
- Duplicated block (13 lines × 2) (src/Shopway.Application/Utilities/FluentValidationUtilities.cs)
- Duplicated block (14 lines × 2) (src/Shopway.Application/Cache/ApplicationCache.AllowedFilterOperations.cs)
- Duplicated block (9 lines × 2) (src/Shopway.Application/Features/Orders/Commands/AddOrderLine/AddOrderLineCommandValidator.Fluent.cs)
- Duplicated block (9 lines × 2) (src/Shopway.Domain/Common/Utilities/HashUtilities.cs)
- FilterByEntryJsonConverter.Read (cognitive 32) (src/Shopway.Domain/Common/DataProcessing/FilterByEntryJsonConverter.cs)
- High CVE: MessagePack 2.4.59
- High CVE: MessagePack 2.4.59
- High CVE: Microsoft.Extensions.Caching.Memory 8.0.0
- High CVE: Scriban.Signed 5.5.0
- …and 138 more

## API surface

- 49 added · 0 removed (a removed endpoint is potentially breaking)

## Added endpoints (49)

- DELETE /permissions/{permission}
- DELETE /permissions/{permission}/properties/{property}
- DELETE /roles/{role}/permissions/{permission}
- DELETE /{id}
- DELETE /{productId}/reviews/{reviewId}
- DELETE /{username}/roles/{role}
- GET /key
- GET /permissions/{permission}
- GET /roles/{role}/permissions
- GET /{id}
- GET /{username}
- GET /{username}/roles
- GET /{username}/roles/permissions
- PATCH /{id}
- POST /
- POST /batch/upsert
- POST /batch/upsert/{orderHeaderId}
- POST /configure-webhook
- POST /configure/two-factor/topt
- POST /fuzzy-search/{productName}
- …and 29 more
