# Changelog

## Score

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

## Lenses

- Code Health 76 → 75 (-0.5)
- Architecture 92 → 93 (+1.5)
- Maturity 68 → 68 (-0.1)
- Readiness 48 → 49 (+1.4)
- Security 68 → 79 (+10.5)
- Event Sourcing 100 → 100 (+0.0)
- Performance 100 (new)

## Resolved (3)

- Boundary-crossing change coupling: connector.rs ↔ mod.rs (connector/src/connector.rs)
- Hotspot: hftbacktest/src/backtest/proc/nopartialfillexchange.rs (hftbacktest/src/backtest/proc/nopartialfillexchange.rs)
- Hotspot: hftbacktest/src/backtest/proc/partialfillexchange.rs (hftbacktest/src/backtest/proc/partialfillexchange.rs)

## New (29)

- Ambiguous naming for time progression. `elapse` and `elapse_bt` (likely 'backtest') suggest similar functionality (advancing time), but the distinction is unclear from the names alone. It is not immediately obvious if `elapse_bt` is a specialized version or if one is deprecated.
- Conflicting accessors for the same property. `descr` is exposed as both a property returning a typed `DType` and a method returning a `String`. This is inconsistent with Rust conventions (properties are fields/getters, methods are actions) and creates ambiguity on how to access the description.
- Dependency hygiene PARTLY measured — Cargo dependencies read, no committed lock to grade for currency
- Documentation: no architecture or design documentation (docs/debugging_backtesting_and_live_discrepancies.rst)
- Documentation: no architecture or design documentation (docs/reference/data_validation.rst)
- Documentation: no installation or build instructions (connector/README.md)
- Documentation: no usage examples (connector/README.md)
- Duplicated block (10 lines × 3) (examples/example_bybit.py)
- Duplicated block (10 lines × 4) (py-hftbacktest/hftbacktest/data/utils/tardis.py)
- Duplicated block (11 lines × 2) (py-hftbacktest/hftbacktest/data/utils/tardis.py)
- Duplicated block (14 lines × 2) (hftbacktest/examples/4_latency.py)
- Duplicated block (15–17 lines × 2) (py-hftbacktest/hftbacktest/data/utils/bybit.py)
- Duplicated block (15–17 lines × 8) (py-hftbacktest/hftbacktest/data/utils/binancefutures.py)
- Duplicated block (17 lines × 2) (py-hftbacktest/hftbacktest/data/utils/bybit.py)
- Duplicated block (29 lines × 2) (py-hftbacktest/hftbacktest/data/utils/tardis.py)
- Duplicated block (30–34 lines × 4) (py-hftbacktest/hftbacktest/data/utils/binancehistmktdata.py)
- Duplicated block (34 lines × 2) (py-hftbacktest/hftbacktest/data/utils/tardis.py)
- Duplicated block (40–44 lines × 3) (py-hftbacktest/hftbacktest/data/utils/binancehistmktdata.py)
- Duplicated block (49 lines × 2) (py-hftbacktest/hftbacktest/data/utils/binancefutures.py)
- Duplicated block (7–8 lines × 5) (py-hftbacktest/hftbacktest/data/utils/tardis.py)
- …and 9 more
