# Changelog

## Score

- CAI 68 → 77 (+9.1)
- Rubric changed (rubric-2026.08.17 → rubric-2026.08.18) — scores are not directly comparable.

## Lenses

- Code Health 77 → 89 (+11.9)
- Architecture 100 → 100 (+0.0)
- Maturity 74 → 78 (+4.0)
- Readiness 61 → 75 (+13.6)
- Security 67 → 73 (+6.5)
- Domain Modelling 100 → 100 (+0.0)

## Resolved (162)

- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10 lines × 2) (internal/openapiv3/generator.go)
- Duplicated block (10 lines × 2) (internal/pyclientgen/client.go)
- Duplicated block (11 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (11 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (11 lines × 2) (internal/clientgen/generator.go)
- Duplicated block (11–12 lines × 2) (internal/openapiv3/generator.go)
- Duplicated block (11–12 lines × 3) (internal/httpgen/unwrap.go)
- Duplicated block (11–12 lines × 5) (internal/httpgen/generator.go)
- Duplicated block (11–14 lines × 5) (internal/httpgen/generator.go)
- Duplicated block (11–16 lines × 32) (internal/clientgen/generator.go)
- Duplicated block (12 lines × 2) (internal/clientgen/bytes_encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (12 lines × 2) (internal/httpgen/generator.go)
- Duplicated block (12 lines × 2) (internal/httpgen/generator.go)
- Duplicated block (12 lines × 3) (internal/clientgen/generator.go)
- Duplicated block (12 lines × 3) (internal/clientgen/generator.go)
- Duplicated block (12–13 lines × 2) (internal/httpgen/generator.go)
- …and 142 more

## New (143)

- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (internal/httpgen/unwrap.go)
- Duplicated block (10 lines × 2) (internal/tscommon/types.go)
- Duplicated block (11 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (11 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (11 lines × 2) (internal/httpgen/generator.go)
- Duplicated block (11 lines × 2) (internal/httpgen/unwrap.go)
- Duplicated block (11 lines × 2) (internal/openapiv3/generator.go)
- Duplicated block (12 lines × 2) (internal/clientgen/bytes_encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/enum_encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/enum_field_encoding.go)
- Duplicated block (12 lines × 2) (internal/clientgen/enum_field_encoding.go)
- Duplicated block (12 lines × 2) (internal/httpgen/generator.go)
- Duplicated block (12 lines × 2) (internal/httpgen/generator.go)
- Duplicated block (12 lines × 2) (internal/tscommon/types.go)
- Duplicated block (13 lines × 2) (internal/clientgen/bytes_encoding.go)
- Duplicated block (13 lines × 2) (internal/clientgen/encoding.go)
- Duplicated block (13 lines × 2) (internal/clientgen/enum_field_encoding.go)
- …and 123 more

## Changes since last survey

- 6 commits — 2 feature/other, 4 fixes

## By area

- internal/httpgen — 2 commits
- internal/tsclientgen — 2 commits
- examples/enum-encoding — 1 commit
- internal/urlparamtest — 1 commit

## Notable commits

- fix: fix(codegen): generate transitive int64 NUMBER marshalers across files and at any depth (#220)
- fix: fix(codegen): reject non-scalar query and path parameters at generation time (#218)
- fix: fix(enum): apply enum_value custom strings on Go server & client JSON (#214)
- fix: fix(enum): apply enum_value custom strings through nested messages (transitive) (#215)
- change: feat(ts): emit discriminated-union oneofs in TS generators (#199)
- change: feat(ts): emit per-proto type modules + shared errors in TS generators (#200)
