# Changelog

## Score

- CAI 52 → 56 (+3.4)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 58 → 58 (-0.0)
- Architecture 77 → 77 (+0.1)
- Maturity 59 → 59 (+0.1)
- Readiness 47 → 47 (+0.0)
- Security 49 → 70 (+21.5)
- Event-Driven 100 → 100 (+0.0)

## Resolved (9)

- Dead code: GetStorageBaseDirectory (Infrastructure/FileStroage/AliyunFileStorage.cs)
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- Low cohesion: FileService (LCOM4 6) (Domain/NexusStack.Core/Services/SystemManagement/FileService.cs)
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2

## New (21)

- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- High CVE: System.Security.Cryptography.Xml 10.0.9
- Inconsistent naming for object storage identifiers. 'bucket' and 'key' are used, whereas 'bucket' and 'name' (or 'fileName') would be more consistent with standard object storage terminology (Bucket and Key/Name).
- Inconsistent naming for user profile image. Both the DTO and Entity use 'Avatar', which is consistent, but the property name 'Avatar' is used in both, so this is actually consistent. However, looking at 'NexusStack.Core.Dtos.Users.UserDto.HasPassword' vs 'NexusStack.Core.Dtos.Users.UserDto.Mobile', the naming style is consistent. Let's look for actual inconsistencies.
- Medium IaC: CKV_DOCKER_3 (BackgroundServices/NexusStack.MQService/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (BackgroundServices/NexusStack.PlanTaskService/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (Host/NexusStack.Gateway/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (Host/NexusStack.WebAPI/Dockerfile)
- Medium IaC: CKV_SECRET_6 (BackgroundServices/NexusStack.MQService/appsettings.Staging.json)
- Medium IaC: CKV_SECRET_6 (BackgroundServices/NexusStack.MQService/bin/Debug/net10.0/appsettings.Staging.json)
- Medium IaC: CKV_SECRET_6 (BackgroundServices/NexusStack.PlanTaskService/appsettings.Staging.json)
- Medium IaC: CKV_SECRET_6 (BackgroundServices/NexusStack.PlanTaskService/bin/Debug/net10.0/appsettings.Staging.json)
- Medium IaC: CKV_SECRET_6 (Host/NexusStack.Gateway/appsettings.Development.json)
- Medium IaC: CKV_SECRET_6 (Host/NexusStack.Gateway/bin/Debug/net10.0/appsettings.Development.json)
- Medium IaC: CKV_SECRET_6 (Host/NexusStack.WebAPI/appsettings.Staging.json)
- Medium IaC: CKV_SECRET_6 (Host/NexusStack.WebAPI/bin/Debug/net10.0/appsettings.Staging.json)
- Off-boarding risk: anonymized user #1
- …and 1 more

## API surface

- Unchanged — 57 HTTP endpoints
