fix(progress): one draw per file — drop set_message in TTY AssetStarted #120

Merged
altair823 merged 1 commits from fix/progress-single-draw into main 2026-05-07 13:29:58 +00:00
Owner

원인 분석

이전 fix (#119)의 set_draw_target(hidden→stderr) 스위칭이 오히려 문제를 만들었다:

  • target을 hidden→stderr로 복원할 때 indicatif가 커서 위치 컨텍스트를 잃음
  • ANSI \r overwrite 대신 매 복원마다 새 줄을 써서 파일당 2줄 이상 생성

수정

근본 해결: TTY AssetStarted에서 set_message() 호출 제거.

  • set_position() 하나만 호출 → 파일당 draw 1회
  • TTY bar는 ingest [===> ] 123/4955 형태로만 표시
  • 파일명은 기존처럼 non-TTY plain-line 경로에서만 출력

트레이드오프

TTY 모드에서 진행 중인 파일명이 bar에 보이지 않지만, scrollback에 파일당 1줄이 보장된다. non-TTY / --json 모드는 기존과 동일.

## 원인 분석 이전 fix (#119)의 `set_draw_target(hidden→stderr)` 스위칭이 오히려 문제를 만들었다: - target을 hidden→stderr로 복원할 때 indicatif가 커서 위치 컨텍스트를 잃음 - ANSI `\r` overwrite 대신 매 복원마다 새 줄을 써서 파일당 2줄 이상 생성 ## 수정 근본 해결: TTY `AssetStarted`에서 `set_message()` 호출 제거. - `set_position()` 하나만 호출 → 파일당 draw 1회 - TTY bar는 `ingest [===> ] 123/4955` 형태로만 표시 - 파일명은 기존처럼 non-TTY plain-line 경로에서만 출력 ## 트레이드오프 TTY 모드에서 진행 중인 파일명이 bar에 보이지 않지만, scrollback에 파일당 1줄이 보장된다. non-TTY / `--json` 모드는 기존과 동일.
altair823 added 1 commit 2026-05-07 13:28:54 +00:00
set_draw_target switching broke cursor positioning: each hidden→stderr
restore caused indicatif to draw a fresh line instead of overwriting.
Root fix: call only set_position() in TTY AssetStarted (one draw per
file). Filename visible in non-TTY plain-line output.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
altair823 merged commit 834a1e1723 into main 2026-05-07 13:29:58 +00:00
altair823 deleted branch fix/progress-single-draw 2026-05-07 13:29:59 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: altair823-org/kebab#120