James Rich
406a632a0e
feat(mqtt): adopt mqttastic 0.2.0 — sealed ConnectionState + Test Connection probe
...
Bumps `org.meshtastic:mqtt-client` to 0.2.0 and absorbs the breaking shape change
of the library's `ConnectionState` (enum → sealed class with disconnect/reconnect
context). Surfaces the new context to users and wires up the new probe API.
What changed
- `MqttConnectionState` (core/model): enum → sealed class with `Inactive`,
`Connecting`, `Connected`, `Reconnecting(attempt, lastError)`,
`Disconnected(reason)` (+ `Idle` companion). Stays decoupled from the MQTT
library — carries `String?` reasons rather than `MqttException`.
- `MqttProbeStatus` (core/model): new sealed type mirroring the library's
`ProbeResult` shape so feature modules don't need a direct mqtt-client dep.
- `MqttManager.probe(...)`: new suspend method. `MqttManagerImpl` calls
`MqttClient.probe()` and translates `ProbeResult` → `MqttProbeStatus`.
- `MqttManagerImpl.toAppState()`: rewritten as a sealed-class `when` that
propagates disconnect reason / reconnect attempt + last error through to UI.
- `MQTTRepositoryImpl`: extracts `resolveEndpoint(rawAddress, tlsEnabled)` as
a top-level `internal` function so it's directly testable; replaces the
(removed) `ConnectionState.DISCONNECTED` initial value with
`Disconnected.Idle`.
- `MQTTConfigItemList`: new "Test Connection" button beneath the address row
that fires `viewModel.probeMqttConnection(...)` and renders the structured
`MqttProbeStatus` outcome inline (Probing / Success(+server info) /
Rejected / DnsFailure / TcpFailure / TlsFailure / Timeout / Other).
`MqttStatusRow` now surfaces the disconnect reason and reconnect attempt
context when present.
- `RadioConfigViewModel`: adds `mqttProbeStatus` flow, `probeMqttConnection()`,
`clearMqttProbeStatus()`. Editing the address clears the last probe result.
- `MQTTRepositoryImplTest`: replaces the trivial inlined-parsing tests with
real coverage of every `resolveEndpoint` branch (bare host ws/wss,
explicit port, ws://, wss://, mqtt://, mqtts://).
Notes
- This branch will not compile until 0.2.0 lands on Maven Central (deliberate;
per the chosen "branch_now_wait" strategy).
- Strings added to core/resources for the new probe/status messages.
- `MqttConnectionState.INACTIVE` callsite in `RadioConfigViewModelTest`
updated to the new sealed-class form.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 21:14:38 -05:00
James Rich
b979663e24
refactor: consolidate metric formatting through MetricFormatter ( #5169 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 17:13:01 +00:00
James Rich
90f6e21a9c
fix(ui): stable LazyColumn keys, semantic roles, and content descriptions ( #5168 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:24:18 +00:00
James Rich
adfe3bfed1
refactor: use injected ioDispatcher and ApplicationCoroutineScope ( #5167 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-17 16:18:45 +00: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
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
fa63a4ac50
feat: add high-contrast theme with accessible message bubbles ( #5135 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 01:14:20 +00:00
James Rich
e46a8296cb
feat(core/ui): add safeLaunch, UiState, KMP permissions, and CMP lifecycle modernization ( #5118 )
2026-04-14 00:45:34 +00:00
James Rich
938a951737
refactor: leverage CMP 1.11 + Lifecycle 2.11 — v2 test API, Json privacy, dropUnlessResumed nav guards ( #5112 )
2026-04-13 20:02:31 +00:00
James Rich
a11dee42a7
test: migrate Compose UI tests from androidTest to commonTest ( #5091 )
2026-04-12 20:20:00 +00:00
James Rich
62264b10c6
refactor(model): remove ConnectionState helper methods and fix updateStatusNotification return type ( #5074 )
2026-04-11 23:41:34 +00:00
James Rich
3794c79dae
refactor: adopt M3 Expressive components from material3 1.11.0-alpha06 ( #5063 )
2026-04-11 02:10:03 +00:00
James Rich
ce32e640de
fix(icons): replace outline (FILL=0) pathData with filled (FILL=1) from upstream Material Symbols ( #5056 )
2026-04-10 22:15:43 +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
1390a3cd4f
ci: cache Robolectric SDK jars to prevent flaky SocketException failures ( #5045 )
2026-04-10 10:05:07 -05:00
James Rich
dba037466e
refactor(icons): migrate to self-hosted VectorDrawable XMLs via MeshtasticIcons ( #5030 )
2026-04-10 01:35:52 +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
ad08a6c7b7
feat(settings): add DNS support and fix UDP protocol toggle ( #5013 )
2026-04-09 14:23:31 +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
51251ab16a
feat(ci): shard test suite and enable JUnit 5 parallel execution ( #4977 )
2026-04-03 13:08:49 +00:00
James Rich
7e041c00e1
feat(wifi): introduce BLE-based WiFi provisioning for nymea-compatible devices ( #4968 )
Dependency Submission / dependency-submission (push) Waiting to run
Main CI (Verify & Build) / validate-and-build (push) Waiting to run
Main Push Changelog / Generate main push changelog (push) Waiting to run
2026-04-02 17:31:17 +00:00
James Rich
0167063497
feat(analytics): expand DataDog RUM integration and align with iOS parity ( #4970 )
2026-04-01 20:27:28 +00:00
James Rich
e249461e3c
feat(tak): introduce built-in Local TAK Server and mesh integration ( #4951 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-04-01 20:21:25 +00:00
James Rich
89547afe6b
Refactor and unify firmware update logic across platforms ( #4966 )
2026-04-01 12:14:26 +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
6a5115b897
Refactor navigation to use NodeDetail route and fix radio settings ( #4960 )
2026-03-31 14:03:02 +00:00
James Rich
c75c9b34d6
feat: implement XModem file transfers and enhance BLE connection robustness ( #4959 )
Dependency Submission / dependency-submission (push) Waiting to run
Main CI (Verify & Build) / validate-and-build (push) Waiting to run
Main Push Changelog / Generate main push changelog (push) Waiting to run
2026-03-31 03:49:31 +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 )
...
Dependency Submission / dependency-submission (push) Waiting to run
Main CI (Verify & Build) / validate-and-build (push) Waiting to run
Main Push Changelog / Generate main push changelog (push) Waiting to run
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-25 02:15:51 +00:00
James Rich
96060a0a4d
refactor: coroutine dispatchers and modernize testing infrastructure ( #4901 )
...
Dependency Submission / dependency-submission (push) Waiting to run
Main CI (Verify & Build) / validate-and-build (push) Waiting to run
Main Push Changelog / Generate main push changelog (push) Waiting to run
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-24 01:31:48 +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
57242d905c
refactor: Consolidate UI preference handling ( #4895 )
2026-03-23 19:36:02 +00:00
James Rich
7b327215f3
refactor: adaptive UI components for Navigation 3 ( #4891 )
2026-03-23 12:35:02 -05:00
James Rich
b3b38acc0b
feat: Migrate networking to Ktor and enhance multiplatform support ( #4890 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-23 16:48:10 +00:00
James Rich
27bcbcb7be
fix(settings): remove redundant regex option in DebugViewModel ( #4881 )
2026-03-22 07:41:52 -05:00
James Rich
c38bfc64de
Refactor command handling, enhance tests, and improve discovery logic ( #4878 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-22 05:42:27 +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
00697cc3c1
feat: KMP Debug Panel Migration and Update Documentation ( #4859 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-19 19:07:03 +00:00
James Rich
1e55e554be
feat: Add KMP URI handling, import, and QR code generation support ( #4856 )
2026-03-19 13:36:19 -05:00
James Rich
bc08093f6c
fix(map, settings): allow null IDs and implement request timeout ( #4851 )
2026-03-19 12:36:14 -05:00
James Rich
1b0dc75dfe
feat: Complete app module thinning and feature module extraction ( #4844 )
2026-03-19 00:21:18 +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
a10fe61d0f
fix: resolve crashes and debug filter issues in Metrics and MapView ( #4824 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-17 14:04:41 +00:00
James Rich
8c964a15ca
feat: Integrate notification management and preferences across platforms ( #4819 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-17 01:17:34 +00:00
James Rich
0b2e89c46f
refactor: Replace Nordic, use Kable backend for Desktop and Android with BLE support ( #4818 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-16 23:06:43 +00:00
James Rich
6e81ceec91
feat: Complete ViewModel extraction and update documentation ( #4817 )
2026-03-16 20:05:50 +00:00
James Rich
06f002a198
refactor(settings): improve destination node handling in RadioConfigViewModel ( #4790 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-14 02:55:46 +00:00