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
|
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
|
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 |
|
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
|
401f59489a
|
chore: remove deprecated mesh_service_example module (#5055)
|
2026-04-15 03:10:23 +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
|
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
|
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
|
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 |
|
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
|
b13f9bf989
|
fix(resources): add resourcePrefix to KMP + widget modules, rename prefixed resources (#5111)
|
2026-04-13 18:25:23 +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
|
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
|
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 |
|
James Rich
|
5c47256b3f
|
test(prefs): migrate DataStore tests from androidHostTest to commonTest (#5092)
|
2026-04-12 20:45:19 +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
|
7ca7179197
|
build: migrate Compose dependencies to Compose Multiplatform (#5084)
|
2026-04-12 14:45:11 +00:00 |
|
James Rich
|
9281324be3
|
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5082)
|
2026-04-12 06:44:03 -05:00 |
|
James Rich
|
e85300531e
|
refactor(transport): complete transport architecture overhaul — extract callback, wire BleReconnectPolicy, fix safety issues (#5080)
|
2026-04-12 04:22:18 +00:00 |
|
James Rich
|
9468bc6ebe
|
refactor(service): unify dual connectionState flows into single source of truth (#5077)
|
2026-04-12 00:50:52 +00:00 |
|
James Rich
|
5e44cbd3a9
|
fix(data): make MeshConnectionManagerImpl.onConnectionChanged atomic (#5076)
|
2026-04-12 00:49:09 +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
|
174315b21f
|
refactor(data): replace lateinit var scope + start() with constructor injection (#5075)
|
2026-04-11 23:39:29 +00:00 |
|
James Rich
|
172680fd46
|
fix(mqtt): replace yield() with proper connection readiness signal (#5073)
|
2026-04-11 23:38:33 +00:00 |
|
James Rich
|
a3c0a4832d
|
fix(transport): Kable BLE audit + thread-safety, MQTT, and logging fixes across transport layers (#5071)
|
2026-04-11 22:56:29 +00:00 |
|
James Rich
|
40ea45a4fe
|
fix(settings): hide Status Message config until firmware v2.8.0 (#5070)
|
2026-04-11 22:06:53 +00:00 |
|
James Rich
|
1fe3f4423d
|
fix(ui): add missing @ParameterName annotations on actual rememberReadTextFromUri declarations (#5072)
|
2026-04-11 22:06:44 +00:00 |
|
James Rich
|
b3d0c97206
|
chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5065)
|
2026-04-11 04:53:07 -05: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
|
9c8532f80d
|
refactor: leverage new dependency features from recent updates (#5057)
|
2026-04-10 22:51:08 +00:00 |
|
James Rich
|
929e273978
|
fix(build): resolve all actionable compile-time warnings (#5058)
|
2026-04-10 22:42:30 +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 |
|