Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 2.43 KB

File metadata and controls

38 lines (28 loc) · 2.43 KB

← Back to Backlog

[SC-030] Add progress indicators and status feedback with PwshSpectreConsole

Status: Open Priority: Medium Component: lib/wsl/manager.ps1, lib/wsl/commands.ps1 Depends on: SC-029, SC-016, SC-028

Summary: As a user, I want to see spinners, progress bars, and clear status feedback during long-running WSL operations so that I know the system is working and can estimate how long I need to wait.

Description: Long-running operations (install, clone, docker/podman setup, export/import) currently show no progress indication - the user stares at a blank or static screen. SC-028 addresses the underlying output visibility issue; this item builds on that fix by adding rich visual feedback using PwshSpectreConsole's progress primitives.

Planned improvements

  1. Spinner animations: wrap long operations in Invoke-SpectreCommandWithStatus to show an animated spinner with a descriptive message (e.g., "Installing Ubuntu-24.04...")
  2. Progress bars: use Invoke-SpectreCommandWithProgress for multi-step operations that have discrete phases (e.g., export: enumerate -> compress -> write)
  3. Targeted redraws: replace Clear-Host full-screen wipe with Spectre's Invoke-SpectreLive for updating only changed regions, eliminating screen flicker
  4. Color-coded result summaries: after each operation, show a brief result with Spectre markup - [green]Success[/], [yellow]Warning[/], [red]Failed[/]
  5. Elapsed time display: show elapsed time for operations that take more than a few seconds

Technical approach

  • Wrap existing command functions (which remain unchanged) in Spectre status/progress contexts
  • Build a thin helper (e.g., Invoke-WslOperationWithStatus) that standardizes spinner usage across all commands
  • Use Invoke-SpectreLive in the main menu loop to avoid full-screen redraws

Acceptance Criteria:

  • Long-running operations (install, clone, docker setup, podman setup, export, import) show a spinner
  • Clear-Host replaced with targeted redraws (no full-screen flicker)
  • Operations display elapsed time when they take longer than 3 seconds
  • Success/failure results are color-coded using Spectre markup
  • Existing command functions (commands.ps1) are not structurally changed - progress wrapping is applied at the TUI layer
  • All existing tests continue to pass

← Back to Backlog