# Changelog

## Score

- CAI 56 → 58 (+1.5)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

## Lenses

- Code Health 78 → 78 (+0.2)
- Architecture 61 → 69 (+7.7)
- Maturity 65 → 65 (+0.0)
- Readiness 51 → 51 (-0.3)
- Security 64 → 72 (+7.7)
- Domain Modelling 100 → 100 (+0.0)
- Accessibility 54 → 54 (+0.3)
- Performance 100 (new)

## Resolved (37)

- ClassTooLong: StreamingTranscriber (OpenOats/Sources/OpenOats/Transcription/StreamingTranscriber.swift)
- Dependency hygiene PARTLY measured — npm pinning read, dependency currency not (no pnpm-resolved versions to grade)
- Documentation: no installation or build instructions (README.md)
- Documentation: no installation or build instructions (docs/superpowers/plans/2026-03-26-realtime-suggestions.md)
- Documentation: no usage examples (README.md)
- Documentation: no usage examples (docs/superpowers/plans/2026-03-26-realtime-suggestions.md)
- Duplicated block (20 lines × 2) (OpenOats/Sources/OpenOats/Intelligence/OpenRouterClient.swift)
- Edited copy of a member (48 corresponding lines) (OpenOats/Sources/OpenOats/App/LiveSessionController.swift)
- Hotspot: OpenOats/Sources/OpenOats/App/LiveSessionController.swift (OpenOats/Sources/OpenOats/App/LiveSessionController.swift)
- Hotspot: OpenOats/Sources/OpenOats/App/MeetingDetectionController.swift (OpenOats/Sources/OpenOats/App/MeetingDetectionController.swift)
- Hotspot: OpenOats/Sources/OpenOats/App/NotesController.swift (OpenOats/Sources/OpenOats/App/NotesController.swift)
- Hotspot: OpenOats/Sources/OpenOats/Intelligence/BatchTextCleaner.swift (OpenOats/Sources/OpenOats/Intelligence/BatchTextCleaner.swift)
- Hotspot: OpenOats/Sources/OpenOats/Intelligence/LiveTranscriptCleaner.swift (OpenOats/Sources/OpenOats/Intelligence/LiveTranscriptCleaner.swift)
- Hotspot: OpenOats/Sources/OpenOats/Intelligence/SidecastEngine.swift (OpenOats/Sources/OpenOats/Intelligence/SidecastEngine.swift)
- Hotspot: OpenOats/Sources/OpenOats/Intelligence/SuggestionEngine.swift (OpenOats/Sources/OpenOats/Intelligence/SuggestionEngine.swift)
- Hotspot: OpenOats/Sources/OpenOats/Models/SidecastPreset.swift (OpenOats/Sources/OpenOats/Models/SidecastPreset.swift)
- Hotspot: OpenOats/Sources/OpenOats/Storage/SessionRepository.swift (OpenOats/Sources/OpenOats/Storage/SessionRepository.swift)
- Hotspot: OpenOats/Sources/OpenOats/Transcription/BatchAudioTranscriber.swift (OpenOats/Sources/OpenOats/Transcription/BatchAudioTranscriber.swift)
- Hotspot: OpenOats/Sources/OpenOats/Transcription/TranscriptionEngine.swift (OpenOats/Sources/OpenOats/Transcription/TranscriptionEngine.swift)
- Hotspot: OpenOats/Sources/OpenOats/Views/MeetingDetailPane.swift (OpenOats/Sources/OpenOats/Views/MeetingDetailPane.swift)
- …and 17 more

## New (63)

- ContentView.contentWithLifecycle (cognitive 25) (OpenOats/Sources/OpenOats/Views/ContentView.swift)
- ContentView.contentWithLifecycle (cyclomatic 20) (OpenOats/Sources/OpenOats/Views/ContentView.swift)
- ContentView.rootContent (cognitive 31) (OpenOats/Sources/OpenOats/Views/ContentView.swift)
- ContentView.rootContent (cyclomatic 18) (OpenOats/Sources/OpenOats/Views/ContentView.swift)
- ControlBar.body (cognitive 52) (OpenOats/Sources/OpenOats/Views/ControlBar.swift)
- ControlBar.body (cyclomatic 31) (OpenOats/Sources/OpenOats/Views/ControlBar.swift)
- Coverage not measured — Swift suite
- Duplicated block (10 lines × 2) (OpenOats/Sources/OpenOats/Wizard/ProviderSetupStepView.swift)
- Duplicated block (10 lines × 4) (OpenOats/Sources/OpenOats/Wizard/ConfirmationStepView.swift)
- Duplicated block (11 lines × 2) (OpenOats/Sources/OpenOats/Views/HomeTimelineWorkspaceView.swift)
- Duplicated block (11 lines × 2) (OpenOats/Sources/OpenOats/Wizard/ConfirmationStepView.swift)
- Duplicated block (13 lines × 2) (OpenOats/Sources/OpenOats/Intelligence/OpenRouterClient.swift)
- Duplicated block (15 lines × 2) (OpenOats/Sources/OpenOats/Views/HomeTimelineWorkspaceView.swift)
- Duplicated block (16 lines × 3) (OpenOats/Sources/OpenOats/Wizard/ConfirmationStepView.swift)
- Duplicated block (17 lines × 2) (OpenOats/Sources/OpenOats/Intelligence/SidecastEngine.swift)
- Duplicated block (18 lines × 2) (OpenOats/Sources/OpenOats/Audio/SystemAudioCapture.swift)
- Duplicated block (20 lines × 2) (OpenOats/Sources/OpenOats/Wizard/LanguagePrivacyStepView.swift)
- Duplicated block (23 lines × 2) (OpenOats/Sources/OpenOats/Wizard/LanguagePrivacyStepView.swift)
- Duplicated block (5–9 lines × 3) (OpenOats/Sources/OpenOats/Views/SidecastSettingsTab.swift)
- Duplicated block (7 lines × 2) (OpenOats/Sources/OpenOats/Settings/SettingsStore.swift)
- …and 43 more

## Changes since last survey

- 4 commits — 3 feature/other, 1 fixes

## By area

- OpenOats/Sources — 2 commits
- (root) — 1 commit
- Casks/openoats.rb — 1 commit

## Notable commits

- fix: Support macOS Sonoma 14.2+ and fix system audio capture (#721)
- change: Accept full chat-completions URLs for OpenAI-compatible providers (#724)
- change: Let local model downloads use a custom Hugging Face Hub endpoint (#723)
- change: Remove ApiSmart sponsor from README
