# Changelog

> **This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.**

## Score

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

## Lenses

- Code Health 96 → 96 (+0.0)
- Architecture 98 → 98 (+0.0)
- Maturity 57 → 57 (+0.0)
- Readiness 81 → 81 (+0.0)
- Security 42 → 56 (+14.5)

## Resolved (13)

- Duplicated block (14 lines × 2) (src/Extension/Cryptography/CryptographyMiddleware.php)
- Duplicated block (16 lines × 2) (src/Normalizer/ArrayShapeNormalizer.php)
- Duplicated block (17 lines × 2) (src/Metadata/AttributeMetadataFactory.php)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- Scanner failed to run — not a clean result
- The Setup example uses a CallbackUpcaster that returns an unmodified data array but the upcasters section names Upcaster interfaces (Rename or exclude, Lazy hydration) and the rename-upcaster code is present in the visible portion; no further sections are clipped. (docs/upcasting.md)

## New (13)

- Duplicated block (12 lines × 2) (src/Extension/Cryptography/CryptographyMiddleware.php)
- Duplicated block (15 lines × 2) (src/Metadata/AttributeMetadataFactory.php)
- Duplicated block (15 lines × 2) (src/Normalizer/ArrayShapeNormalizer.php)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
- The ArrayNormalizer example sets an explicit normalizer but does not explain how to configure it for nested elements or override defaults (docs/normalizer.md)
- The Setup example uses a CallbackUpcaster that is referenced but never explained (what it does, how to register other upcasters) (docs/upcasting.md)

## Changes since last survey

- 2 commits — 2 feature/other, 0 fixes

## By area

- (root) — 1 commit
- tools/composer.lock — 1 commit

## Notable commits

- change: Lock file maintenance
- change: Lock file maintenance
