Symptom
After pressing q (or the exit keybind) to dismiss the Ink full-screen dashboard (/command-view / /cv), the character q is visibly written to the terminal output before the readline prompt is restored.
Reproduction
- Run
archon in a TTY
- Type
/cv and press Enter to open the dashboard
- Press
q to exit
- Observe
q appearing in the terminal output
Analysis
Ink exits by calling useApp().exit() in response to the keypress. The q keystroke is being echoed to stdout during the transition between Ink's raw-mode teardown and readline resuming.
Likely cause: a window exists between Ink calling setRawMode(false) (disabling raw mode, which re-enables OS-level echo) and readline's resume() call in restore(). During that window, the q keypress is echoed by the OS.
Files
-packages/cli/src/tui/shell.ts — mountDashboard() / restore()
-packages/cli/src/tui/dashboard/DashboardView.tsx — exit keybind handler
Symptom
After pressing
q(or the exit keybind) to dismiss the Ink full-screen dashboard (/command-view//cv), the characterqis visibly written to the terminal output before the readline prompt is restored.Reproduction
archonin a TTY/cvand press Enter to open the dashboardqto exitqappearing in the terminal outputAnalysis
Ink exits by calling
useApp().exit()in response to the keypress. Theqkeystroke is being echoed to stdout during the transition between Ink's raw-mode teardown and readline resuming.Likely cause: a window exists between Ink calling
setRawMode(false)(disabling raw mode, which re-enables OS-level echo) and readline'sresume()call inrestore(). During that window, theqkeypress is echoed by the OS.Files
-
packages/cli/src/tui/shell.ts—mountDashboard()/restore()-
packages/cli/src/tui/dashboard/DashboardView.tsx— exit keybind handler