Rewind picker deadlocks input when session loaded via `claude --resume` (no id, launch-time picker)

Resolved 💬 3 comments Opened Apr 23, 2026 by PohTeyToe Closed Apr 23, 2026

Summary

The Rewind picker (Esc Esc / /rewind) becomes completely unresponsive to keypresses — arrows, Enter, Esc, Ctrl+C all ignored — but only when the session was opened via claude --resume with no session id (the launch-time picker flow). The terminal must be killed entirely to recover; Rewind state is lost.

Repro

| Launch method | Rewind behavior |
|-|-|
| claude/resume (picker from inside TUI) | Works normally |
| claude --resume <session-id> (direct id) | Works normally |
| claude --resume (no id, launch-time picker) | Input deadlocked |

Same underlying session file in all three cases. Only the bare-flag picker path breaks Rewind.

Steps

  1. Have a session long enough to show in the resume picker (multi-turn, several prompts).
  2. Exit.
  3. Run claude --resume (no id argument). Select the session from the launch-time picker.
  4. Press Esc Esc (or run /rewind).
  5. Rewind picker renders. Arrow keys, Enter, Esc, Ctrl+C all ignored. No input reaches the picker.
  6. Only recovery: kill the terminal process entirely.

Expected

Rewind should behave identically regardless of how the session was resumed.

Environment

  • Claude Code: 2.1.118
  • OS: Windows 10 (10.0.19045.6466)
  • Terminal: VS Code integrated terminal (TERM_PROGRAM=vscode)
  • Shell: bash (Git Bash)

Notes

  • Not specific to long sessions in general — a fresh session of equivalent length works fine. The deadlock is tied to the --resume-with-launch-picker startup path.
  • Rewind picker itself renders correctly (selection cursor visible), so the render path is fine; it's the input handler that's dead.
  • Suspect the launch-time picker hydrates the session before the TUI input loop is fully wired, leaving the keypress handler in a bad state that only surfaces once Rewind is opened.
  • Ctrl+C does not interrupt — the terminal itself has to be killed.
  • Happens repeatedly, reproducible.

Workaround

Resume with an explicit id: claude --resume <session-id>, or launch bare claude and use /resume from inside.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗