James Rich
a74d5d470a
feat(core): implement batched node info handling for mesh handshake
...
This commit optimizes the mesh handshake protocol by introducing explicit support for `NodeInfoBatch` messages. It updates the configuration flow to handle both primary batched node delivery and legacy single-node delivery for backwards compatibility with older firmware.
Key changes include:
- **Batch Processing Optimization:**
- Added `handleNodeInfoBatch` to the `MeshConfigFlowManager` interface to allow bulk processing of node information, reducing per-item overhead during the initial handshake.
- Updated `MeshConfigFlowManagerImpl` to accumulate batched nodes efficiently using `addAll`.
- Refactored `FromRadioPacketHandlerImpl` to delegate batch processing directly to the manager instead of iterating through individual items.
- **Handshake Protocol Updates:**
- Updated `HandshakeConstants` to distinguish between `BATCH_NODE_INFO_NONCE` (primary Stage 2) and `NODE_INFO_NONCE` (legacy Stage 2).
- Modified `handleConfigComplete` logic to trigger Stage 2 completion for both batched and legacy nonces.
- Ensured `MeshConnectionManager` prioritizes the batch nonce when requesting node information.
- **Testing & Simulation:**
- Created `MeshConfigFlowManagerImplTest` to validate node accumulation, batch handling, and handshake nonce routing.
- Improved `MockInterface` to better simulate real-world packet ordering by delaying live traffic until after the handshake completion coroutine has processed the node database.
- Added verification tests to ensure the connection manager uses the correct batching nonces.
Specific changes:
- Added `handleNodeInfoBatch` implementation to `MeshConfigFlowManagerImpl`.
- Updated documentation in `HandshakeConstants` regarding two-stage mesh handshake protocol.
- Refactored `MockInterface.sendStage2NodeInfoResponse` to handle packet encoding and simulation delays.
- Added unit tests covering edge cases for empty and mixed node info batches.
2026-04-03 10:51:17 -05:00
James Rich
b708b2ff76
feat: implement batched NodeInfo delivery in handshake protocol
...
This commit introduces support for `NodeInfoBatch` messages, allowing the application to receive and process multiple node records efficiently during the second stage of the device handshake. This replaces the legacy approach of sending node information individually, improving synchronization performance.
Key changes include:
- **Handshake Protocol:**
- Added `BATCH_NODE_INFO_NONCE` to `HandshakeConstants`.
- Updated `MeshConnectionManagerImpl` to request batched node information by default during the handshake process.
- Updated `MeshConfigFlowManagerImpl` to handle the batch-specific completion nonce, ensuring Stage 2 of the handshake finalizes correctly.
- **Packet Handling:**
- Enhanced `FromRadioPacketHandlerImpl` to detect `node_info_batch` packets.
- Implemented logic to iterate through batched items and process each `NodeInfo` record via the `MeshConfigFlowManager`.
- Updated connection progress reporting to reflect the count of nodes received within a batch.
- **Testing and Simulation:**
- Updated `MockInterface` to simulate batched node delivery, refactoring the mock response logic into distinct Stage 1 (config) and Stage 2 (node info) phases.
- Added a unit test in `FromRadioPacketHandlerImplTest` to verify that batched items are correctly routed and that the UI connection status is updated.
Specific changes:
- Modified `HandshakeConstants` to document the transition to batched NodeInfo delivery in Stage 2.
- Updated `MeshConnectionManagerImpl.startNodeInfoOnly()` to use the new batch nonce.
- Added `nodeInfoBatch` processing branch to the `handleFromRadio` logic.
2026-04-03 10:51:17 -05:00
James Rich
fda96e2f8c
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4975 )
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-03 09:13:23 -05:00
renovate[bot]
e468818c82
chore(deps): update org.junit.platform:junit-platform-launcher to v6 ( #4983 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:09:57 -05:00
renovate[bot]
919da2904e
chore(deps): update junit5 to v6 (major) ( #4982 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:08:03 -05:00
renovate[bot]
9544df2bb9
chore(deps): update org.junit.platform:junit-platform-launcher to v1.14.3 ( #4981 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 09:02:31 -05:00
renovate[bot]
db5403b436
chore(deps): update junit5 to v5.14.3 ( #4980 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-03 08:59:43 -05:00
James Rich
fc86c696cd
feat(wifi-provision): add mPWRD-OS branding and disclaimer banner ( #4978 )
2026-04-03 13:47:15 +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
1fee6c4431
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4973 )
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-01 18:40:29 -05:00
James Rich
176340be5f
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4972 )
2026-04-01 16:49:55 -05:00
renovate[bot]
05229fd652
chore(deps): update xmlutil to v0.91.3 ( #4971 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-01 16:48:57 -05: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
d1ca8ec527
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4967 )
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-01 10:56:33 -05:00
James Rich
fefe74d217
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4965 )
2026-04-01 12:45:23 +00:00
James Rich
89547afe6b
Refactor and unify firmware update logic across platforms ( #4966 )
2026-04-01 12:14:26 +00:00
James Rich
d8e295cafb
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4964 )
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 21:15:06 -05:00
James Rich
7c9d007a1f
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4962 )
2026-03-31 21:26:24 +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
1faa802fe6
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4958 )
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 14:07:18 +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
Roman Vlasenko
ae4465d7c8
fix(strings): Fix public key description ( #4957 )
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-30 20:34:54 +00:00
renovate[bot]
38848b4ea4
chore(deps): update kotest to v6.1.10 ( #4956 )
...
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
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-30 16:03:58 +00:00
James Rich
69f147a1d8
ci: Upgrade to JDK 21 and centralize CI configuration with new workflows ( #4948 )
Dependency Submission / dependency-submission (push) Has been cancelled
Main CI (Verify & Build) / validate-and-build (push) Has been cancelled
Main Push Changelog / Generate main push changelog (push) Has been cancelled
2026-03-27 17:06:19 +00:00
renovate[bot]
445ec27fa4
chore(deps): update ktor to v3.4.2 ( #4947 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 16:49:00 +00:00
James Rich
ad6e12445b
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4943 )
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-27 14:51:32 +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
3feec759a1
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4939 )
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-27 02:45:08 +00:00
renovate[bot]
791601dec2
chore(deps): update wire to v6.2.0 ( #4940 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-27 02:45:01 +00:00
James Rich
0bc7ca820b
ci(github): add conditional desktop build to release workflows ( #4938 )
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-26 15:03:27 -05:00
James Rich
1c1c208d48
chore(ci): implement tiered GitHub Actions runner strategy ( #4937 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-26 18:18:03 +00:00
James Rich
e106badec7
build: update JVM toolchain and CI Java distribution ( #4936 )
2026-03-26 12:25:05 -05:00
James Rich
d979269552
fix(ci): update APP_VERSION_NAME output reference in workflows ( #4935 )
2026-03-26 12:01:53 -05: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
renovate[bot]
c259c76550
chore(deps): update codecov/codecov-action action to v6 ( #4933 )
...
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
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 15:26:11 +00:00
James Rich
518096ddc8
build: update Compose Multiplatform and migrate lifecycle dependencies ( #4932 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-26 15:18:45 +00:00
renovate[bot]
4be0fb9c65
chore(deps): update org.jetbrains.androidx.navigation3:navigation3-ui to v1.1.0-beta01 ( #4931 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 09:08:36 -05:00
renovate[bot]
0d2c2e8a98
chore(deps): update jetbrains.lifecycle to v2.11.0-alpha02 ( #4930 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 13:52:16 +00:00
James Rich
3b485a0109
build: enable -Xjvm-default=all compiler flag ( #4929 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-26 13:16:04 +00:00
renovate[bot]
e1fa05f63f
chore(deps): update dokka to v2.2.0 ( #4928 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-26 08:16:35 -05:00
James Rich
ff6e1813ea
chore(github): update GitHub token reference in workflows ( #4926 )
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-25 21:32:14 -05:00
James Rich
da5b28443e
ci: change jdk from jetbrains to temurin in non-release workflows ( #4925 )
2026-03-25 21:24:29 -05:00
James Rich
7484cc69b4
refactor(ui): remove labels from navigation suite items ( #4924 )
2026-03-25 21:14:17 -05:00
James Rich
36290fc94b
build(github): add GITHUB_TOKEN to setup-java actions ( #4923 )
2026-03-25 20:53:18 -05:00
James Rich
6f95435cfc
ci: refine workflow permissions and version parsing logic ( #4922 )
...
Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com>
2026-03-26 01:16:22 +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
b608a04ca4
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #4912 )
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-25 16:37:36 -05:00