James Rich
7875088f91
style: fix spotless and detekt violations
...
- Rename _metadataCache backing property (no public counterpart)
- Break long log lines to satisfy MaxLineLength
- Suppress intentional TooGenericExceptionCaught in error boundaries
- Suppress LongMethod on dispatchAction (when-block, not complex)
- Apply spotless formatting across all modules
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-06 19:01:43 -05:00
James Rich
813316110e
chore: KDoc cleanup, stale comments, and cruft removal
...
- Add KDoc to 3 JSON datasource interfaces and 7 repository implementations
- Remove IndoorAirQuality stub comments
- Remove commented-out WRITE_EXTERNAL_STORAGE permission from manifest
- Update foreground service comment to architecture note (Android 14+)
- Remove redundant inline comments in PacketDao.kt
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-06 17:52:06 -05:00
James Rich
e9cb439849
feat: rearchitect around SDK — decompose RadioController, simplify DataPacket, integrate SDK utilities
...
Android rearchitecture consuming meshtastic-sdk improvements:
A1 — ConnectionState Enrichment:
- Rich sealed interface with Connecting(attempt), Configuring(phase, progress), Reconnecting(attempt)
- SdkStateBridge maps SDK states preserving metadata
A2 — MessageHandle Integration:
- MessageDeliveryTracker: tracks delivery via SDK MessageHandle
- SdkRadioController captures handles on send
A3 — RadioController Decomposition:
- Split into 5 focused interfaces: MessageSender, DeviceAdmin, RemoteAdmin, DeviceControl, DataRequester
- RadioController extends all; SdkRadioController binds all via Koin
A4 — DataPacket Simplification:
- to/from fields changed from String? to Int (node numbers directly)
- Removed string ID parsing layer; added BROADCAST/LOCAL constants
- Updated ~40 consumer files across feature modules
A5 — SDK Utility Consumption:
- DeviceVersion, Capabilities, SfppHasher, LocationUtils delegate to SDK
- Removed duplicated protocol logic
A6 — Presence Events:
- SdkStateBridge handles NodeChange.WentOffline/CameOnline
- Updates node online status via repository
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-06 17:52:05 -05:00
James Rich
19eba729f7
chore(database): Room migration 39→40 — drop legacy node tables
...
- Remove my_node, nodes, metadata tables via AutoMigration with @DeleteTable
- Parameterize all 34 PacketDao queries to accept myNodeNum directly
- Delete NodeInfoDao, NodeEntity, MyNodeEntity, MetadataEntity
- Delete CommonNodeInfoDaoTest (dead)
- Rewrite PacketRepositoryImpl to inject NodeRepository for myNodeNum
- Rewrite CommonPacketDaoTest and CommonPacketRepositoryTest
- Update MigrationTest to remove nodeInfoDao usage
- Update core/database README to reflect current schema
SDK is now sole source of truth for all node data.
Room only stores messages, logs, and user annotations.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-06 17:52:05 -05:00
James Rich
74ba959b24
feat: DRY SDK integration — shared bridge, Desktop cutover, dead infra deletion
...
Major architectural changes:
1. SHARED KMP BRIDGE (core/data/radio/):
- RadioClientAccessor: Platform-agnostic interface for SDK RadioClient
- SdkRadioController: Shared RadioController impl (replaces per-platform copies)
- SdkStateBridge: Shared SDK→repository bridge (event dispatch, node sync)
- SdkPacketHandler: Thin SDK-backed PacketHandler for MQTT/XModem/History
2. DESKTOP SDK CUTOVER:
- DesktopRadioClientProvider: TCP + Serial transport support
- Removed DirectRadioControllerImpl (old desktop radio path)
- Desktop now shares the same SDK bridge code as Android
3. DEAD INFRASTRUCTURE DELETION (~5,100 LOC removed):
- PacketHandlerImpl, MeshDataHandlerImpl, MeshRouterImpl
- CommandSenderImpl, MeshActionHandlerImpl, MeshConfigFlowManagerImpl
- MeshConnectionManagerImpl, AdminPacketHandlerImpl
- ServiceBroadcasts (Android intent-based pub/sub)
- NodeRepositoryImpl (Room-backed, replaced by SdkNodeRepositoryImpl)
- 8 trivial UseCases (SetLocale, SetTheme, ToggleAnalytics, etc.)
- All associated test files for deleted impls
- Deleted interfaces: AdminPacketHandler, CommandSender, MeshActionHandler,
MeshConfigFlowManager, MeshConnectionManager, MeshRouter, ServiceBroadcasts
4. NEW FEATURES:
- NodeMetadataEntity + Room migration 38→39 (persistent favorites/notes)
- AppMetadataRepository (clean access to node metadata)
- MessagePersistenceHandler (focused rememberDataPacket for StoreForward)
All three targets compile clean: :app:compileGoogleDebugKotlin,
:desktop:compileKotlin, :core:data:jvmTest passes.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-06 17:52:05 -05:00
James Rich
2822290908
refactor(build): build-logic cleanup, CC safety, and detekt 2.0 upgrade ( #5311 )
2026-05-01 02:48:37 +00:00
James Rich
bbb7f8b23f
fix(crashlytics): resolve beta 2.7.14 crash issues ( #5245 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-25 19:23:21 +00:00
James Rich
228d872f9d
feat(connections): unified device list, ACCESS_LOCAL_NETWORK, transport filter chips ( #5219 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-22 19:34:22 +00:00
James Rich
9f3fe865e3
test: migrate MigrationTest to runTest and add missing repository fakes ( #5171 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-17 16:35:41 +00:00
James Rich
17e69c6d4c
chore: review-cleanup fleet (audit + fix + hardening) ( #5158 )
2026-04-17 00:02:59 +00:00
James Rich
878905aea3
perf(messaging): batch node + reply lookups in message loading ( #5149 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-15 15:48:26 +00:00
James Rich
72b981f73b
chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions ( #5133 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-04-15 02:17:50 +00:00
James Rich
9acdf5309f
refactor: modern APIs — Koin 4.2, CMP 1.11, Ktor resilience, Room @Upsert, injected dispatchers ( #5119 )
2026-04-14 11:41:01 +00:00
James Rich
9c8532f80d
refactor: leverage new dependency features from recent updates ( #5057 )
2026-04-10 22:51:08 +00:00
James Rich
02f6fd67b8
fix: clean up flaky, duplicated, and misplaced tests; remove redundant deps ( #5048 )
2026-04-10 19:46:45 +00:00
James Rich
14b381c1eb
fix: harden reliability, clean up KMP compliance, and improve code quality ( #5023 )
2026-04-09 18:21:46 +00:00
James Rich
60cc2f4237
fix: resolve bugs across connection, PKI, admin, packet flow, and stability subsystems ( #5011 )
2026-04-09 13:20:06 +00:00
James Rich
b3be9e2c38
fix: improve PKI message routing and resolve database migration racecondition ( #4996 )
2026-04-05 00:37:20 +00:00
James Rich
6af3ad6f0c
refactor(service): harden KMP service layer — database init, connection reliability, handler decomposition ( #4992 )
2026-04-04 18:07:44 +00:00
James Rich
51251ab16a
feat(ci): shard test suite and enable JUnit 5 parallel execution ( #4977 )
2026-04-03 13:08:49 +00:00
James Rich
464a12b9f7
chore: standardize resources and update documentation for Navigation 3 ( #4961 )
2026-03-31 21:25:37 +00:00
James Rich
a005231d94
Refactor map layer management and navigation infrastructure ( #4921 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-26 00:29:24 +00:00
James Rich
6516287c62
refactor: BLE transport and UI for Kotlin Multiplatform unification ( #4911 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-25 02:15:51 +00:00
James Rich
664ebf218e
refactor: null safety, update date/time libraries, and migrate tests ( #4900 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-23 23:17:50 +00:00
James Rich
d136b162a4
feat: Implement iOS support and unify Compose Multiplatform infrastructure ( #4876 )
2026-03-21 23:19:13 +00:00
James Rich
88d11aafec
fix: Update messaging feature with contact item keys and MQTT limits ( #4871 )
2026-03-21 14:25:23 +00:00
James Rich
c4087c2ab7
feat: Migrate to Room 3.0 and update related documentation and tracks ( #4865 )
2026-03-20 21:40:08 +00:00
James Rich
dcbbc0823b
feat: Integrate Mokkery and Turbine into KMP testing framework ( #4845 )
2026-03-18 18:33:37 -05:00
James Rich
cb95cace25
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4832 )
2026-03-17 16:51:09 -05:00
James Rich
7d63f8b824
feat: build logic ( #4829 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-17 20:35:39 +00:00
James Rich
eb3349fa11
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4773 )
2026-03-12 22:15:20 -05:00
James Rich
ac6bb5479b
feat: introduce Desktop target and expand Kotlin Multiplatform (KMP) architecture ( #4761 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-12 21:14:49 +00:00
James Rich
d076361c55
refactor: migrate core UI and features to KMP, adopt Navigation 3 ( #4750 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-10 17:29:47 +00:00
James Rich
875cf1cff2
refactor: migrate from Hilt to Koin and expand KMP common modules ( #4746 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-10 01:19:46 +00:00
James Rich
cffbd08806
refactor: migrate core modules to Kotlin Multiplatform and consolidat… ( #4735 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-06 22:06:50 +00:00
James Rich
b9b68d2779
refactor: migrate preferences to DataStore and decouple core:domain for KMP ( #4731 )
2026-03-05 20:37:35 -06:00
James Rich
b0258d0cf1
feat: Add "Mark all as read" and unread message count indicators ( #4720 )
2026-03-05 18:18:34 +00:00
James Rich
7067806444
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4705 )
2026-03-04 03:07:27 +00:00
James Rich
6a858acb4a
refactor: migrate :core:database to Room Kotlin Multiplatform ( #4702 )
2026-03-03 20:44:34 -06:00
James Rich
05e2c5d457
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4692 )
2026-03-03 15:19:40 +00:00
James Rich
2c49db8041
feat/decoupling ( #4685 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-03 13:15:28 +00:00
James Rich
8c6bd8ab7a
feat: settings rework part 2, domain and usecase abstraction, tests ( #4680 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-02 18:15:33 +00:00
James Rich
fdd07f893f
feat: settings rework ( #4678 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-03-02 14:51:05 +00:00
James Rich
b2b21e10e2
feat: upcoming support for tak and trafficmanagement configs, device hw ( #4671 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-27 17:44:19 +00:00
James Rich
d408964f07
refactor: KMP Migration, Messaging Modularization, and Handshake Robustness ( #4631 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-24 12:37:33 +00:00
James Rich
2676a51647
refactor(ui): compose resources, domain layer ( #4628 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-23 03:39:50 +00:00
James Rich
ac5a1714e0
Merge pull request #4602
...
* refactor(test): Introduce MeshTestApplication for robust testing
2026-02-20 11:25:11 -06:00
James Rich
6bfa5b5f70
refactor(ble): Centralize BLE logic into a core module ( #4550 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-20 12:41:52 +00:00
James Rich
c690ddc7ea
feat: Accurately display outgoing diagnostic packets ( #4569 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-16 22:09:21 +00:00
James Rich
c845f9222c
feat(db): enhance public key conflict handling ( #4555 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com >
2026-02-14 13:47:59 +00:00