Skip to content

feat: parallel exports download + progress bar - #21

Merged
wavekat-eason merged 1 commit into
mainfrom
feat/exports-download-parallel-progress
Apr 28, 2026
Merged

feat: parallel exports download + progress bar#21
wavekat-eason merged 1 commit into
mainfrom
feat/exports-download-parallel-progress

Conversation

@wavekat-eason

Copy link
Copy Markdown
Contributor

Summary

  • wk exports download fetches clips concurrently (--concurrency, default 8) instead of one-at-a-time
  • New animated ProgressBar in src/progress.rs renders [████░░] cur/total · M:SS on stderr; old "downloaded N clip(s)…" lines removed
  • AGENTS.md quirks updated; the "single-threaded by design" claim was wrong — Workers scale across isolates per region, so concurrency is a real win

Test plan

  • cargo test — 35 passed (3 new bar render tests)
  • cargo build clean
  • Manual: wk exports download <id> against a real export, verify bar animates and --concurrency 1 falls back to serial behavior
  • Manual: NO_COLOR=1 wk exports download <id> prints no bar; non-TTY pipe stays clean
  • Manual: re-running with --force=false immediately ticks skipped clips toward total

`wk exports download` now fetches clips concurrently (default 8, tune
via `--concurrency`) and renders an animated `[████░░] cur/total · M:SS`
bar instead of printing every-25 status lines. The previous "single-
threaded by design" comment was based on a misread of the platform —
clip GETs go through a Cloudflare Worker which scales across isolates,
so concurrency is a real win.

Skipped clips (`--force=false` resume) tick the bar immediately so
already-downloaded files don't make progress look stalled.
@wavekat-eason
wavekat-eason merged commit 2d799dd into main Apr 28, 2026
1 check passed
@wavekat-eason
wavekat-eason deleted the feat/exports-download-parallel-progress branch April 28, 2026 11:29
@github-actions github-actions Bot mentioned this pull request Apr 28, 2026
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