# Changelog

## Score

- CAI 48 → 50 (+1.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 93 → 91 (-1.8)
- Architecture 82 → 82 (+0.0)
- Maturity 43 → 49 (+5.9)
- Readiness 31 → 31 (+0.0)
- Security 89 → 89 (+0.0)
- Performance 77 → 76 (-0.6)

## Resolved (6)

- Inconsistent naming for CRUD operations across different service interfaces. Some use 'CreateAsync', others 'AddAsync' or 'InsertAsync'. Similarly, 'DeleteAsync' is used in some places while 'RemoveAsync' is used in others.
- Inconsistent naming for cache operations. 'AddOrUpdateAsync' is used in InMemory cache, while 'UpdateAsync' or 'SetAsync' might be expected for consistency with other cache implementations.
- Inconsistent naming for the collection of queries used to include related entities. Some specifications use 'IncludeQueries' while others use 'OrderByDescendingQueries' or 'IncludeQueries' for different query types, but the naming convention for the collection of include queries is not consistent across all repository implementations (EFCore, LiteDB, MongoDB).
- Inconsistent naming for the method that retrieves the entity's ID. Some use 'GetEntityId', others might use 'GetId' or 'GetEntityId' inconsistently.
- LLM evaluation failed
- The 'WhereAsync' method exists in both the repository layer and the service layer, but they operate on different entities (TEntity vs TEntityDbo). While this is a layering distinction, the method name is identical despite the different input types, which could be confusing.

## New (51)

- The CQRS data-store in-memory abstraction is referenced but the README does not show how to register or use it. (WebApi/Modern.CQRS.DataStore.InMemory.Abstractions/README.md)
- The single controller README explains how to register controllers but does not cover usage of OData controllers or the OData-specific repository types. (WebApi/Modern.Controllers.DataStore/README.md)
- Typo in namespace 'Infrastracture' (missing 't') in the 'EntityIncludeQuery' definition, while other query-related types use 'Query' or 'Infrastructure' correctly spelled.
- XML-doc coverage: Modern.Application.Host (src/Host/Modern.Application.Host/Modern.Application.Host.csproj)
- XML-doc coverage: Modern.CQRS.DataStore(net8.0) (src/CQRS/Modern.CQRS.DataStore/Modern.CQRS.DataStore.csproj)
- XML-doc coverage: Modern.CQRS.DataStore.Abstractions(net8.0) (src/CQRS/Modern.CQRS.DataStore.Abstractions/Modern.CQRS.DataStore.Abstractions.csproj)
- XML-doc coverage: Modern.CQRS.DataStore.Cached(net8.0) (src/CQRS/Modern.CQRS.DataStore.Cached/Modern.CQRS.DataStore.Cached.csproj)
- XML-doc coverage: Modern.CQRS.DataStore.InMemory (src/CQRS/Modern.CQRS.DataStore.InMemory/Modern.CQRS.DataStore.InMemory.csproj)
- XML-doc coverage: Modern.CQRS.DataStore.InMemory.Abstractions (src/CQRS/Modern.CQRS.DataStore.InMemory.Abstractions/Modern.CQRS.DataStore.InMemory.Abstractions.csproj)
- XML-doc coverage: Modern.Cache.Abstractions(net8.0) (src/Cache/Modern.Cache.Abstractions/Modern.Cache.Abstractions.csproj)
- XML-doc coverage: Modern.Cache.InMemory(net8.0) (src/Cache/Modern.Cache.InMemory/Modern.Cache.InMemory.csproj)
- XML-doc coverage: Modern.Cache.Redis(net8.0) (src/Cache/Modern.Cache.Redis/Modern.Cache.Redis.csproj)
- XML-doc coverage: Modern.Controllers.Attributes (src/SourceGenerators/Attributes/Modern.Controllers.Attributes/Modern.Controllers.Attributes.csproj)
- XML-doc coverage: Modern.Controllers.CQRS.DataStore(net8.0) (src/WebApi/Modern.Controllers.CQRS.DataStore/Modern.Controllers.CQRS.DataStore.csproj)
- XML-doc coverage: Modern.Controllers.DataStore(net8.0) (src/WebApi/Modern.Controllers.DataStore/Modern.Controllers.DataStore.csproj)
- XML-doc coverage: Modern.Controllers.DataStore.InMemory(net8.0) (src/WebApi/Modern.Controllers.DataStore.InMemory/Modern.Controllers.DataStore.InMemory.csproj)
- XML-doc coverage: Modern.Controllers.DataStore.InMemory.OData(net8.0) (src/WebApi/Modern.Controllers.DataStore.InMemory.OData/Modern.Controllers.DataStore.InMemory.OData.csproj)
- XML-doc coverage: Modern.Controllers.DataStore.OData(net8.0) (src/WebApi/Modern.Controllers.DataStore.OData/Modern.Controllers.DataStore.OData.csproj)
- XML-doc coverage: Modern.Controllers.InMemory.Attributes (src/SourceGenerators/Attributes/Modern.Controllers.InMemory.Attributes/Modern.Controllers.InMemory.Attributes.csproj)
- XML-doc coverage: Modern.Controllers.InMemory.SourceGenerators (src/SourceGenerators/Modern.Controllers.InMemory.SourceGenerators/Modern.Controllers.InMemory.SourceGenerators.csproj)
- …and 31 more

## API surface

- Unchanged — 31 HTTP endpoints

## Architecture

- Unchanged — 3 containers · 0 contexts · 0 edges
