# Changelog

> **This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.**

## Score

- CAI 53 → 54 (+0.7)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 100 → 100 (-0.2)
- Architecture 99 → 95 (-3.9)
- Maturity 58 → 59 (+0.4)
- Readiness 24 → 25 (+0.3)
- Security 92 → 100 (+7.5)
- Domain Modelling 100 → 100 (+0.0)

## Resolved (14)

- Boundary-crossing change coupling: CreateCategoryContentView.kt ↔ CategoriesViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/categories/component/sheet/CreateCategoryContentView.kt)
- Change coupling: CategoriesSheetView.kt ↔ CreateCategoryContentView.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/categories/component/CategoriesSheetView.kt)
- Change coupling: TransactionsScreen.kt ↔ TransactionsTopAppBarView.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/transactions/TransactionsScreen.kt)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10 lines × 2) (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/addTransaction/component/SelectCategorySheet.kt)
- Duplicated block (10 lines × 2) (core/common/src/androidMain/kotlin/com/kakapo/common/FileUtils.kt)
- Duplicated block (11 lines × 2) (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/reports/component/ButtonFilterView.kt)
- Duplicated block (17 lines × 2) (core/database/src/commonMain/kotlin/com/kakapo/database/model/TransactionEntity.kt)
- Medium: security finding (details withheld)
- No exposed public API
- Rotate the exposed credentials — git history can't be un-committed
- Test reliability not included
- single-maintainer — knowledge-concentration (bus factor) risk

## New (40)

- Boundary-crossing change coupling: CategoriesSheetView.kt ↔ CategoriesViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/categories/component/CategoriesSheetView.kt)
- Boundary-crossing change coupling: CategoryItemView.kt ↔ CategoriesViewContract.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/ui/component/item/category/CategoryItemView.kt)
- Boundary-crossing change coupling: CategoryItemView.kt ↔ CategoriesViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/ui/component/item/category/CategoryItemView.kt)
- Boundary-crossing change coupling: GoalItemView.kt ↔ CommonModule.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/ui/component/item/GoalItemView.kt)
- Boundary-crossing change coupling: MonthlyBudgetView.kt ↔ HomeViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/home/component/MonthlyBudgetView.kt)
- Boundary-crossing change coupling: PrimaryWalletView.kt ↔ HomeViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/home/component/PrimaryWalletView.kt)
- Boundary-crossing change coupling: SelectIconVIew.kt ↔ CategoriesViewContract.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/ui/component/sheet/SelectIconVIew.kt)
- Boundary-crossing change coupling: TransactionsTopAppBarView.kt ↔ TransactionsViewModel.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/transactions/component/TransactionsTopAppBarView.kt)
- Change coupling: CategoryLocalDatasourceImpl.kt ↔ CategoriesViewModel.kt (core/database/src/commonMain/kotlin/com/kakapo/database/datasource/impl/CategoryLocalDatasourceImpl.kt)
- Change coupling: CreateCategoryContentView.kt ↔ SelectIconVIew.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/presentation/feature/categories/component/sheet/CreateCategoryContentView.kt)
- Change coupling: CreateWalletSheetView.swift ↔ WalletsScreen.swift (iosApp/iosApp/designSystem/ui/sheet/CreateWalletSheetView.swift)
- Change coupling: MainActivity.kt ↔ OakaneNavigation.kt (composeApp/src/androidMain/kotlin/com/kakapo/oakane/MainActivity.kt)
- Change coupling: MonthlyBudgetRepositoryImpl.kt ↔ MonthlyBudgetViewModel.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/impl/MonthlyBudgetRepositoryImpl.kt)
- Change coupling: MySqlDriverFactory.kt ↔ CommonModule.kt (core/database/src/androidMain/kotlin/com/kakapo/database/MySqlDriverFactory.kt)
- Change coupling: TransactionRepository.kt ↔ TransactionLocalDatasource.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/base/TransactionRepository.kt)
- Change coupling: TransactionRepository.kt ↔ TransactionLocalDatasourceImpl.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/base/TransactionRepository.kt)
- Change coupling: TransactionRepositoryImpl.kt ↔ TransactionLocalDatasourceImpl.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/impl/TransactionRepositoryImpl.kt)
- Change coupling: WalletMapper.kt ↔ WalletRepositoryImpl.kt (core/data/src/commonMain/kotlin/com/kakapo/data/model/WalletMapper.kt)
- Change coupling: WalletRepository.kt ↔ WalletLocalDatasourceImpl.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/base/WalletRepository.kt)
- Change coupling: WalletRepositoryImpl.kt ↔ WalletLocalDatasourceImpl.kt (core/data/src/commonMain/kotlin/com/kakapo/data/repository/impl/WalletRepositoryImpl.kt)
- …and 20 more

## Architecture

- Containers 0 added · 0 removed · contexts 7 added · 0 removed · edges 11 added · 0 removed

## Added bounded contexts (7)

- common
- composeApp
- data
- database
- domain
- model
- preference

## Added dependency edges (11)

- composeApp → data
- composeApp → model (coupling)
- composeApp → shared
- data → database (coupling)
- data → model (coupling)
- data → preference (coupling)
- domain → data (coupling)
- domain → model (coupling)
- shared → data (coupling)
- shared → domain
- shared → model (coupling)
