Skip to content

v0.11.1

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Jun 08:02
· 1 commit to main since this release
v0.11.1
b7d21f3

Fixed

  • Dropped keystrokes under fast typing on the :local transport. crossterm (in the NIF) reads the controlling terminal directly, but the BEAM keeps its own reader on the same device — the OTP 26+ prim_tty reader process (:user_drv_reader) that backs iex, elixir script.exs, mix run, and shell-attached releases. Two readers on one terminal means the kernel splits keystroke bytes between them, so under sustained input some bytes were swallowed before reaching the app (more readily on macOS). ExRatatui.run/2 and the local ExRatatui.App server now park that reader for the duration of a session — using prim_tty's own SIGTSTP disable/enable handoff, the same mechanism the shell uses on Ctrl-Z — so crossterm owns input exclusively, then resume it on teardown so the shell returns intact (termios stays raw throughout; nothing is left in cooked mode). The handoff is a no-op when there is no such reader (older OTP, a release booted with -noinput, or piped stdin) and on the session/SSH/distributed transports, which never share a local terminal. Opt out with config :ex_ratatui, detach_local_input: false.