# Changelog

## Score

- CAI 63 → 64 (+1.4)
- Rubric changed (rubric-2026.09.10 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 88 → 88 (-0.0)
- Architecture 100 → 98 (-2.5)
- Maturity 46 → 51 (+4.9)
- Readiness 82 → 76 (-5.8)
- Security 83 → 90 (+6.8)
- Accessibility 66 → 66 (+0.0)
- Performance 85 (new)

## Resolved (1)

- Documentation: no project overview (README.md)

## New (17)

- Asymmetric API between sync and async benchers. AsyncBencher has `iter_with_large_setup` but Bencher does not have a corresponding `iter_with_large_setup` (it only has `iter_with_setup` and `iter_with_large_drop`). This forces users to handle setup/drop logic differently depending on the executor type.
- Duplicated block (6 lines × 2) (src/plot/gnuplot_backend/regression.rs)
- Inconsistent ID type for benchmark identification. The top-level Criterion API expects a string for the benchmark ID, while the BenchmarkGroup API expects a specific BenchmarkId type.
- Inconsistent ID type for parameterized benchmarks. Criterion expects BenchmarkId, while BenchmarkGroup uses a generic ID type (likely String or BenchmarkId depending on context, but the signature differs).
- Low cohesion: Sample (LCOM4 5) (src/stats/univariate/sample.rs)
- Off the main sequence: criterion-plot
- Outdated: async-std
- Outdated: clap
- Outdated: csv
- Outdated: futures
- Outdated: proc-macro2
- Outdated: quote
- Outdated: rayon
- Outdated: regex
- Outdated: serde
- Outdated: serde_json
- Outdated: tokio
