# Changelog

## Score

- CAI 61 → 45 (-15.9)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 58 → 58 (+0.4)
- Maturity 61 → 57 (-4.2)
- Readiness 56 → 30 (-26.3)
- Security 83 → 71 (-11.6)

## Resolved (23)

- Boundary-crossing change coupling: ParticleEmitterWebGLRenderer.js ↔ TransformerTile.js (src/gameobjects/particles/ParticleEmitterWebGLRenderer.js)
- Boundary-crossing change coupling: ParticleEmitterWebGLRenderer.js ↔ TransformerTileSprite.js (src/gameobjects/particles/ParticleEmitterWebGLRenderer.js)
- Change coupling clique: Animation.js, Animation.js, JSONAnimation.js (src/animations/Animation.js)
- Change coupling clique: FilterList.js, RenderNodeManager.js, index.js (src/gameobjects/components/FilterList.js)
- Change coupling: Config.js ↔ RenderConfig.js (src/core/Config.js)
- Change coupling: TransformerStamp.js ↔ TransformerTile.js (src/renderer/webgl/renderNodes/transformer/TransformerStamp.js)
- Change coupling: TransformerStamp.js ↔ TransformerTileSprite.js (src/renderer/webgl/renderNodes/transformer/TransformerStamp.js)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Further orphaned files (smaller)
- Further sole-owners (lower concentration)
- Off-boarding risk: anonymized user #1
- Off-boarding risk: anonymized user #2
- Orphaned knowledge (src/cameras/2d/CameraManager.js)
- Orphaned knowledge (src/curves/path/Path.js)
- Orphaned knowledge (src/display/color/Color.js)
- Orphaned knowledge (src/math/Vector3.js)
- Orphaned knowledge (src/physics/matter-js/Factory.js)
- TilemapLayerCanvasRenderer (cognitive 22) (src/tilemaps/TilemapLayerCanvasRenderer.js)
- _renderCanvas (cognitive 34) (src/textures/DynamicTexture.js)
- …and 3 more

## New (56)

- Boundary-crossing change coupling: FilterList.js ↔ index.js (src/gameobjects/components/FilterList.js)
- Boundary-crossing change coupling: GroupClassTypeConstructor.js ↔ PhysicsGroup.js (src/gameobjects/group/typedefs/GroupClassTypeConstructor.js)
- Boundary-crossing change coupling: SpriteGPULayer.js ↔ SpriteGPULayer-vert.js (src/gameobjects/spritegpulayer/SpriteGPULayer.js)
- Change coupling: Group.js ↔ GroupClassTypeConstructor.js (src/gameobjects/group/Group.js)
- Change coupling: PointLight-frag.js ↔ PointLight-vert.js (src/renderer/webgl/shaders/PointLight-frag.js)
- Change coupling: RenderNodeManager.js ↔ index.js (src/renderer/webgl/renderNodes/RenderNodeManager.js)
- Change coupling: TransformerImage.js ↔ TransformerTile.js (src/renderer/webgl/renderNodes/transformer/TransformerImage.js)
- Change coupling: TransformerImage.js ↔ TransformerTileSprite.js (src/renderer/webgl/renderNodes/transformer/TransformerImage.js)
- Change coupling: index.js ↔ index.js (src/renderer/webgl/renderNodes/index.js)
- Dimension evaluation failed
- FileTooLong: animations/Animation.test.js (tests/animations/Animation.test.js)
- FileTooLong: animations/AnimationState.test.js (tests/animations/AnimationState.test.js)
- FileTooLong: scale/ScaleManager.js (src/scale/ScaleManager.js)
- FileTooLong: scene/SceneManager.js (src/scene/SceneManager.js)
- FileTooLong: structs/RTree.js (src/structs/RTree.js)
- FileTooLong: textures/TextureManager.js (src/textures/TextureManager.js)
- FileTooLong: tilemaps/Tilemap.js (src/tilemaps/Tilemap.js)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 36 more
