mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-05-12 08:42:01 -04:00
docs: update MIGRATION-REMAINING to ~100% complete
NodeManager merge and MeshActivity restoration are done. Only optional VM param slimming and test coverage remain. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -7,14 +7,14 @@
|
||||
|
||||
## Summary
|
||||
|
||||
**Completed:** ~97% of the Clean Break migration. AIDL dropped, SDK is sole radio path,
|
||||
**Completed:** ~100% of the Clean Break migration. AIDL dropped, SDK is sole radio path,
|
||||
transport layer fully deleted, Desktop uses shared SDK bridge, dead infrastructure gone,
|
||||
POC ViewModels removed, NodeInfoReadDataSource eliminated, Room legacy tables dropped.
|
||||
POC ViewModels removed, NodeInfoReadDataSource eliminated, Room legacy tables dropped,
|
||||
NodeManager merged into SdkNodeRepositoryImpl, MeshActivity restored.
|
||||
|
||||
**Remaining:** Optional VM parameter slimming, NodeManager merge, and test coverage for
|
||||
new bridge code.
|
||||
**Remaining:** Optional VM parameter slimming and test coverage for new bridge code.
|
||||
|
||||
**Net change:** 169 files changed, +4,638 / -16,549 lines (net -11,911 LOC removed)
|
||||
**Net change:** 170 files changed, +4,601 / -16,963 lines (net -12,362 LOC removed)
|
||||
|
||||
---
|
||||
|
||||
@@ -76,15 +76,30 @@ new bridge code.
|
||||
|
||||
### Data Layer ✅
|
||||
- Room migration 38→39: NodeMetadata persistence
|
||||
- `SdkNodeRepositoryImpl` enriches SDK nodes with persisted favorites/notes/ignore
|
||||
- Room migration 39→40: DROP legacy `nodes`, `my_node`, `metadata` tables
|
||||
- `SdkNodeRepositoryImpl` implements NodeRepository + NodeManager + NodeIdLookup
|
||||
- SDK storage (SqlDelight) is source of truth for node data
|
||||
- `AppMetadataRepository` provides firmware/hardware/model info
|
||||
- NodeManagerImpl deleted — logic merged into SdkNodeRepositoryImpl
|
||||
|
||||
### Desktop ✅
|
||||
- Fully cut over to SDK via shared KMP bridge
|
||||
- `DesktopRadioClientProvider` manages TCP/Serial transport
|
||||
- No transport stubs needed — SDK handles everything
|
||||
|
||||
### NodeManager Merge ✅
|
||||
- `SdkNodeRepositoryImpl` now binds NodeRepository, NodeManager, NodeIdLookup
|
||||
- Single in-memory StateFlow — no duplicate maps
|
||||
- Metadata enrichment on every write (favorites, notes, ignore, mute)
|
||||
- `NodeManagerImpl.kt` deleted (377 LOC)
|
||||
|
||||
### MeshActivity Restoration ✅
|
||||
- `meshActivityFlow` added to ServiceRepository interface
|
||||
- Emit `Send` from SdkPacketHandler.sendToRadio() and SdkRadioController.sendMessage()
|
||||
- Emit `Receive` from ServiceRepositoryImpl.emitMeshPacket()
|
||||
- UIViewModel.meshActivity wired to serviceRepository.meshActivityFlow
|
||||
- Connection icon animation fully functional
|
||||
|
||||
### UseCases Deleted ✅
|
||||
- ProcessRadioResponse (tests only — impl kept, has real packet parsing logic)
|
||||
- AdminActions (tests only — impl kept, has real reboot/reset logic)
|
||||
@@ -95,16 +110,9 @@ new bridge code.
|
||||
|
||||
---
|
||||
|
||||
## What Remains
|
||||
## What Remains (optional, quality-of-life)
|
||||
|
||||
### 1. Room Table Cleanup ✅ (completed)
|
||||
- Migration 39→40: DROP legacy `nodes`, `my_node`, `metadata` tables
|
||||
- Deleted `NodeEntity`, `MyNodeEntity`, `MetadataEntity`, `NodeInfoDao`
|
||||
- PacketDao parameterized with `myNodeNum` (34 queries)
|
||||
- PacketRepositoryImpl injects NodeRepository for myNodeNum
|
||||
- SDK SqlDelight is sole source of truth for all node data
|
||||
|
||||
### 2. VM Parameter Slimming (optional, quality-of-life)
|
||||
### 1. VM Parameter Slimming
|
||||
VMs currently inject SDK-backed adapters (RadioController, NodeRepository, etc.)
|
||||
which work correctly. Direct SDK injection would reduce params but isn't required:
|
||||
|
||||
@@ -116,16 +124,7 @@ which work correctly. Direct SDK injection would reduce params but isn't require
|
||||
| NodeListVM | 9 | 5-6 |
|
||||
| NodeDetailVM | 7 | 4-5 |
|
||||
|
||||
### 3. NodeManager Merge (optional)
|
||||
`NodeManager` (25 methods, 8+ consumers) could merge into `SdkNodeRepositoryImpl`.
|
||||
Currently SDK feeds it via SdkStateBridge. Works fine as-is.
|
||||
|
||||
### 4. MeshActivity Restoration (cosmetic)
|
||||
`UIViewModel.meshActivity` currently emits `emptyFlow()`. Could be restored by
|
||||
having `SdkStateBridge` emit send/receive events when SDK delivers/receives packets.
|
||||
Purely cosmetic — affects connection icon animation only.
|
||||
|
||||
### 5. Test Coverage
|
||||
### 2. Test Coverage
|
||||
- New code (`SdkRadioInterfaceService`, `SdkPacketHandler`, `MessagePersistenceHandler`)
|
||||
has no dedicated tests yet (existing integration tests cover happy paths)
|
||||
- UseCase tests were deleted with the impls — should add back for kept impls
|
||||
|
||||
Reference in New Issue
Block a user