# Changelog

## Score

- CAI 38 → 36 (-1.8)
- Rubric changed (rubric-2026.08.15 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 59 → 65 (+5.2)
- Architecture 83 → 92 (+9.0)
- Maturity 59 → 77 (+17.7)
- Readiness 10 → 16 (+6.3)
- Security 70 → 70 (+0.0)
- Domain Modelling 70 → 70 (+0.0)
- Accessibility 36 (new)

## Resolved (60)

- Change coupling: index.tsx ↔ index.tsx (admin-ui/src/pages/flow/user/index.tsx)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (10 lines × 2) (springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/repository/DynamicSQLBuilder.java)
- Duplicated block (10 lines × 2) (springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/metadata/TableEntityMetadata.java)
- Duplicated block (10 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/math/Arithmetic.java)
- Duplicated block (111 lines × 2) (springboot-starter-data-authorization/src/main/java/com/codingapi/springboot/authorization/handler/DefaultColumnHandler.java)
- Duplicated block (12 lines × 2) (example/example-infra/example-infra-flow/src/main/java/com/codingapi/example/infra/flow/convert/FlowBackupConvertor.java)
- Duplicated block (12 lines × 2) (springboot-starter-data-authorization/src/main/java/com/codingapi/springboot/authorization/jdbc/proxy/StatementProxy.java)
- Duplicated block (13 lines × 2) (springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/JpaQuery.java)
- Duplicated block (14 lines × 3) (springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/generator/DynamicTableGenerator.java)
- Duplicated block (14 lines × 4) (example/example-app/example-app-query/src/main/java/com/codingapi/example/app/query/service/FlowRecordQueryService.java)
- Duplicated block (14 lines × 5) (example/example-app/example-app-query/src/main/java/com/codingapi/example/app/query/service/FlowRecordQueryService.java)
- Duplicated block (16 lines × 2) (springboot-starter-script/src/main/java/com/codingapi/springboot/script/controller/GroovyScriptController.java)
- Duplicated block (16 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/math/Arithmetic.java)
- Duplicated block (168 lines × 2) (springboot-starter-data-authorization/src/main/java/com/codingapi/springboot/authorization/jdbc/proxy/ConnectionProxy.java)
- Duplicated block (17 lines × 2) (springboot-starter-security/src/main/java/com/codingapi/springboot/security/filter/MyLoginFilter.java)
- Duplicated block (17 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/math/Arithmetic.java)
- Duplicated block (17 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/math/Arithmetic.java)
- Duplicated block (21 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/math/Arithmetic.java)
- …and 40 more

## New (55)

- Change coupling: AutoConfiguration.java ↔ MyLoginFilter.java (springboot-starter-security/src/main/java/com/codingapi/springboot/security/AutoConfiguration.java)
- Change coupling: FlowApprovalEvent.java ↔ FlowService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/event/FlowApprovalEvent.java)
- Change coupling: FlowDirectionService.java ↔ FlowNodeService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/service/FlowDirectionService.java)
- Change coupling: FlowDirectionService.java ↔ FlowService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/service/FlowDirectionService.java)
- Change coupling: FlowNode.java ↔ FlowRecordRepository.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/domain/FlowNode.java)
- Change coupling: FlowNode.java ↔ FlowService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/domain/FlowNode.java)
- Change coupling: FlowNodeService.java ↔ FlowService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/service/FlowNodeService.java)
- Change coupling: FlowRecord.java ↔ FlowService.java (springboot-starter-flow/src/main/java/com/codingapi/springboot/flow/record/FlowRecord.java)
- Change coupling: HttpClient.java ↔ RestClient.java (springboot-starter/src/main/java/com/codingapi/springboot/framework/rest/HttpClient.java)
- Change coupling: IHandler.java ↔ SpringEventHandler.java (springboot-starter/src/main/java/com/codingapi/springboot/framework/event/IHandler.java)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (example/example-infra/example-infra-flow/src/main/java/com/codingapi/example/infra/flow/repository/FlowWorkRepositoryImpl.java)
- Duplicated block (10 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/rest/HttpRequest.java)
- Duplicated block (10 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/rest/RestClient.java)
- Duplicated block (11 lines × 2) (springboot-starter-data-fast/src/main/java/com/codingapi/springboot/fast/jpa/repository/DynamicSQLBuilder.java)
- Duplicated block (11 lines × 2) (springboot-starter/src/main/java/com/codingapi/springboot/framework/event/SpringDefaultEventHandler.java)
- Duplicated block (12 lines × 2) (springboot-starter-script/src/main/java/com/codingapi/springboot/script/GroovyScriptRuntime.java)
- Duplicated block (5 lines × 2) (springboot-starter-data-authorization/src/main/java/com/codingapi/springboot/authorization/enhancer/TableColumnAliasHolder.java)
- Duplicated block (5 lines × 2) (springboot-starter-data-authorization/src/main/java/com/codingapi/springboot/authorization/jdbc/proxy/ResultSetProxy.java)
- …and 35 more
