Skip to content

Show model download progress on first start#9

Merged
paberr merged 3 commits intomainfrom
pb/model-downloads-progress-tui
Feb 22, 2026
Merged

Show model download progress on first start#9
paberr merged 3 commits intomainfrom
pb/model-downloads-progress-tui

Conversation

@paberr
Copy link
Owner

@paberr paberr commented Feb 22, 2026

This branch adds first-run model download UX improvements, a warmup command, and then refines the TUI to avoid regressions and simplify the runtime step flow.

What Changed

  • Added download-aware TUI progress parsing for WhisperX / HF-style output and routed it into the existing checklist/progress UI.
  • Added per-step detail text support (set_detail) to the pipeline TUI so active rows can show filename/bytes/status under the bar.
  • Added ownscribe warmup CLI command to prefetch transcription/diarization models without processing audio.
  • Added WhisperXTranscriber.prepare_models(...) and shared model-loading/download-capture logic.
  • Added a non-abstract optional prepare_models() hook to the transcriber base class.

Tests Added / Updated

  • Added new progress parser + rendering tests.
  • Extended transcriber tests for warmup lifecycle, download hook bar updates, per-file reset, and runtime-step routing.
  • Added warmup CLI help/invocation tests.
  • Added/extended pipeline warmup tests (including include_prepare=True).

Copilot AI review requested due to automatic review settings February 22, 2026 19:31
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds first-run UX improvements for model downloads by implementing download progress tracking and a warmup CLI command. The changes introduce a "Preparing models" TUI step that shows real-time download progress for WhisperX/HuggingFace models, along with a new warmup command to prefetch models before recording sessions.

Changes:

  • Added download progress parsing for tqdm/HuggingFace-style output with per-step detail text support in the TUI
  • Implemented ownscribe warmup CLI command to prefetch transcription/diarization models without processing audio
  • Refactored transcriber model loading into shared methods with optional prepare_models() hook in the base class

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/test_transcription.py Tests for prepare_models lifecycle, download progress hooks, and runtime step routing
tests/test_progress.py Comprehensive tests for download progress parsing, formatting, and TUI detail rendering
tests/test_pipeline.py Tests for run_warmup command and PipelineProgress configuration
tests/test_cli.py Tests for warmup CLI command invocation and parameter handling
src/ownscribe/transcription/whisperx_transcriber.py Core implementation of model preparation, download capture, and progress tracking
src/ownscribe/transcription/base.py Added optional prepare_models() hook to base Transcriber class
src/ownscribe/progress.py Download progress parsing, formatting, and TUI detail line support
src/ownscribe/pipeline.py run_warmup implementation with progress configuration
src/ownscribe/cli.py warmup CLI command with model/language/diarization options
README.md Documentation for warmup command and first-run model download behavior

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@paberr paberr changed the title Downloads progress on first start Show model download progress on first start Feb 22, 2026
@paberr paberr added the enhancement New feature or request label Feb 22, 2026
@paberr paberr merged commit e289b1f into main Feb 22, 2026
2 checks passed
@paberr paberr deleted the pb/model-downloads-progress-tui branch February 22, 2026 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants