Commit Graph

617 Commits

Author SHA1 Message Date
James Rich
8b459881e0 feat: integrate meshtastic-sdk POC vertical slice
Wires core flows to the meshtastic-sdk (0.1.0-SNAPSHOT) while keeping the
legacy path alive. Goal: prove the SDK works with a real Android app and
surface API deficiencies.

Build:
- settings.gradle.kts: composite build inclusion for meshtastic-sdk
  (../meshtastic-sdk) with dependency substitution for all SDK artifacts
- libs.versions.toml: sdk = "0.1.0-SNAPSHOT", mavenCentral snapshots repo
- app/build.gradle.kts: sdk-core, sdk-proto, sdk-transport-ble,
  sdk-storage-sqldelight dependencies

Bootstrap:
- MeshUtilApplication: AndroidContextHolder.context set in onCreate()
  before startKoin so SqlDelightStorageProvider can locate app files
- RadioClientProvider (@Single, binds SdkClientLifecycle): mutex-serialized
  rebuildAndConnect(), strips 'x' prefix from BLE devAddr, holds
  RadioClient StateFlow
- RadioClientViewModel: exposes RadioClientProvider to UI layer

SDK ViewModels (POC quality, compile-verified):
- SdkNodeListViewModel: NodeChange.Snapshot/Added/Updated/Removed → UiNode
- SdkMessagingViewModel: sendText() via client.sendText(), incomingText
  via client.textMessages (Gap B — now fixed in SDK)
- SdkConfigViewModel: configBundle reads, setConfig/setOwner writes,
  loadChannels() via admin, Gap G workaround (local override map)
- SdkTelemetryViewModel: TelemetryApi.observe(NodeId), requestDeviceMetrics

Service lifecycle:
- SdkClientLifecycle interface in core:service (avoids reverse dep from
  service → app); RadioClientProvider implements it
- MeshService.onDestroy: calls sdkClientLifecycle.disconnect() before
  serviceJob.cancel()
- BlePeripheralFactory.kt in core:ble: public buildPeripheralForAddress()
  wrapper (Gap F workaround; proper fix needed in SDK transport-ble)

SDK gaps discovered and logged:
  Gap B - textMessages flow (FIXED in SDK feat/meshtastic-android-integration-gaps)
  Gap C - channels StateFlow (no reactive cache, only admin.listChannels())
  Gap F - BleTransport MAC string factory (requires live Peripheral today)
  Gap G - configBundle not refreshed after editSettings writes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-06 17:52:05 -05:00
renovate[bot]
0b75fd4140 chore(deps): update paging to v3.5.0 (#5375)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 14:20:43 -05:00
renovate[bot]
d28d684d05 chore(deps): update compose-multiplatform to v1.11.1 (#5371)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 14:18:59 -05:00
renovate[bot]
2f2a71587d chore(deps): update androidx.camera.viewfinder:viewfinder-compose to v1.6.1 (#5370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 14:06:21 -05:00
renovate[bot]
f547be6cbf chore(deps): update room to v3.0.0-alpha04 (#5368)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 12:10:34 -05:00
renovate[bot]
8434b57613 chore(deps): update androidx.camera:camera-view to v1.6.1 (#5367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 12:10:10 -05:00
renovate[bot]
f97900b558 chore(deps): update org.jetbrains.androidx.navigation3:navigation3-ui to v1.1.1 (#5364)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 12:07:52 -05:00
renovate[bot]
7db0f9a032 chore(deps): update jetbrains.lifecycle to v2.11.0-beta01 (#5359)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 11:55:26 -05:00
renovate[bot]
94e3901bd4 chore(deps): update compose-multiplatform to v1.11.0-rc01 (#5358)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 10:13:14 -05:00
renovate[bot]
5a303e148c chore(deps): update agp to v9.2.1 (#5361)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 10:12:58 -05:00
renovate[bot]
7021984281 chore(deps): update com.android.tools:common to v32.2.1 (#5362)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-06 10:12:49 -05:00
James Rich
78ff3f599c chore(ble): don't surface ui message when canceling scope (#5352) 2026-05-04 17:23:57 +00:00
renovate[bot]
fca1fd8248 chore(deps): update org.meshtastic:mqtt-client to v0.3.6 (#5350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 11:44:42 -05:00
renovate[bot]
08ff14235d chore(deps): update org.meshtastic:mqtt-client to v0.3.5 (#5344)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-04 00:23:57 +00:00
renovate[bot]
82562f8028 chore(deps): update org.meshtastic:mqtt-client to v0.3.4 (#5343)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 15:18:31 -05:00
renovate[bot]
94540aabb1 chore(deps): update vico to v3.2.0-next.3 (#5341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 15:17:55 -05:00
renovate[bot]
61af98e966 chore(deps): update org.meshtastic:mqtt-client to v0.3.3 (#5337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 13:22:08 -05:00
renovate[bot]
519b9633a1 chore(deps): update org.meshtastic:mqtt-client to v0.3.2 (#5331)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 10:16:07 -05:00
James Rich
c0b0b9edd4 fix(network): resolve empty MQTT address and enforce TLS on default server (#5333)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-02 14:59:44 +00:00
renovate[bot]
770fe3f626 chore(deps): update aboutlibraries to v14.1.0 (#5322)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-02 02:02:39 +00:00
James Rich
e198f52de5 refactor(coroutines): migrate to kotlinx-coroutines 1.11.0-rc02 (#5312)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-01 03:11:22 +00: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
renovate[bot]
54339c6fa1 chore(deps): update org.meshtastic:mqtt-client to v0.3.0 (#5272)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-28 11:03:27 -05:00
renovate[bot]
ef33f6a76a chore(deps): update gradle to v9.5.0 (#5270)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Rich <james.a.rich@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-28 08:12:29 -05:00
James Rich
b60f29d772 feat(desktop): native OS notifications via libnotify/osascript/PowerShell (#5253)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-27 15:53:53 -05:00
renovate[bot]
79331bcc77 chore(deps): update datadog.gradle to v1.26.0 (#5248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 09:06:39 -05:00
renovate[bot]
b1c7902ec1 chore(deps): update vico to v3.2.0-next.2 (#5243)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-25 16:14:42 +00:00
renovate[bot]
fb1092e3c7 chore(deps): update io.nlopez.compose.rules:detekt to v0.5.8 (#5242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-25 16:14:36 +00:00
renovate[bot]
e6f6369f49 chore(deps): update dd.sdk.android to v3.9.1 (#5237)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-23 17:26:17 -05:00
James Rich
2e6730d1e3 fix(desktop): unbreak release crash via correct ProGuard rules (#5236)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-23 21:33:16 +00:00
James Rich
2c001c47d1 fix(desktop): unbreak release builds (CMP beta03 + pwsh -P quoting) (#5230)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-23 06:22:31 -05:00
renovate[bot]
91a61a36ca chore(deps): update kotlin to v2.3.21 (#5228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-23 05:10:10 -05:00
renovate[bot]
9dae0f5c8b chore(deps): update devtools.ksp to v2.3.7 (#5223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 18:48:12 -05:00
renovate[bot]
0be5334cd9 chore(deps): update koin.plugin to v1.0.0-rc2 (#5213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 10:32:35 -05:00
renovate[bot]
9b20d980ef chore(deps): update ktor to v3.4.3 (#5214)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-22 10:32:20 -05:00
renovate[bot]
e8db1495dc chore(deps): update agp to v9.2.0 (#5201)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 14:44:16 +00:00
renovate[bot]
dfcfac18b1 chore(deps): update com.android.tools:common to v32.2.0 (#5202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 14:38:37 +00:00
renovate[bot]
02cb12cac4 chore(deps): update org.jetbrains.androidx.navigation3:navigation3-ui to v1.1.0 (#5199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 13:01:30 +00:00
renovate[bot]
9dd57725f2 chore(deps): update vico to v3.2.0-next.1 (#5191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-19 12:31:11 -05:00
renovate[bot]
68a414b75b chore(deps): update compose-multiplatform to v1.11.0-rc01 (#5184)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 22:00:34 -05:00
James Rich
4257e7b7e4 chore(deps): split androidx-compose version ref from CMP (#5183)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 21:41:36 -05:00
James Rich
14e86b90f1 feat(mqtt): adopt mqttastic-client-kmp 0.2.0 — disconnect reasons + Test Connection (#5181)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 21:33:55 -05:00
James Rich
61d7f6fef3 fix(deps): pin androidx-compose runtime-tracing/ui-test to CMP version (#5179)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 15:46:59 -05:00
James Rich
a97f704300 feat(mqtt): migrate to MQTTastic-Client-KMP (#5165)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 15:19:08 +00:00
James Rich
17e69c6d4c chore: review-cleanup fleet (audit + fix + hardening) (#5158) 2026-04-17 00:02:59 +00:00
renovate[bot]
3a2f2fc56b chore(deps): update kotlin to v2.3.21-rc2 (#5155)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 16:33:25 +00:00
renovate[bot]
50896d455b chore(deps): update dd.sdk.android to v3.9.0 (#5156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-16 16:33:13 +00:00
James Rich
a580cd0467 chore(analytics): disable Datadog Compose action tracking (#5153)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 23:09:21 +00:00
renovate[bot]
f72b91328d chore(deps): update androidx.compose to v1.11.0-rc01 (#5144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-15 07:47:53 -05:00
James Rich
d0057752f6 fix(ci): remove Renovate groupings and decouple AndroidX Compose version ref (#5143)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 07:23:20 -05:00