# Changelog

## Score

- CAI 47 → 37 (-10.2)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 72 → 55 (-17.7)
- Architecture 94 → 87 (-7.1)
- Maturity 77 → 73 (-3.4)
- Readiness 23 → 10 (-12.7)
- Security 59 → 55 (-3.6)

## Resolved (77)

- Build action pinned to a mutable branch
- Change coupling: AudioPlayer.tsx ↔ HistoryTable.tsx (app/src/components/AudioPlayer/AudioPlayer.tsx)
- Change coupling: FloatingGenerateBox.tsx ↔ StoryContent.tsx (app/src/components/Generation/FloatingGenerateBox.tsx)
- Change coupling: HistoryTable.tsx ↔ Sidebar.tsx (app/src/components/History/HistoryTable.tsx)
- Change coupling: HistoryTable.tsx ↔ VoicesTab.tsx (app/src/components/History/HistoryTable.tsx)
- Change coupling: chatterbox_backend.py ↔ chatterbox_turbo_backend.py (backend/backends/chatterbox_backend.py)
- Change coupling: client.ts ↔ main.py (app/src/lib/api/client.ts)
- Change coupling: main.py ↔ models.py (backend/main.py)
- Change coupling: main.py ↔ profiles.py (backend/main.py)
- Change coupling: mlx_backend.py ↔ pytorch_backend.py (backend/backends/mlx_backend.py)
- Change coupling: types.ts ↔ main.py (app/src/lib/api/types.ts)
- 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) (backend/backends/chatterbox_backend.py)
- Duplicated block (10 lines × 2) (backend/database/migrations.py)
- Duplicated block (11 lines × 2) (backend/routes/history.py)
- Duplicated block (12 lines × 2) (backend/services/channels.py)
- Duplicated block (13 lines × 2) (backend/services/cuda.py)
- Duplicated block (13 lines × 2) (backend/utils/hf_progress.py)
- Duplicated block (14 lines × 2) (backend/routes/generations.py)
- …and 57 more

## New (61)

- Boundary-crossing change coupling: FloatingGenerateBox.tsx ↔ useGenerationForm.ts (app/src/components/Generation/FloatingGenerateBox.tsx)
- Boundary-crossing change coupling: HistoryTable.tsx ↔ useGenerationProgress.ts (app/src/components/History/HistoryTable.tsx)
- Boundary-crossing change coupling: ModelManagement.tsx ↔ languages.ts (app/src/components/ServerSettings/ModelManagement.tsx)
- Boundary-crossing change coupling: ModelManagement.tsx ↔ useModelDownloadToast.tsx (app/src/components/ServerSettings/ModelManagement.tsx)
- Boundary-crossing change coupling: ModelsTab.tsx ↔ lifecycle.ts (app/src/components/ModelsTab/ModelsTab.tsx)
- Boundary-crossing change coupling: ModelsTab.tsx ↔ useGenerationForm.ts (app/src/components/ModelsTab/ModelsTab.tsx)
- Boundary-crossing change coupling: ServerTab.tsx ↔ lifecycle.ts (app/src/components/ServerTab/ServerTab.tsx)
- Boundary-crossing change coupling: ServerTab.tsx ↔ types.ts (app/src/components/ServerTab/ServerTab.tsx)
- Boundary-crossing change coupling: StoriesTab.tsx ↔ useGenerationForm.ts (app/src/components/StoriesTab/StoriesTab.tsx)
- Boundary-crossing change coupling: StoryTrackEditor.tsx ↔ useStoryPlayback.ts (app/src/components/StoriesTab/StoryTrackEditor.tsx)
- Coverage not measured — test suite did not build
- Critical CVE: [GHSA redacted] (backend/requirements.txt)
- Critical CVE: [GHSA redacted] (backend/requirements.txt)
- Dimension evaluation failed
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (backend/requirements.txt)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- High CVE: [GHSA redacted] (bun.lock)
- …and 41 more
