James Rich
97efcca224
refactor(remote-shell): use proto fields for replay/heartbeat metadata
...
Align with firmware refactor (meshtastic/firmware#10123 ) and protobufs
PR meshtastic/protobufs#894 which adds last_tx_seq and last_rx_seq
fields to the RemoteShell message.
- ACK: use last_rx_seq proto field instead of encoding replay-from
seq into payload bytes
- PING: use last_tx_seq/last_rx_seq proto fields instead of encoding
heartbeat status as 8-byte payload
- PONG: read last_tx_seq/last_rx_seq from proto fields instead of
decoding payload
- SentFrame: store flags/lastTxSeq/lastRxSeq for faithful replay
- Remove unused encodeUint32BE, encodeHeartbeatStatus,
decodeHeartbeatStatus helpers and associated constants
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 13:13:10 -05:00
James Rich
5dfb7de364
fix(test): add missing remoteShellHandler param to MeshDataHandlerTest
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 13:13:10 -05:00
James Rich
bd25730633
fix(remote-shell): resolve KMP compilation, detekt, and spotless failures
...
- Import kotlin.concurrent.Volatile instead of JVM-auto-resolved variant
- Replace synchronized() with Mutex.withLock for KMP compatibility
- Replace String.format() with DataPacket.nodeNumToDefaultId()
- Add iosMain actual for CrtCurvatureModifier (no-op stub)
- Extract magic numbers to named constants (UINT32_BYTES, MAX_FLUSH_WINDOW_MS, CRT_STRENGTH_SCALE)
- Add detekt suppressions for protocol-inherent complexity
- Remove unnecessary safe calls on non-nullable Wire proto fields
- Fix spotless formatting in RemoteShellHandler.kt
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 13:13:10 -05:00
James Rich
8701b8645d
feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI
...
Adds a full RemoteShell (portnum=13) implementation matching Jonathan's
dmshell_client.py protocol:
Protocol layer:
- Seq/ack reliability: incrementing seq on every non-ACK frame, piggybacked
ack_seq, out-of-order frame buffering, gap detection and replay requests
- TX history ring buffer (last 50 frames) for retransmission on request
- ACK frames carry optional 4-byte big-endian REPLAY_REQUEST payload
- PING/PONG heartbeat with 8-byte status payload (lastTxSeq, lastRxSeq);
PONG handler triggers replay if peer is behind
- PKI: DataPacket.PKC_CHANNEL_INDEX so CommandSenderImpl applies
Curve25519 encryption (firmware rejects non-PKI DMShell packets)
- Input batching: 500ms debounce (matches Python client), immediate flush
on \r, \t, buffer-full (64 bytes), or Enter
Terminal UI:
- Retro-CRT composables: TerminalCanvas (phosphor glow, two-pass bloom),
ScanlinesOverlay, FlickerEffect (animated brightness variation),
CrtCurvatureModifier (AGSL barrel distortion on Android 12+, no-op on JVM)
- PhosphorPreset enum: GREEN (P1), AMBER (P3), WHITE (P4)
- Pending-input rendered inline in preset.dim colour; snaps to confirmed on flush
- Hidden zero-size BasicTextField captures soft and hardware keyboard input
- Phosphor colour picker dropdown in top bar
Capabilities gate:
- supportsRemoteShell gated to UNRELEASED (9.9.9)
- Entry only visible in AdministrationSection when node.capabilities.supportsRemoteShell
2026-04-15 13:13:10 -05:00
renovate[bot]
0f900fe7d7
chore(deps): update core/proto/src/main/proto digest to c9067da ( #5151 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-15 13:12:53 -05:00
James Rich
9ac02cf851
fix(app): disable R8 optimization to fix Compose animation freeze ( #5150 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 17:45:27 +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
dea364dd17
fix(app): add R8 keep rules for Compose animation/runtime/ui ( #5146 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 14:30:33 +00:00
James Rich
c7d2a76851
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5145 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-15 07:48:12 -05: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
James Rich
84621acb04
fix: align BLE connection handshake with firmware protocol expectations ( #5141 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 11:55:15 +00:00
James Rich
96419f3251
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5140 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-15 06:07:21 -05:00
James Rich
60ff495037
chore(r8): clean up ProGuard rules and enable Compose Hot Reload ( #5139 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 03:26:39 +00:00
James Rich
401f59489a
chore: remove deprecated mesh_service_example module ( #5055 )
2026-04-15 03:10:23 +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
50ade01e55
docs(agents): add PR and commit hygiene guidance ( #5137 )
...
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 20:49:34 -05:00
James Rich
79ed0a865a
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5128 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-15 01:14:38 +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
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
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
099aea2d81
feat(desktop): add entitlements and wire MeshConnectionManager into orchestrator ( #5127 )
2026-04-14 15:16:10 +00:00
renovate[bot]
c6f58cc799
chore(deps): update core/proto/src/main/proto digest to 940ac38 ( #5126 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 09:48:25 -05:00
James Rich
27055290e2
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5125 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-14 12:37:12 +00:00
renovate[bot]
3aadd29e67
chore(deps): update core/proto/src/main/proto digest to a045501 ( #5124 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 07:17:49 -05: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
renovate[bot]
99378c9291
chore(deps): update core/proto/src/main/proto digest to 98e95ee ( #5123 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-14 06:50:59 -05: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
743851b0b5
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5120 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-14 10:35:19 +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
27367e9064
fix(build): pin Skiko version to align with Compose Multiplatform ( #5117 )
2026-04-13 23:32:00 +00:00
James Rich
28be6933c8
fix(proguard): disable shrinking for Compose animation classes ( #5116 )
2026-04-13 21:55:52 +00:00
James Rich
92166f0fa2
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5115 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-13 15:52:55 -05:00
renovate[bot]
8e7c4f54a3
chore(deps): update actions/upload-pages-artifact action to v5 ( #5114 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 15:24:43 -05: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
b13f9bf989
fix(resources): add resourcePrefix to KMP + widget modules, rename prefixed resources ( #5111 )
2026-04-13 18:25:23 +00:00
James Rich
8a06157ff4
docs: remove agent cruft, condense and validate remaining docs ( #5110 )
2026-04-13 17:59:19 +00:00
renovate[bot]
75e2177da7
chore(deps): update com.android.tools:common to v32.1.1 ( #5108 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 17:16:04 +00:00
renovate[bot]
61f90352c4
chore(deps): update agp to v9.2.0-rc01 ( #5107 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 17:15:52 +00:00
James Rich
087fbbfb45
fix(build): overhaul R8 rules and DRY up build-logic conventions ( #5109 )
2026-04-13 17:11:42 +00:00
James Rich
048c74db13
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5105 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-13 12:37:53 +00:00
James Rich
39620d063b
fix(nav): restore broken traceroute map navigation ( #5104 )
2026-04-13 12:25:21 +00:00
James Rich
35bf1fded5
build: align Compose Multiplatform versions and exclude transitive BOMs ( #5103 )
2026-04-13 12:02:52 +00:00
James Rich
4dd591af25
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) ( #5101 )
...
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-13 11:04:58 +00:00
James Rich
a8cdec7f55
fix(ci): isolate JetBrains Compose Multiplatform in Renovate config ( #5102 )
2026-04-13 06:09:22 -05:00
renovate[bot]
1e29fec469
chore(deps): update androidx (general) to v1.11.0-rc01 ( #5099 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Rich <james.a.rich@gmail.com>
2026-04-12 22:33:44 -05:00
James Rich
b0c603c7ed
fix(build): align AndroidX Compose versions with CMP and migrate to runComposeUiTest ( #5096 )
2026-04-13 02:49:11 +00:00
James Rich
e424d4d076
fix(build): add explicit compose-multiplatform-animation dependency ( #5095 )
2026-04-12 22:36:37 +00:00