fix(progress): eliminate duplicate TTY frame per asset #119

Merged
altair823 merged 1 commits from fix/progress-duplicate-tty-frame into main 2026-05-07 13:17:36 +00:00
Owner

원인

set_position()set_message()가 각각 독립적으로 update_and_draw()를 호출 → TTY scrollback에 파일당 2줄 출력.

두 번째 ingest 실행 시 1줄로 보이는 이유: 이미 ingested된 파일들이 빠르게 처리되어 indicatif 내부 draw rate limiter가 연속 draw를 병합.

수정

AssetStarted arm에서:

  1. set_draw_target(hidden()) — draw 억제
  2. set_message() + set_position() — 상태 업데이트
  3. set_draw_target(stderr()) — draw 복원
  4. tick() — 단일 프레임 명시 출력

테스트

  • cargo test -p kebab-cli 통과
  • TTY 모드에서 파일당 정확히 1줄만 출력되는 것 확인
## 원인 `set_position()`과 `set_message()`가 각각 독립적으로 `update_and_draw()`를 호출 → TTY scrollback에 파일당 2줄 출력. 두 번째 ingest 실행 시 1줄로 보이는 이유: 이미 ingested된 파일들이 빠르게 처리되어 indicatif 내부 draw rate limiter가 연속 draw를 병합. ## 수정 `AssetStarted` arm에서: 1. `set_draw_target(hidden())` — draw 억제 2. `set_message()` + `set_position()` — 상태 업데이트 3. `set_draw_target(stderr())` — draw 복원 4. `tick()` — 단일 프레임 명시 출력 ## 테스트 - `cargo test -p kebab-cli` 통과 - TTY 모드에서 파일당 정확히 1줄만 출력되는 것 확인
altair823 added 1 commit 2026-05-07 13:15:52 +00:00
set_position() and set_message() each call update_and_draw()
independently, producing two scrollback lines per file in TTY mode.
Suppress the draw target before the two updates, restore to stderr,
then call tick() to emit exactly one frame.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
altair823 merged commit 4475abbf4f into main 2026-05-07 13:17:36 +00:00
altair823 deleted branch fix/progress-duplicate-tty-frame 2026-05-07 13:17:37 +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#119