# Changelog

## Score

- CAI 43 → 48 (+5.3)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 78 → 77 (-0.4)
- Architecture 100 → 99 (-1.3)
- Maturity 48 → 48 (+0.0)
- Readiness 26 → 33 (+7.0)
- Security 54 → 68 (+14.4)

## Resolved (235)

- Change coupling: LunarDate.java ↔ SolarDate.java (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/instant/LunarDate.java)
- Change coupling: PropertyFormatAdapter.java ↔ XlsxFormatAdapter.java (jstarcraft-core-resource/src/main/java/com/jstarcraft/core/resource/format/PropertyFormatAdapter.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) (jstarcraft-core-cache/src/main/java/com/jstarcraft/core/cache/EntityCacheManager.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-cache/src/main/java/com/jstarcraft/core/cache/EntityCacheManager.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-cache/src/main/java/com/jstarcraft/core/cache/RegionCacheManager.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-communication/src/main/java/com/jstarcraft/core/communication/netty/tcp/NettyTcpServerConnector.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-event/jstarcraft-core-event-memory/src/main/java/com/jstarcraft/core/event/memory/MemoryQueueEventChannel.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-event/src/main/java/com/jstarcraft/core/event/rocket/RocketEventChannel.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-monitor/src/main/java/com/jstarcraft/core/monitor/trace/Log4Java1Storage.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-script/src/main/java/com/jstarcraft/core/script/python/PythonFunction.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-storage/jstarcraft-core-storage-elasticsearch/src/main/java/com/jstarcraft/core/storage/elasticsearch/ElasticsearchAccessor.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-storage/jstarcraft-core-storage-mongo/src/main/java/com/jstarcraft/core/storage/mongo/MongoAccessor.java)
- Duplicated block (10 lines × 2) (jstarcraft-core-storage/src/main/java/com/jstarcraft/core/storage/hibernate/HibernateAccessor.java)
- Duplicated block (10 lines × 3) (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/instant/LunarExpression.java)
- Duplicated block (10 lines × 3) (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/instant/SolarExpression.java)
- Duplicated block (10 lines × 3) (jstarcraft-core-script/src/main/java/com/jstarcraft/core/script/groovy/GroovyFunction.java)
- Duplicated block (10 lines × 3) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/schema/BerkeleyXmlParser.java)
- Duplicated block (10 lines × 3) (jstarcraft-core-storage/src/main/java/com/jstarcraft/core/storage/lucene/converter/index/ArrayIndexConverter.java)
- …and 215 more

## New (1124)

- ArrayIndexConverter.convert (cognitive 36) (jstarcraft-core-storage/jstarcraft-core-storage-lucene/src/main/java/com/jstarcraft/core/storage/lucene/converter/index/ArrayIndexConverter.java)
- ArrayIndexConverter.convert (cyclomatic 19) (jstarcraft-core-storage/jstarcraft-core-storage-lucene/src/main/java/com/jstarcraft/core/storage/lucene/converter/index/ArrayIndexConverter.java)
- BerkeleyAccessor.checkVersions (cognitive 22) (jstarcraft-core-storage/src/main/java/com/jstarcraft/core/storage/berkeley/BerkeleyAccessor.java)
- BerkeleyConverter.handleField (cognitive 16) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/migration/BerkeleyConverter.java)
- BerkeleyManager.queryIdentities (cognitive 37) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/BerkeleyManager.java)
- BerkeleyManager.queryIdentities (cyclomatic 22) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/BerkeleyManager.java)
- BerkeleyManager.queryInstances (cognitive 37) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/BerkeleyManager.java)
- BerkeleyManager.queryInstances (cyclomatic 22) (jstarcraft-core-storage/jstarcraft-core-storage-berkeley/src/main/java/com/jstarcraft/core/storage/berkeley/BerkeleyManager.java)
- BerkeleyXmlParser.parseInternal (cognitive 26) (jstarcraft-core-storage/src/main/java/com/jstarcraft/core/storage/berkeley/schema/BerkeleyXmlParser.java)
- ClassTooLong: HashUtility (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/hash/HashUtility.java)
- ClassTooLong: HibernateAccessor (jstarcraft-core-storage/jstarcraft-core-storage-hibernate/src/main/java/com/jstarcraft/core/storage/hibernate/HibernateAccessor.java)
- ClassTooLong: HibernateAccessor (jstarcraft-core-storage/src/main/java/com/jstarcraft/core/storage/hibernate/HibernateAccessor.java)
- ClassTooLong: LunisolarDate (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/instant/LunisolarDate.java)
- ClassTooLong: SolarExpression (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/instant/SolarExpression.java)
- ClassTooLong: TypeParser (jstarcraft-core-common/src/main/java/com/jstarcraft/core/common/reflection/TypeParser.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 × 10) (jstarcraft-core-codec/src/main/java/com/jstarcraft/core/codec/csv/converter/ArrayConverter.java)
- Duplicated block (10 lines × 12) (jstarcraft-core-event/jstarcraft-core-event-amqp/src/main/java/com/jstarcraft/core/event/amqp/AmqpEventChannel.java)
- …and 1104 more
