# Changelog

## Score

- CAI 46 → 47 (+0.7)
- Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

## Lenses

- Code Health 55 → 54 (-0.5)
- Architecture 100 → 100 (+0.0)
- Maturity 30 → 30 (+0.2)
- Readiness 58 → 58 (+0.0)
- Security 61 → 71 (+9.7)

## Resolved (3)

- Documentation: no usage examples (README.md)
- Hotspot: src/Libs/FShade.Imperative/Ast.fs (src/Libs/FShade.Imperative/Ast.fs)
- Off-boarding risk: anonymized user #1

## New (6)

- Documentation: no project overview (README.md)
- Duplicated block (8 lines × 2) (src/Libs/FShade.Core/Shader.fs)
- Inlining.canInline (cyclomatic 16) (src/Libs/FShade.Core/Optimizer.fs)
- Inlining.isMutated (cognitive 18) (src/Libs/FShade.Core/Optimizer.fs)
- Inlining.isMutated (cyclomatic 21) (src/Libs/FShade.Core/Optimizer.fs)
- Off-boarding risk: anonymized user #1

## Changes since last survey

- 4 commits — 2 feature/other, 2 fixes

## By area

- (root) — 2 commits
- src/Libs — 2 commits

## Notable commits

- fix: Fix `ClipDistance` pass-through for vs and fs composition
- fix: Fix dead-code elimination to properly handle deprecated `ref` operators
- change: Improve composition of vertex and fragment shaders with multiple returns
- change: Update RELEASE_NOTES.md

## Architecture

- Containers 0 added · 0 removed · contexts 5 added · 0 removed · edges 5 added · 0 removed

## Added bounded contexts (5)

- FShade.Core
- FShade.Debug
- FShade.GLSL
- FShade.Imperative
- FShade.SpirV

## Added dependency edges (5)

- FShade.Core → FShade.Imperative (coupling)
- FShade.Debug → FShade.Core
- FShade.GLSL → FShade.Core (coupling)
- FShade.GLSL → FShade.Imperative (coupling)
- FShade.SpirV → FShade.Imperative (coupling)
