This repo has a known-good stable line tagged:
- roku-tui-stable-2026-01-22final
Non-negotiables (do not regress)
- OK hold must be implemented via keydown/keyup in the main loop (no timer threads).
- O/o must be consumed and must not fall through to Enter/Select.
- ESC must not be swallowed generically.
- Only swallow ESC sequences when clearly mouse wheel (ESC[<... or ESC[M...).
- Unknown ESC sequences must fall through as bare ESC.
- Do not mix legacy input paths with the newer InputHandler path.
- Do not change curses init/exit ordering unless necessary.
- Keep TTY guard in main.py to prevent curses ERR on redirected runs.
- Mouse is enabled only in Apps focus.
Notes
- Lifecycle logging may be enabled via: ROKU_TUI_LIFECYCLE_LOG=1 python3 -m roku_remote_tui