Commit Graph

1 Commits

Author SHA1 Message Date
Alli 6625c72c92 fix(cli): use _suspend_output_history for interrupt marker instead of clearing _OUTPUT_HISTORY
The original fix for #60920 cleared _OUTPUT_HISTORY in _recover_terminal_after_interrupt
to prevent the interrupt marker from being replayed on redraw. This approach:
- Discarded legitimate scrollback content unnecessarily
- Broke /redraw and Ctrl+L replay for any content after an interrupt

Instead, the interrupt marker is now printed via _cprint inside a
_suspend_output_history() context so it never enters _OUTPUT_HISTORY.
_recover_terminal_after_interrupt no longer needs to clear history — the
marker was never recorded, so _replay_output_history cannot duplicate it.

Also adds:
- _show_interrupt_marker flag to cleanly separate marker rendering from
  response construction
- Focused regression tests covering the marker recording suppression,
  history preservation after recovery, replay cleanliness, and flag logic

Fixes: #60941
2026-08-14 13:09:37 -07:00