# Changelog

## Score

- CAI 68 → 68 (+0.2)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 92 → 92 (+0.0)
- Architecture 100 → 84 (-15.6)
- Maturity 69 → 70 (+0.3)
- Readiness 59 → 59 (+0.0)
- Security 68 → 74 (+6.5)
- Event Sourcing 100 → 100 (+0.0)

## Resolved (3)

- Coverage not measured — no coverage collector is wired up
- Documentation: no architecture or design documentation (README.md)
- Off-boarding risk: anonymized user #1

## New (3)

- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Off-boarding risk: anonymized user #1
- Projects may be oversized for their cohesion

## Changes since last survey

- 9 commits — 1 feature/other, 8 fixes

## By area

- (repo) — 3 commits
- src/esockd_socket_listener.erl — 2 commits
- src/esockd.erl — 1 commit
- src/esockd_accept_inet.erl — 1 commit
- src/esockd_accept_socket.erl — 1 commit
- src/esockd_proxy_protocol.erl — 1 commit

## Notable commits

- fix: Merge pull request #233 from keynslug/fix/socket/fragmented-ppv1
- fix: Merge pull request #234 from keynslug/fix/socket/option-handling
- fix: fix(listener): set buffer options on the listening socket
- fix: fix(socket): handle `v6only` listener option
- fix: fix(socket): handle `{tune_buffer, false}` case correctly
- fix: fix(socket): reject fragmented PPv1 headers
- fix: fix: correct handling of valid tune socket options
- fix: fix: handle various edge cases in `merge_opts/2`
- change: Merge pull request #232 from emqx/260923-listen-socket-buffer-opts
