# Changelog

## Score

- CAI 65 → 66 (+0.9)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 93 → 95 (+1.4)
- Architecture 100 → 100 (+0.1)
- Maturity 65 → 69 (+3.8)
- Readiness 59 → 59 (+0.3)
- Security 67 → 72 (+4.7)
- Accessibility 73 → 73 (+0.0)
- Performance 70 (new)

## Resolved (16)

- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Documentation: no installation or build instructions (docs/examples/distributed-ml.md)
- Documentation: no installation or build instructions (docs/examples/embedding-service.md)
- Documentation: no usage examples (README.md)
- Documentation: no usage examples (docs/examples/embedding-service.md)
- Documentation: written for insiders (docs/guides/custom-apps.md)
- Duplicated block (11 lines × 3) (priv/hornbeam_asgi_runner.py)
- Duplicated block (12 lines × 2) (priv/hornbeam_wsgi_runner.py)
- Duplicated block (22–30 lines × 2) (priv/hornbeam_asgi_runner.py)
- Duplicated block (50 lines × 2) (priv/hornbeam_wsgi_runner.py)
- Edited copy of a member (53 corresponding lines) (priv/hornbeam_wsgi_runner.py)
- Hotspot: priv/hornbeam_asgi_runner.py (priv/hornbeam_asgi_runner.py)
- hornbeam_asgi_runner._run_coro_fast (cognitive 72) (priv/hornbeam_asgi_runner.py)
- hornbeam_asgi_runner._run_coro_fast (cyclomatic 21) (priv/hornbeam_asgi_runner.py)
- hornbeam_asgi_runner.run_asgi (cognitive 20) (priv/hornbeam_asgi_runner.py)

## New (19)

- Dependency hygiene PARTLY measured — Python dependencies read, no exact pin to grade for currency
- Duplicated block (11 lines × 2) (examples/embedding_chat/src/embedding_chat_app.erl)
- Duplicated block (11 lines × 2) (priv/hornbeam_lifespan_runner.py)
- Duplicated block (13 lines × 2) (src/hornbeam_hooks.erl)
- Duplicated block (24 lines × 2) (examples/hooks_demo.erl)
- Duplicated block (6 lines × 2) (src/hornbeam_presence.erl)
- Duplicated block (7 lines × 2) (examples/embedding_chat/src/embedding_chat_app.erl)
- Duplicated block (7 lines × 2) (src/hornbeam_presence.erl)
- Duplicated block (8 lines × 2) (src/hornbeam_tasks.erl)
- Duplicated block (9 lines × 2) (src/hornbeam_lifespan.erl)
- Floating source dependency: erlang_python
- Floating source dependency: erlang_python
- Floating source dependency: hornbeam
- Floating source dependency: hornbeam
- Floating source dependency: hornbeam
- No dependency lockfile committed (examples/demo/ml_caching/rebar.config)
- No dependency lockfile committed (examples/demo/multi_app/rebar.config)
- No dependency lockfile committed (examples/embedding_chat/rebar.config)
- No dependency lockfile committed (rebar.config)

## Changes since last survey

- 2 commits — 1 feature/other, 1 fixes

## By area

- docs/guides — 1 commit
- examples/demo — 1 commit

## Notable commits

- fix: Fix lifecycle teardown, config drift and unbounded atom creation (#20)
- change: Move HTTP from cowboy to livery, and serve HTTP/2 and HTTP/3 (#17)
