Implements the progress bar for pdftract grep with: - 100ms steady tick for spinner animation - 500ms watchdog guarantee for liveness during slow file operations - 30s slow-file warning - TTY detection with --progress/--no-progress flags - Multi-progress: main bar (overall) + current bar (per-file) - Output to stderr (separate from --json stdout) Key changes: - Replaced tokio::sync::Mutex with std::sync::Mutex for sync context - Added shutdown_flag for clean watchdog thread shutdown - Added main_bar_for_watchdog reference for forced redraws - Changed TTY detection to use atty crate (cross-platform) - Set ProgressDrawTarget::stderr() explicitly Acceptance criteria: - Bar updates >= every 500ms during 1000-file grep - 5GB slow file: bar continues ticking via steady tick - Slow-file warning at 30s - Non-TTY: no bar (workers still process) - --no-progress forces off even on TTY - Bar goes to stderr; --json output to stdout uncontaminated - Final summary line printed on done Related: pdftract-43sg2 (ProgressEvent source) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| pdftract-cer-diff | ||
| pdftract-cli | ||
| pdftract-core | ||
| pdftract-libpdftract | ||
| pdftract-py | ||