Files
Meshtastic-Android/core
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
..