Meshtastic-Android/core
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
..
api fix(build): resolve all actionable compile-time warnings (#5058) 2026-04-10 22:42:30 +00:00
barcode fix(build): align AndroidX Compose versions with CMP and migrate to runComposeUiTest (#5096) 2026-04-13 02:49:11 +00:00
ble chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00
common chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00
data feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI 2026-04-15 13:13:10 -05:00
database perf(messaging): batch node + reply lookups in message loading (#5149) 2026-04-15 15:48:26 +00:00
datastore refactor: modern APIs — Koin 4.2, CMP 1.11, Ktor resilience, Room @Upsert, injected dispatchers (#5119) 2026-04-14 11:41:01 +00:00
di refactor: BLE transport and UI for Kotlin Multiplatform unification (#4911) 2026-03-25 02:15:51 +00:00
domain feat: add high-contrast theme with accessible message bubbles (#5135) 2026-04-15 01:14:20 +00:00
model feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI 2026-04-15 13:13:10 -05:00
navigation feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI 2026-04-15 13:13:10 -05:00
network chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00
nfc fix: harden reliability, clean up KMP compliance, and improve code quality (#5023) 2026-04-09 18:21:46 +00:00
prefs chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00
proto chore(deps): update core/proto/src/main/proto digest to c9067da (#5151) 2026-04-15 13:12:53 -05:00
repository feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI 2026-04-15 13:13:10 -05:00
resources feat(remote-shell): PTY-over-mesh terminal with retro-CRT UI 2026-04-15 13:13:10 -05:00
service chore: remove deprecated mesh_service_example module (#5055) 2026-04-15 03:10:23 +00:00
takserver chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00
testing feat: add high-contrast theme with accessible message bubbles (#5135) 2026-04-15 01:14:20 +00:00
ui chore: KMP audit — commonize code, centralize utilities, eliminate dead abstractions (#5133) 2026-04-15 02:17:50 +00:00