docs: summarize KMP migration progress and architectural decisions#4770
Merged
jamesarich merged 1 commit intomainfrom Mar 13, 2026
Merged
docs: summarize KMP migration progress and architectural decisions#4770jamesarich merged 1 commit intomainfrom
jamesarich merged 1 commit intomainfrom
Conversation
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 Report✅ All modified and coverable lines are covered by tests. 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
docs/kmp-status.mdanddocs/roadmap.mdto track the 98% completed structural migration and outline future priorities (iOS, serial transport, MapLibre).docs/archive/to maintain a clean record of completed phases.Architecture & Decisions:
docs/decisions/to house active ADRs (Architecture Decision Records).navigation3-parity-2026-03.mddefining the shared route model and parity testing strategy between Android and Desktop.core:testingas the centralized repository for shared test fakes and fixtures.Build Logic & Optimization:
docs/BUILD_LOGIC_INDEX.mdand developer guides for convention plugins.kotlin("test")dependencies inKmpLibraryConventionPluginto eliminate boilerplate across feature modules.jvmAndroidMainhierarchy via the newmeshtastic.kmp.jvm.androidplugin, removing manual source-set wiring and hierarchy warnings.Maintenance & Guidelines:
AGENTS.mdand playbooks to reflect the shift toward shared ViewModels incommonMainand the elimination of 11 redundant Android ViewModel wrappers.Specific changes:
KoinConventionPluginto configurekoinCompilersettings.AGENTS.mdwith 2026 KMP industry standards for DI and testing.