Skip to content

fix(tui): alternate screen 종료 시 codex 응답 내용 보존#311

Merged
sorlros merged 2 commits into
devfrom
fix/tui-alt-screen-flush
May 18, 2026
Merged

fix(tui): alternate screen 종료 시 codex 응답 내용 보존#311
sorlros merged 2 commits into
devfrom
fix/tui-alt-screen-flush

Conversation

@sorlros
Copy link
Copy Markdown
Member

@sorlros sorlros commented May 18, 2026

Summary

  • codex exec가 alternate screen buffer(\x1b[?1049h)를 사용해 TUI를 렌더링하는 경우, 프로세스 종료 시 \x1b[?1049l로 main screen 복귀 시 alternate screen 내용이 버려지는 근본 원인 수정
  • "이 디렉토리의 목적을 설명해줘" 같이 codex가 shell 명령을 실행하는 복잡한 쿼리에서 결과가 표시되지 않던 문제 해결
  • 이전 커밋(612f8b6)의 lookahead 50행 확장과 함께 embedded-pane 정상 동작 보장

Changes

  • src/cli/tui/terminal-emulator.ts: \x1b[?1049l 처리 시 alternate screen buffer의 비어있지 않은 행을 scrollback에 flush한 뒤 main screen 복원

Test plan

  • npm run typecheck 통과
  • npx vitest run tests/ts/unit/cli/tui/terminal-emulator.test.ts — 15개 기존 테스트 통과
  • npx vitest run tests/ts/unit/cli/tui/panels/embedded-terminal.test.ts — 43개 기존 테스트 통과
  • E2E: detoks repl --embedded-cli-ui --execution-mode real 실행 후 "이 디렉토리의 목적을 한 문장으로 설명해줘." 입력 → embedded pane에 응답 텍스트 표시 확인

sorlros and others added 2 commits May 18, 2026 14:28
codex exec가 자신의 TUI에 alternate screen buffer(\x1b[?1049h)를 사용하여
출력하는 경우, 프로세스 종료 시 \x1b[?1049l로 복귀하면 alternate screen 내용이
버려지고 빈 main screen만 남아 사용자가 응답을 볼 수 없던 문제를 수정.

alternate screen 종료 처리 시 비어있지 않은 행을 scrollback에 push한 뒤
main screen을 복원하도록 변경.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sorlros sorlros merged commit 3c99a18 into dev May 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant