# Changelog

## Score

- CAI 57 → 56 (-1.2)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.19) — scores are not directly comparable.

## Lenses

- Code Health 91 → 91 (-0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 55 → 56 (+0.9)
- Readiness 53 → 49 (-4.4)
- Security 50 → 50 (+0.0)

## Resolved (35)

- Duplicated block (10 lines × 2) (src/Avalonia.FuncUI/Components/State/State.Adapters.fs)
- Duplicated block (11 lines × 2) (src/Avalonia.FuncUI/Components/State/State.Adapters.fs)
- Duplicated block (11 lines × 2) (src/Avalonia.FuncUI/DSL/AttrBuilder.fs)
- Duplicated block (12 lines × 2) (src/Examples/Examples.Canvas/Program.fs)
- Duplicated block (13 lines × 2) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/SpinnerDemo.fs)
- Duplicated block (13 lines × 2) (src/Avalonia.FuncUI/DataTemplateView.fs)
- Duplicated block (13 lines × 2) (src/Avalonia.FuncUI/VirtualDom/VirtualDom.fs)
- Duplicated block (13 lines × 2) (src/Examples/Examples.GeneticAlgorithm/Lib/Fitness.fs)
- Duplicated block (13 lines × 3) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/ContextMenuDemo.fs)
- Duplicated block (13 lines × 3) (src/Examples/Examples.ChordParser/Program.fs)
- Duplicated block (14 lines × 2) (src/Examples/Examples.TodoApp/Program.fs)
- Duplicated block (14 lines × 5) (src/Examples/Examples.CounterApp/Program.fs)
- Duplicated block (14 lines × 6) (src/Examples/Examples.DrawingApp/Program.fs)
- Duplicated block (15 lines × 2) (src/Avalonia.FuncUI/DSL/AttrBuilder.fs)
- Duplicated block (16 lines × 2) (src/Examples/Examples.Presso/Lib/Library.fs)
- Duplicated block (17 lines × 2) (src/Examples/Examples.Presso/Main.fs)
- Duplicated block (17 lines × 3) (src/Avalonia.FuncUI.Benchmarks/Scenarios/Diffing/GameOfLife.fs)
- Duplicated block (18 lines × 4) (src/Avalonia.FuncUI.Benchmarks/Scenarios/Diffing/GameOfLife.fs)
- Duplicated block (19 lines × 2) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/SpinnerDemo.fs)
- Duplicated block (20 lines × 2) (src/Examples/Examples.DrawingApp/Program.fs)
- …and 15 more

## New (34)

- Duplicated block (10 lines × 2) (src/Avalonia.FuncUI/Components/State/State.Adapters.fs)
- Duplicated block (10 lines × 2) (src/Avalonia.FuncUI/DSL/AttrBuilder.fs)
- Duplicated block (11 lines × 2) (src/Examples/Examples.Canvas/Program.fs)
- Duplicated block (11 lines × 2) (src/Examples/Examples.GeneticAlgorithm/Lib/Fitness.fs)
- Duplicated block (11 lines × 3) (src/Examples/Examples.ChordParser/Program.fs)
- Duplicated block (12 lines × 2) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/SpinnerDemo.fs)
- Duplicated block (12 lines × 2) (src/Avalonia.FuncUI/DataTemplateView.fs)
- Duplicated block (12 lines × 2) (src/Avalonia.FuncUI/VirtualDom/VirtualDom.fs)
- Duplicated block (12 lines × 3) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/ContextMenuDemo.fs)
- Duplicated block (13 lines × 2) (src/Examples/Examples.TodoApp/Program.fs)
- Duplicated block (13 lines × 5) (src/Examples/Examples.CounterApp/Program.fs)
- Duplicated block (13 lines × 6) (src/Examples/Examples.DrawingApp/Program.fs)
- Duplicated block (14 lines × 2) (src/Avalonia.FuncUI/DSL/AttrBuilder.fs)
- Duplicated block (15 lines × 2) (src/Examples/Examples.Presso/Lib/Library.fs)
- Duplicated block (16 lines × 2) (src/Examples/Examples.Presso/Main.fs)
- Duplicated block (16 lines × 3) (src/Avalonia.FuncUI.Benchmarks/Scenarios/Diffing/GameOfLife.fs)
- Duplicated block (16 lines × 3) (src/Avalonia.FuncUI.Benchmarks/Scenarios/Diffing/GameOfLife.fs)
- Duplicated block (18 lines × 2) (src/Examples/Examples.DrawingApp/Program.fs)
- Duplicated block (19 lines × 2) (src/Avalonia.FuncUI.ControlCatalog/Avalonia.FuncUI.ControlCatalog/Views/Tabs/SpinnerDemo.fs)
- Duplicated block (20 lines × 2) (src/Examples/Examples.DrawingApp/Program.fs)
- …and 14 more
