Repository navigation
빠른 resize에서 PTY 크기 지연으로 생기는 TUI 잔상 수정 - #136
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
창을 빠르게 축소했다가 확대하면 이전 pane의 테두리가 남았다. tmux는 화면 크기를 먼저 바꾸고 PTY 통지를 늦출 수 있어, 그 사이 periodic redraw가 이전 ioctl 크기로 다시 그렸다. Unix에서는 cursor 위치를 저장하고 화면 끝으로 제한되는 이동과 CPR로 실제 화면 크기를 조회한 뒤 복원하도록 바꾼다. Windows는 기존 console size API와 fallback을 유지한다.
고정 sleep·tmux 감지·전체 화면/scrollback 삭제를 추가하지 않는다. Unix redraw마다 CPR 왕복 하나가 늘어 원격 터미널 latency 비용은 남는다. 모델·journal·승인 계약 변경은 없다. ADR-0079에 syscall·화면 관찰 근거와 책임을 기록했다.
검증: Rust 773 passed·4 ignored, 최종 CLI binary unit 49 passed, Clippy·fmt·문서·배포 workflow 검사 통과. draft·실행 중 queue의 rapid resize 5회, 설계와 다른 4개 크기 12회 burst, 전체 보기·승인·대기열·입력·history·종료 복원 smoke를 통과했다. CI에 기본·결과 viewer의 rapid resize smoke를 추가했다. loopback fixture HTTP 호출만 사용했고 유료 모델 호출은 없다.
강제 회귀 검사: 화면은 100×30으로 유지하고 PTY만 73×19로 바꾼 상태에서 새 입력이 100열 pane에 그려지는지 확인한다. PTY 불일치가 redraw 후에도 유지되는지 assertion으로 검증한다. 변경 전 main
6215e93archive 빌드는 이 검사에서 실패했고 수정 빌드는 통과했다. 최신 PR CI에도 포함했다.