# Changelog

## Score

- CAI 50 → 53 (+2.7)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 95 → 94 (-1.1)
- Architecture 100 → 93 (-6.2)
- Maturity 43 → 44 (+0.5)
- Readiness 26 → 33 (+7.7)
- Security 100 → 100 (+0.0)
- Domain Modelling 100 → 94 (-6.2)

## Resolved (21)

- Change coupling: DefaultEventSendingShceduler.java ↔ EventCommittingService.java (cqrs-core/src/main/java/com/damon/cqrs/event/DefaultEventSendingShceduler.java)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (11 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/TrainStock.java)
- Duplicated block (13 lines × 5) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/TrainStockMultiSceneTestBootstrap.java)
- Duplicated block (15 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/RedPacketServiceBootstrap.java)
- Duplicated block (6 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/goods/GoodsApplication.java)
- Duplicated block (6–13 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/RedPacketConfig.java)
- Duplicated block (7 lines × 2) (cqrs-core/src/main/java/com/damon/cqrs/event/EventCommittingService.java)
- Duplicated block (7 lines × 2) (cqrs-message-kafka/src/main/java/com/damon/cqrs/kafka/KafkaMessageHandler.java)
- Duplicated block (7 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/TrainStock.java)
- Duplicated block (7 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/TrainStock.java)
- Duplicated block (8 lines × 2) (cqrs-event-mysql/src/main/java/com/damon/cqrs/event_store/MysqlEventStore.java)
- Duplicated block (8 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/RedPacketConfig.java)
- Duplicated block (8–28 lines × 2) (cqrs-message-kafka/src/main/java/com/damon/cqrs/kafka/config/KafkaConsumerConfig.java)
- No exposed public API
- Test reliability not included
- TrainStock.randomSeatBuyTikcet (cognitive 18) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/TrainStock.java)
- TrainStock.selectSeatBuyTicket (cognitive 27) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/TrainStock.java)
- TrainStockMultiSceneTestBootstrap.main (cognitive 24) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/TrainStockMultiSceneTestBootstrap.java)
- …and 1 more

## New (55)

- Change coupling: EventCommittingService.java ↔ DefaultAggregateSnapshootService.java (cqrs-core/src/main/java/com/damon/cqrs/event/EventCommittingService.java)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 6) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/TrainStockMultiSceneTestBootstrap.java)
- Duplicated block (12 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/query/event_handler/RedPacketEventListener.java)
- Duplicated block (16 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/RedPacketServiceBootstrap.java)
- Duplicated block (18 lines × 5) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/TrainStockMultiSceneTestBootstrap.java)
- Duplicated block (26 lines × 5) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/value_object/UserSeatInfo.java)
- Duplicated block (28 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/red_packet/RedPacketServiceBootstrap.java)
- Duplicated block (35 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/command/TicketProtectCancelCommand.java)
- Duplicated block (5 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/goods/GoodsApplication.java)
- Duplicated block (51 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/aggregate/value_object/UserSeatInfo.java)
- Duplicated block (5–6 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/TestConfig.java)
- Duplicated block (6 lines × 6) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/train/TrainStockMultiSceneTestBootstrap.java)
- Duplicated block (7 lines × 2) (cqrs-message-kafka/src/main/java/com/damon/cqrs/kafka/KafkaMessageHandler.java)
- Duplicated block (7 lines × 3) (cqrs-core/src/main/java/com/damon/cqrs/event/EventCommittingService.java)
- Duplicated block (7–10 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/TestConfig.java)
- Duplicated block (8 lines × 2) (cqrs-event-mysql/src/main/java/com/damon/cqrs/event_store/MysqlEventStore.java)
- Duplicated block (9 lines × 2) (cqrs-sample/cqrs-sample-generic-test/src/main/java/com/damon/cqrs/sample/TestConfig.java)
- …and 35 more
