# Changelog

## Score

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

## Lenses

- Code Health 100 → 100 (+0.0)
- Architecture 100 → 91 (-9.0)
- Maturity 48 → 48 (+0.2)
- Readiness 50 → 58 (+8.1)
- Security 94 → 95 (+1.6)
- Performance 100 (new)

## Resolved (3)

- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1

## New (5)

- Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
- Inconsistent construction pattern. BufferedClient uses a static-style method 'buffer' to create an instance, whereas Client and BlockingClient use 'connect'. This breaks the mental model of 'creating a client' across the library.
- Inconsistent parameter types for subscription. Client and BlockingClient take a single String, while Subscriber takes a slice of Strings (&[String]). This forces users to handle different data structures depending on which client type they are using, even though the intent (subscribing to channels) is the same.
- Off-boarding risk: anonymized user #1
- Redundant connection logic across client types. Both BlockingClient and Client expose an identical connect method. Since BlockingClient is likely a wrapper or specific implementation of Client, this creates duplication in the public API surface for initialization.
