Commit Graph
1339 Commits
Author SHA1 Message Date
James Rich 122a627d76 feat(remote-shell): plain terminal UI, turn-taking, and a correct input sink
Three things stood between the April branch and a working session:

- The CRT theatrics are gone - scanlines, phosphor presets, flicker, and
  the AGSL curvature shader, which rendered the block cursor as a skewed
  amber quad in the corner. The terminal is now monospace text on the app
  theme.
- Turn-taking ('talking stick', RemoteShell.flags) landed on the firmware
  side after this branch was written. DMShellModule marks every session
  turn-managed and withholds output until the peer grants a turn, so a
  client that never grants sees an open session and no prompt, and the
  device re-sends RTS every 250 ms until its TX queue fills. We now grant
  on every frame we originate and answer any request immediately.
- The invisible input sink passed a constant "" as its value, so Compose
  re-delivered characters we had already consumed: 'whoami' reached the
  PTY as 'wwhwhowhoa'. It now tracks what it consumed and forwards the
  delta, mapping a shrinking field to backspaces.

Verified against meshtasticd: session opens, 'whoami' echoes exactly and
returns 'root'.
2026-08-24 14:28:39 -05:00
James Rich df70f6b207 fix(remote-shell): re-integrate the April branch with current APIs
- license header year: the tree standardised on 2026, not 2025-2026
- spotless: ktlint's blank-line-between-when-conditions is new since
- MeshDataHandlerImpl: drop shouldBroadcast, removed with the AIDL
  service rework (#5586); nothing broadcasts on this path any more
- RemoteShellViewModel: DataPacket.nodeNumToDefaultId and
  DataPacket.PKC_CHANNEL_INDEX both moved to NodeAddress
2026-08-24 14:04:07 -05:00
James Rich 4d75e88cec Merge origin/main into remote-shell-revival
Conflicts, all re-integration of the April branch into the current tree:
- MeshDataHandlerImpl/Test: keep main's constructor (ServiceScope, session
  context, geofence/beacon collaborators) and re-add remoteShellHandler.
- Capabilities.kt: re-add supportsRemoteShell, still gated to UNRELEASED.
- strings.xml: main re-sorted the file; re-insert remote_shell and
  phosphor_colour in their sorted positions.
- NodesNavigation/AdministrationSection: union both sides.
2026-08-24 12:35:09 -05:00
James Rich 8e1e94c97e chore: Scheduled updates (Firmware, Hardware, Translations) (#6852) 2026-08-24 11:00:20 -05:00
James Rich 1ab4da0fa6 feat(messaging): per-contact drafts and a quieter composer (#6851) 2026-08-24 10:43:59 -05:00
James Rich ef18af3610 feat(messaging): swipe to reply, double-tap reactions, day separators (#6850) 2026-08-24 15:01:47 +00:00
James Rich e549d24ea3 fix(messaging): clear and suppress notifications for the conversation on screen (#6849) 2026-08-24 15:01:46 +00:00
James RichandClaude Fable 5 bd2863243b fix(mqtt): tolerate object-typed payload in MQTT JSON messages (#6839)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 06:19:35 -05:00
James RichandClaude Fable 5 f3d843629b fix(map): survive the WebView provider update race in Site Planner (#6846)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 06:19:18 -05:00
James RichandClaude Fable 5 5447674bb4 fix(connection): extend BLE handshake deadlines while config progress flows (#6848)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 06:18:42 -05:00
James RichandClaude Fable 5 7c62ee592d fix(ui): bound pane content height under the adaptive three-pane scaffold (#6845)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 10:55:52 +00:00
James RichandClaude Fable 5 3027f544f0 fix(navigation): never let the active backstack empty under NavDisplay (#6844)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 10:46:47 +00:00
James Rich 5f5d5e2dbf chore: Scheduled updates (Firmware, Hardware, Translations) (#6822) 2026-08-23 17:35:31 -07:00
James RichandClaude Fable 5 60002de56d chore(detekt): scan flavor, iosMain and jvmAndroidMain sources (#6836)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 23:24:19 +00:00
James Rich 3449c6b446 chore: Scheduled updates (Firmware, Hardware, Translations) (#6817) 2026-08-21 17:59:30 +00:00
James RichandClaude Sonnet 5 99075c5dbe feat(hardware): fetch the maintenance UF2 manifest from the API, digest-pinned (#6803)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 17:58:51 +00:00
James Rich a276cda62c fix(firmware): show the erase wait and upload retries during Legacy DFU (#6812) 2026-08-21 15:15:57 +00:00
James Rich 090e4dd543 chore: Scheduled updates (Firmware, Hardware, Translations) (#6801) 2026-08-21 13:24:25 +00:00
James RichandClaude Sonnet 5 4651c85361 feat(hardware): fetch bootloader OTA quirks from the API, seeded from the bundled asset (#6802)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 13:23:32 +00:00
James RichandClaude Fable 5 459eb61948 fix(database): give every SQLite connection a busy timeout (#6809)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 12:42:59 +00:00
James RichandClaude Fable 5 b6213f94ec fix(database): rebuild the packet FTS index after the schema-52 table recreation (#6808)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-21 12:23:57 +00:00
James Rich 08ac3978f9 chore: Scheduled updates (Firmware, Hardware, Translations) (#6799) 2026-08-20 14:35:26 -05:00
James Rich f2a21227c7 chore: Scheduled updates (Firmware, Hardware, Translations) (#6789) 2026-08-20 13:58:37 -05:00
James RichandClaude Fable 5 950c9a1592 fix(ui): give feedback when a contact or channel import arrives while disconnected (#6798)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 18:27:52 +00:00
James RichandClaude Fable 5 a0e18bf1fb feat(privacy): shield sensitive UI content from non-tool accessibility services (#6794)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 17:34:02 +00:00
James RichandClaude Fable 5 ac43158eb0 fix(navigation): clear deep-link replay cache once applied to the backstack (#6796)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 17:18:42 +00:00
James RichandClaude Fable 5 4d4070c8e1 perf(ui): render QR codes at display density instead of fixed 960px (#6793)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 17:06:08 +00:00
James Rich b677d4275d chore: Scheduled updates (Firmware, Hardware, Translations) (#6787) 2026-08-20 06:43:21 -05:00
James RichandClaude Fable 5 4d9cf8ec18 fix: derive temperature unit from locale temperature preference, not distance system (#6775)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-19 23:42:36 +00:00
James RichandClaude Fable 5 9620984a68 feat(tak): add TAK Mesh Channel setting for outbound TAK traffic (#6770)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-19 23:04:45 +00:00
James Rich 582d320fc0 chore: Scheduled updates (Firmware, Hardware, Translations) (#6758) 2026-08-19 15:53:53 -05:00
James Rich 5a6d8ab092 chore: Scheduled updates (Graphs, Baseline Profile) (#6768) 2026-08-19 10:13:15 +00:00
James RichandClaude Opus 5 1fdd481d7c fix(service): explain, don't hang, when a TCP reconnect lacks local-network access (#6767)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 23:29:47 +00:00
James RichandClaude Opus 5 656f481c68 fix(connections): gate manual + recent TCP connects on ACCESS_LOCAL_NETWORK (#6766)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 23:29:46 +00:00
James Rich a394f82cad fix(tak): duplicate ATAK contacts on v1 GeoChat + surface v1-fallback notice (#6759) 2026-08-18 15:23:22 +00:00
renovate[bot]andJames Rich f0f2e4449f chore(deps): update org.meshtastic:takpacket-sdk to v0.9.1 (#6697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Rich <james.a.rich@gmail.com>
2026-08-18 00:22:46 +00:00
James Rich df402c5e81 chore: Scheduled updates (Firmware, Hardware, Translations) (#6755) 2026-08-17 20:37:23 +00:00
James RichandClaude Sonnet 5 661621f1fc fix(ble): refresh a stale GATT cache during ordinary reconnects (#6744)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 18:17:30 +00:00
James Rich 0c3e4d2730 chore: Scheduled updates (Firmware, Hardware, Translations) (#6749) 2026-08-17 17:41:56 +00:00
James Rich 3796787cdf fix(database): raise default cache limit and warn before eviction (#6742) 2026-08-17 17:37:51 +00:00
James Rich 2df817db7a fix(node): make node-list search case-insensitive for non-ASCII names (#6753) 2026-08-17 17:37:23 +00:00
James RichandClaude Opus 5 19bb682c9c feat(firmware): add nRF52/RP2040 factory erase and OTAFIX bootloader upgrade over USB (#6526)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 16:43:07 +00:00
James RichandClaude Sonnet 5 65a1f5ce4d fix(takserver): route TAK self-test through the real v1/v2 dispatch path (#6746)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 16:10:57 +00:00
James RichandClaude Sonnet 5 7bc6722510 fix(node): confirm before clearing a node's position track (#6745)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 16:00:53 +00:00
James Rich 123d200988 chore: Scheduled updates (Firmware, Hardware, Translations) (#6728) 2026-08-16 20:24:23 +00:00
James Rich 2d1dc59b8f fix(takserver): wire TAKPacket-SDK's logger, surface remarks-stripped (#6736) 2026-08-16 10:35:11 +00:00
James Rich ff7653a234 fix(barcode): narrow the F-Droid scanner to QR-only (#6731) 2026-08-16 08:16:42 +00:00
James Rich cea2c3a015 fix(ui): request HIGH error correction for generated QR codes (#6730) 2026-08-16 07:45:38 +00:00
James Rich ae7eaa6710 fix(network): handle IPv6 mDNS addresses correctly, refresh on re-announce (#6729) 2026-08-16 07:04:01 +00:00
James Rich 99e835482f chore: Scheduled updates (Firmware, Hardware, Translations) (#6724) 2026-08-16 03:59:00 +00:00