# Changelog

## Score

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

## Lenses

- Code Health 99 → 98 (-1.0)
- Architecture 100 → 100 (+0.0)
- Maturity 77 → 77 (+0.2)
- Readiness 70 → 65 (-5.8)
- Security 47 → 58 (+10.6)
- Performance 70 (new)

## Resolved (5)

- Coverage not measured — no coverage collector is wired up
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Hotspot: src/py_isolated.erl (src/py_isolated.erl)
- Hotspot: src/py_shm.erl (src/py_shm.erl)

## New (11)

- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Duplicated block (10 lines × 2) (examples/ai_helpers.py)
- Duplicated block (10 lines × 2) (examples/benchmark_event_loop.py)
- Duplicated block (2–6 lines × 3) (examples/benchmark_event_loop.py)
- Duplicated block (6 lines × 3) (examples/benchmark_event_loop.py)
- Duplicated block (6 lines × 3) (examples/benchmark_event_loop.py)
- Duplicated block (7 lines × 2) (examples/benchmark_event_loop.py)
- Duplicated block (7 lines × 2) (examples/benchmark_event_loop.py)
- Duplicated block (8 lines × 2) (priv/_erlang_impl/_byte_channel.py)
- Duplicated block (9 lines × 2) (priv/_erlang_impl/_loop.py)
- Hotspot: priv/_erlang_impl/_loop.py (priv/_erlang_impl/_loop.py)

## Changes since last survey

- 4 commits — 3 feature/other, 1 fixes

## By area

- (root) — 3 commits
- (repo) — 1 commit

## Notable commits

- fix: Merge pull request #86 from benoitc/fix/pool-timers-reentrant-call
- change: Deliver pool loop timers to the loop that set them
- change: Release 5.0.1
- change: Serve nested py:call inline while an erlang.call waits
