Skip to content

fix(tui): restore Codex harness scrolling - #252

Merged
senamakel merged 2 commits into
mainfrom
codex-scroll-fix
Aug 9, 2026
Merged

fix(tui): restore Codex harness scrolling#252
senamakel merged 2 commits into
mainfrom
codex-scroll-fix

fix(harness-pane): scroll retained history when the session has exited

3c790cf
Select commit
Loading
Failed to load commit list.
TinySweeper / tinysweeper/description succeeded Aug 9, 2026 in 0s

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
medium PR description omits the dead-child scroll guard and its test src/tui/src/ui/harness_pane/mod.rs:127
![medium](https://img.shields.io/badge/medium-fbca04?style=flat-square) PR description omits the dead-child scroll guard and its test

src/tui/src/ui/harness_pane/mod.rs:127 likely

[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;
        }

tinysweeper 0.1.0