Skip to content

feat(dash): braille progress spinner in the job console#91

Open
michaelroy-amd wants to merge 1 commit into
mainfrom
feat/dash-progress-spinner
Open

feat(dash): braille progress spinner in the job console#91
michaelroy-amd wants to merge 1 commit into
mainfrom
feat/dash-progress-spinner

Conversation

@michaelroy-amd

Copy link
Copy Markdown
Member

What

Long-running job output was forwarded verbatim, so carriage-return progress redraws (pip / tqdm / huggingface) piled up into one long horizontal line in the job console.

  • Keep only the segment after the last \r at ingest (jobs::last_cr_segment), collapsing a redraw sequence to its final visible state.
  • Show an animated braille spinner (⠋⠙⠹…) plus the parsed percentage in the running-job status header, driven by a tick_count advanced on the existing ~250ms repaint loop.
  • New pure ui::spinner module (spinner_frame + parse_progress_pct).

Tests

  • ui::spinner::tests: frame cycling, percent parsing (incl. rejection of out-of-range / bare %).
  • jobs::tests: CR-collapse + plain-line passthrough.
  • Full crate suite green (--test-threads=1), clippy -D warnings clean.

Notes

Part 1 of 3 for today's dash UX work. The scrollbars PR is stacked on this branch (shared job-console render path).

Job output was forwarded verbatim, so carriage-return progress redraws
(pip/tqdm/huggingface) accumulated into one long horizontal line. Keep only
the segment after the last CR at ingest, and show an animated braille spinner
plus the parsed percentage in the running-job header, driven by a per-tick
counter on the ~250ms repaint loop.

Adds a pure `ui::spinner` module (frame + percent parsing) with unit tests
and a CR-collapse test.

Signed-off-by: Michael Roy <michael.roy@amd.com>
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