Skip to content

docs: summarize KMP migration progress and architectural decisions#4770

Merged
jamesarich merged 1 commit intomainfrom
chore/koin
Mar 13, 2026
Merged

docs: summarize KMP migration progress and architectural decisions#4770
jamesarich merged 1 commit intomainfrom
chore/koin

Conversation

@jamesarich
Copy link
Copy Markdown
Collaborator

This commit provides a comprehensive update to the project's technical documentation, capturing the successful completion of the "Android-first" Kotlin Multiplatform (KMP) structural migration. It establishes a new single source of truth for migration status, architectural decisions, and build-logic conventions.

Key documentation changes include:

  • Migration Status & Roadmap:

    • Created docs/kmp-status.md and docs/roadmap.md to track the 98% completed structural migration and outline future priorities (iOS, serial transport, MapLibre).
    • Archived legacy migration notes into docs/archive/ to maintain a clean record of completed phases.
    • Formally documented the "Nordic Hybrid" BLE abstraction and the transition to Koin 4.x as completed architectural pillars.
  • Architecture & Decisions:

    • Introduced docs/decisions/ to house active ADRs (Architecture Decision Records).
    • Added navigation3-parity-2026-03.md defining the shared route model and parity testing strategy between Android and Desktop.
    • Documented the global disabling of Koin A1 compile-safety to support Clean Architecture dependency inversion across modules.
    • Established core:testing as the centralized repository for shared test fakes and fixtures.
  • Build Logic & Optimization:

    • Created a comprehensive docs/BUILD_LOGIC_INDEX.md and developer guides for convention plugins.
    • Centralized kotlin("test") dependencies in KmpLibraryConventionPlugin to eliminate boilerplate across feature modules.
    • Standardized the jvmAndroidMain hierarchy via the new meshtastic.kmp.jvm.android plugin, removing manual source-set wiring and hierarchy warnings.
  • Maintenance & Guidelines:

    • Updated AGENTS.md and playbooks to reflect the shift toward shared ViewModels in commonMain and the elimination of 11 redundant Android ViewModel wrappers.
    • Updated Koin configuration and verification tests to align with Koin 0.4.0 compiler plugin requirements.

Specific changes:

  • Created 10+ new documentation files and archived 8 legacy files.
  • Refined KoinConventionPlugin to configure koinCompiler settings.
  • Migrated 4 core modules and 7 feature modules to use optimized build conventions.
  • Synchronized AGENTS.md with 2026 KMP industry standards for DI and testing.

This commit provides a comprehensive update to the project's technical documentation, capturing the successful completion of the "Android-first" Kotlin Multiplatform (KMP) structural migration. It establishes a new single source of truth for migration status, architectural decisions, and build-logic conventions.

Key documentation changes include:

- **Migration Status & Roadmap:**
  - Created `docs/kmp-status.md` and `docs/roadmap.md` to track the 98% completed structural migration and outline future priorities (iOS, serial transport, MapLibre).
  - Archived legacy migration notes into `docs/archive/` to maintain a clean record of completed phases.
  - Formally documented the "Nordic Hybrid" BLE abstraction and the transition to Koin 4.x as completed architectural pillars.

- **Architecture & Decisions:**
  - Introduced `docs/decisions/` to house active ADRs (Architecture Decision Records).
  - Added `navigation3-parity-2026-03.md` defining the shared route model and parity testing strategy between Android and Desktop.
  - Documented the global disabling of Koin A1 compile-safety to support Clean Architecture dependency inversion across modules.
  - Established `core:testing` as the centralized repository for shared test fakes and fixtures.

- **Build Logic & Optimization:**
  - Created a comprehensive `docs/BUILD_LOGIC_INDEX.md` and developer guides for convention plugins.
  - Centralized `kotlin("test")` dependencies in `KmpLibraryConventionPlugin` to eliminate boilerplate across feature modules.
  - Standardized the `jvmAndroidMain` hierarchy via the new `meshtastic.kmp.jvm.android` plugin, removing manual source-set wiring and hierarchy warnings.

- **Maintenance & Guidelines:**
  - Updated `AGENTS.md` and playbooks to reflect the shift toward shared ViewModels in `commonMain` and the elimination of 11 redundant Android ViewModel wrappers.
  - Updated Koin configuration and verification tests to align with Koin 0.4.0 compiler plugin requirements.

Specific changes:
- Created 10+ new documentation files and archived 8 legacy files.
- Refined `KoinConventionPlugin` to configure `koinCompiler` settings.
- Migrated 4 core modules and 7 feature modules to use optimized build conventions.
- Synchronized `AGENTS.md` with 2026 KMP industry standards for DI and testing.

Signed-off-by: James Rich <[email protected]>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 12.18%. Comparing base (bdfd7b9) to head (46cbb9b).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4770   +/-   ##
=======================================
  Coverage   12.18%   12.18%           
=======================================
  Files         530      530           
  Lines       17714    17714           
  Branches     2646     2646           
=======================================
  Hits         2158     2158           
  Misses      15243    15243           
  Partials      313      313           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@jamesarich jamesarich added this pull request to the merge queue Mar 13, 2026
Merged via the queue into main with commit 84bb6d2 Mar 13, 2026
6 checks passed
@jamesarich jamesarich deleted the chore/koin branch March 13, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant