# Changelog

## Score

- CAI 59 → 65 (+6.3)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 91 → 87 (-4.1)
- Architecture 99 → 99 (+0.6)
- Maturity 43 → 60 (+17.5)
- Readiness 54 → 55 (+1.3)
- Security 83 → 83 (+0.0)

## Resolved (8)

- Change coupling: ContainerDetail.swift ↔ DashboardView.swift (Orchard/Views/Features/Containers/ContainerDetail.swift)
- Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Hotspot: Orchard/Services/ANSIText.swift (Orchard/Services/ANSIText.swift)
- Hotspot: Orchard/Services/ContainerBackend.swift (Orchard/Services/ContainerBackend.swift)
- Hotspot: Orchard/Services/ImageService.swift (Orchard/Services/ImageService.swift)
- Members sharing a duplicated core (5 members, 50+ identical tokens) (Orchard/Views/Components/UIComponents.swift)

## New (124)

- CLIParsers.swift.parseSystemProperties (cognitive 19) (Orchard/Services/CLIParsers.swift)
- Change coupling: ListContainers.swift ↔ ListImages.swift (Orchard/Views/Features/Containers/ListContainers.swift)
- ContainerDetailHeader.body (cognitive 27) (Orchard/Views/Features/Containers/ContainerDetailHeader.swift)
- ContainerDetailHeader.body (cyclomatic 22) (Orchard/Views/Features/Containers/ContainerDetailHeader.swift)
- ContainerRow.body (cognitive 22) (Orchard/Views/Components/UIComponents.swift)
- ContainerTable.body (cognitive 35) (Orchard/Views/Components/ContainerTable.swift)
- ContainerTable.body (cyclomatic 19) (Orchard/Views/Components/ContainerTable.swift)
- ContainersListView.contextMenu (cyclomatic 20) (Orchard/Views/Features/Containers/ListContainers.swift)
- ContentView.body (cyclomatic 16) (Orchard/Views/Layout/Content.swift)
- DetailContentView.body (cognitive 16) (Orchard/Views/Layout/DetailContent.swift)
- DetailContentView.body (cyclomatic 20) (Orchard/Views/Layout/DetailContent.swift)
- Duplicated block (10 lines × 2) (Orchard/Views/Components/ListItemRow.swift)
- Duplicated block (10 lines × 2) (Orchard/Views/Features/Machines/ListMachines.swift)
- Duplicated block (10 lines × 2) (Orchard/Views/States/NewerVersion.swift)
- Duplicated block (10 lines × 4) (Orchard/Views/Features/Clusters/ClusterDetail.swift)
- Duplicated block (10–12 lines × 2) (Orchard/Services/CLIParsers.swift)
- Duplicated block (11 lines × 2) (Orchard/Views/Features/Containers/ContainerDetailHeader.swift)
- Duplicated block (11 lines × 3) (Orchard/Views/Features/Clusters/ListClusters.swift)
- Duplicated block (12 lines × 2) (Orchard/Views/Components/ContainerTable.swift)
- Duplicated block (12 lines × 2) (Orchard/Views/Features/Containers/ContainerConfigForm.swift)
- …and 104 more

## Changes since last survey

- 44 commits — 43 feature/other, 1 fixes

## By area

- Orchard/Services — 11 commits
- (root) — 10 commits
- Orchard/Views — 8 commits
- site/assets — 5 commits
- scripts/capture-screenshots.sh — 3 commits
- Orchard.xcodeproj/project.pbxproj — 2 commits
- Orchard.xcodeproj/project.xcworkspace — 2 commits
- .github/scripts — 1 commit
- scripts/demo-env-up.sh — 1 commit
- site/ai.html — 1 commit

## Notable commits

- fix: Capture the compose screenshots, and fix what capturing them found
- change: Add a Compose tab
- change: Address review: IPv6 authorities, legacy key scope, silent endpoints
- change: Address the review on #106
- change: Adds compose details
- change: Build against Apple container 1.5.0 and adopt its cluster changes
- change: Bump version to 2.4.1
- change: Bump version to 2.4.2
- change: Bump version to 2.4.3
- change: Bump version to 2.5.0
- change: Capture the Builds tab, and open every tab on a chosen row
- change: Capture the light screenshot set
- change: Create a bind mount's host directory when it is not there
- change: Create the demo compose project the way proceeding in Orchard does
- change: Fill the demo environment's gaps, and wait for chart history
- change: Fill the empty tabs in the demo environment, where it can
- change: Fold a compose run into the table it was describing
- change: Follow compose to its current path, and to 0.3.0
- change: Follow the package's project labels to their own namespace
- change: Give the tables one style, and one that does not move
- …and 24 more
