fix(tui): restore Codex harness scrolling - #252
1 finding
The description accurately covers the core fix — routing Codex wheel input to cursor keys when alternate-scroll mode is absent — and the terminal-negotiation regression test exists as described. However, the diff also introduces a distinct, significant behavior change the description never mentions: a guard at the top of scroll() that checks is_running and diverts wheel input to the emulator's retained history when the child has exited, plus a dedicated test for it. That is not a minor detail; it changes forwarding semantics for every dead session, not just Codex. The description should mention it. No problems found in the parts the description does cover. The code index for this repository is cold, so this review saw the diff alone.
| Finding | Where | |
|---|---|---|
| PR description omits the dead-child scroll guard and its test | src/tui/src/ui/harness_pane/mod.rs:127 |
 PR description omits the dead-child scroll guard and its test
src/tui/src/ui/harness_pane/mod.rs:127
[RULE] description-accuracy
The PR description's summary bullets describe three things: Codex cursor-key translation, retained terminal-mode routing for other harnesses, and a PTY regression test. The diff introduces a fourth, significant behavior change that the description never mentions: a dead-child guard at the top of scroll() that diverts wheel input to the emulator's own retained history when the session is no longer running. This also ships with its own test, an_exited_codex_session_scrolls_our_retained_history, which the description's "PTY regression test" bullet does not cover (that bullet refers to the Codex terminal-negotiation test, not the exited-session test).
if !self.is_running(session_id) {
self.sessions.scroll_history(session_id, rows, up);
return;
}