James Rich
|
64464196b0
|
feat: SFPP delegation to SDK, NeighborInfo SDK model, congestion + S&F badges
- SdkStateBridge: handle SfppLinkProvided/SfppCanonAnnounced events from SDK
- StoreForwardPacketHandlerImpl: SFPP parsing removed (SDK-owned)
- NeighborInfoHandlerImpl: delegate formatting to SDK NeighborInfo.fromProto()
- NodeStatusIcons: CongestionBadge (yellow/orange/red for MEDIUM/HIGH/CRITICAL)
- NodeStatusIcons: StoreForwardBadge (blue cloud icon for S&F servers)
- NodeListViewModel: expose congestionLevel + storeForwardServers flows
- Tests updated for SFPP bridge coverage
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-06 17:52:05 -05:00 |
|
James Rich
|
27b2c19e69
|
refactor: narrow ViewModel injections, add ConnectionAware, delete dead code, integration tests
ViewModel Narrowing:
- V1: Created ConnectionAware interface; MessageSender, DeviceAdmin, DeviceControl extend it
- V2: Narrowed 6 ViewModels/actions to focused sub-interfaces (DeviceAdmin, MessageSender, DataRequester, DeviceControl)
Cleanup:
- C1: Deleted dead MeshDataMapper and its DI registration
Integration Tests:
- T2: SdkStateBridgeTest verifying WentOffline/CameOnline presence handling
- Verified Koin resolution, full test suite passes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-06 17:52:05 -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
|
3cdad0da28
|
refactor: delete transport layer and dead intermediaries, slim RadioInterfaceService
- Delete entire transport layer: BleRadioTransport, TcpRadioTransport,
SerialRadioTransport, StreamTransport, HeartbeatSender, StreamFrameCodec,
AndroidRadioTransportFactory, BaseRadioTransportFactory, MockRadioTransport,
NopRadioTransport, BleReconnectPolicy, TcpTransport, SerialTransport
- Delete MeshConfigHandler interface + impl (replaced by RadioConfigRepository)
- Delete RadioTransportCallback, RadioTransport, RadioTransportFactory interfaces
- Delete FakeRadioTransport, RadioTransportTest, MeshConfigHandlerImplTest
- Delete UseCase tests (impls restored, tests for deleted patterns removed)
- Slim RadioInterfaceService interface: remove transport internals, keep only
device-address/connection surface needed by Scanner and connections UIs
- Create SdkRadioInterfaceService: thin SDK-backed impl delegating to
RadioPrefs + RadioClientAccessor
- Update NoopRadioInterfaceService to match slimmed interface
- Update JvmUsbScanner to use SDK's JvmSerialPorts.list() instead of
deleted SerialTransport.getAvailablePorts()
- Remove DesktopRadioTransportFactory from desktop DI module
- Fix NodeListViewModel: replace RadioInterfaceService with RadioPrefs
- Fix MeshServiceOrchestratorTest: align with updated constructor params
- Fix UIViewModel: use emptyFlow() for meshActivity (SDK doesn't emit
raw transport-level activity events)
All targets compile clean, all JVM + Android unit tests pass.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-06 17:52:05 -05:00 |
|
James Rich
|
82926fd734
|
feat: event firmware easter egg with ambient branding (#5354)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-05-04 19:37:47 +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 |
|
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
|
f14ae2643c
|
feat(node): smoother remote-admin UX with per-node session tracking (#5217)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-22 14:21:04 -05:00 |
|
James Rich
|
38c2e9fb33
|
fix(compass): stop coarse network fixes from clobbering GPS fixes (#5200)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-21 14:06:19 +00:00 |
|
Copilot
|
7492a33cf8
|
Fix node-details remove action to preserve confirmation flow (#5192)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jamesarich <2199651+jamesarich@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-20 15:59:20 +00: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
|
df3b5365f9
|
fix(node): don't recreate Vico CartesianChartModelProducer on channel switch (#5160)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-17 02:40:17 +00:00 |
|
James Rich
|
a2763bdfeb
|
fix(charts): apply Vico 3.1.0 best-practice audit fixes (#5138)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-15 02:20:33 +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
|
bf0deef708
|
fix(icons): audit and correct icon migration regressions from #5030 #5040 #5056 (#5136)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-15 01:14:31 +00:00 |
|
James Rich
|
f48fc61729
|
feat(environment): add 1-Wire multi-thermometer (DS18B20) display support (#5130)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-04-15 00:03:24 +00:00 |
|
James Rich
|
3c7e1266f8
|
fix: truncate traceroute chart x-values to whole seconds to prevent Vico crash (#5122)
|
2026-04-14 11:01:03 +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
|
76386e419c
|
refactor: migrate remaining raw stateIn(WhileSubscribed) to stateInWhileSubscribed extension (#5113)
|
2026-04-13 20:02:06 +00:00 |
|
James Rich
|
39620d063b
|
fix(nav): restore broken traceroute map navigation (#5104)
|
2026-04-13 12:25:21 +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
|
0441093ce8
|
refactor(node): move Position to last in telemetry list on node details (#5068)
|
2026-04-11 17:06:17 +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
|
a6423d0a0f
|
feat(metrics): redesign position log with SelectableMetricCard and add CSV export to all metrics screens (#5062)
|
2026-04-11 01:26:26 +00:00 |
|
James Rich
|
37e9e2c8f0
|
fix(charts): hoist rememberVicoZoomState above vararg layers to prevent ClassCastException (#5060)
|
2026-04-11 00:05:56 +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
|
520fa717a9
|
refactor(metrics/map): DRY up charts, decompose MapView monoliths, add test coverage (#5049)
|
2026-04-10 20:54:09 +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
|
9c0e9b82d6
|
feat(charts): adopt Vico best practices, add sensor data, and migrate TracerouteLog (#5026)
|
2026-04-09 23:44:59 +00:00 |
|
James Rich
|
1649e46dd5
|
chore(deps): remove 7 unused dependencies across modules (#5017)
|
2026-04-09 12:35:28 -05: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
|
464a12b9f7
|
chore: standardize resources and update documentation for Navigation 3 (#4961)
|
2026-03-31 21:25:37 +00:00 |
|
James Rich
|
f2d09ff79d
|
Refactor nav3 architecture and enhance adaptive layouts (#4944)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
|
2026-03-27 14:43:44 +00:00 |
|
James Rich
|
141b54ff9c
|
feat: migrate to Material 3 Expressive APIs (#4934)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
|
2026-03-26 16:42:46 +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
|
b0e91a390c
|
feat: implement unified deep link routing for Kotlin Multiplatform (#4910)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
|
2026-03-25 00:21:24 +00:00 |
|
James Rich
|
553ca2f8ed
|
feat: implement global SnackbarManager and consolidate common UI setup (#4909)
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
|
2026-03-24 22:31:40 +00:00 |
|
James Rich
|
96060a0a4d
|
refactor: coroutine dispatchers and modernize testing infrastructure (#4901)
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
|
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 |
|