Skip to content

feat: animated progress display for parallel task execution#93

Merged
rileyhilliard merged 1 commit intomainfrom
release/animated-progress-display
Jan 13, 2026
Merged

feat: animated progress display for parallel task execution#93
rileyhilliard merged 1 commit intomainfrom
release/animated-progress-display

Conversation

@rileyhilliard
Copy link
Copy Markdown
Owner

@rileyhilliard rileyhilliard commented Jan 13, 2026

Summary

  • Add animated braille spinner for running parallel tasks
  • Color cycling through gradient (pink -> purple -> cyan -> green)
  • In-place terminal updates - running tasks animate, completed tasks transition to final symbol without new lines
  • Add syncing vs executing state distinction for clearer progress feedback
  • Document parallel execution feature prominently in README and configuration.md

Changes

  • New: internal/ui/parallel_progress.go - Multi-line animated progress component
  • Updated: internal/parallel/output.go - Integrates animated progress for TTY mode
  • Docs: README now has dedicated "Parallel execution" section with examples
  • Docs: configuration.md documents all parallel task fields and CLI flags

Test plan

  • Unit tests for ParallelProgress component
  • Existing parallel execution tests pass
  • Lint passes
  • Manual verification of animation in terminal

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Parallel task execution with animated progress indicators displayed in real-time.
    • Live status indicators showing per-host task timings and execution summary.
    • New task lifecycle states (syncing and executing) for improved progress visibility.
    • Additional CLI flags for parallel execution control: --stream, --verbose, --quiet, --fail-fast, --max-parallel, --dry-run, --local, and --no-logs.
    • Updated load balancing behavior for single vs. parallel task distribution.
  • Documentation

    • Added comprehensive parallel execution section to README with configuration examples and output samples.
    • Extended configuration documentation with parallel task examples and execution behavior details.

✏️ Tip: You can customize this high-level summary in your review settings.

- Add ParallelProgress component with braille spinner animation
- Color cycling through gradient (pink -> purple -> cyan -> green)
- In-place terminal updates using ANSI cursor movement
- Running tasks animate, completed tasks show final symbol in place
- Add syncing vs executing state distinction for clearer progress
- Document parallel execution feature in README and configuration.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@rileyhilliard rileyhilliard merged commit 3ceaccb into main Jan 13, 2026
2 of 3 checks passed
@rileyhilliard rileyhilliard deleted the release/animated-progress-display branch January 13, 2026 22:52
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 13, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

This PR introduces parallel task execution with animated progress visualization. Changes include configuration documentation, a new UI component for real-time task status rendering, orchestration initialization logic, and refined task state transitions distinguishing syncing and executing phases.

Changes

Cohort / File(s) Summary
Documentation
README.md, docs/configuration.md
Added parallel execution section with YAML examples, CLI output modes (--stream, --verbose, --quiet, --dry-run), and execution behavior clarifications; updated load balancing description for parallel task distribution.
Task Status and Types
internal/parallel/types.go, internal/ui/symbols.go
Introduced new TaskSyncing status between pending and running; added SymbolSyncing constant (◐) for UI rendering of syncing state.
Orchestration Initialization
internal/parallel/orchestrator.go
Added upfront task initialization via InitTasks call and deferred cleanup on hostWorker; no signature changes.
Task Lifecycle Notifications
internal/parallel/worker.go
Refactored notifications to emit TaskSyncing for connection/setup phase followed by TaskExecuting for active execution; changes apply to both remote and local task paths.
Output Management
internal/parallel/output.go, internal/parallel/output_test.go
Integrated new ParallelProgress controller; added InitTasks, TaskSyncing, TaskExecuting methods; deprecated TaskStarted; routed progress mode through UI controller instead of inline rendering; updated test expectations for new state transitions.
Parallel Progress UI
internal/ui/parallel_progress.go, internal/ui/parallel_progress_test.go
New animated progress component with task lifecycle methods (InitTasks, TaskSyncing, TaskExecuting, TaskCompleted), in-place terminal rendering, frame-based animation, and concurrent-safe state updates; comprehensive test coverage for TTY/non-TTY modes and task sequencing.

Sequence Diagram

sequenceDiagram
    participant Orchestrator
    participant Worker
    participant OutputManager
    participant ParallelProgress UI
    
    Orchestrator->>OutputManager: InitTasks([task names])
    OutputManager->>ParallelProgress UI: InitTasks([task names])
    ParallelProgress UI->>ParallelProgress UI: Mark all as Pending
    
    Orchestrator->>Worker: Execute task
    Worker->>OutputManager: TaskSyncing(name, host)
    OutputManager->>ParallelProgress UI: TaskSyncing(name, host)
    ParallelProgress UI->>ParallelProgress UI: Update task to Syncing state
    
    Worker->>Worker: ensureSync (wait for lock)
    Worker->>OutputManager: TaskExecuting(name)
    OutputManager->>ParallelProgress UI: TaskExecuting(name)
    ParallelProgress UI->>ParallelProgress UI: Update task to Running state
    
    Worker->>Worker: Run task
    Worker->>OutputManager: TaskCompleted(name, success)
    OutputManager->>ParallelProgress UI: TaskCompleted(name, success)
    ParallelProgress UI->>ParallelProgress UI: Update task to Passed/Failed
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related issues

  • Parallel task execution across multiple hosts #81: Implements parallel-task orchestrator, output manager state transitions (TaskSyncing/TaskExecuting), ParallelProgress UI component, configuration documentation, and worker orchestration—directly fulfilling the objectives of this parallel task execution feature.

Possibly related PRs

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e7ff747 and 8c65275.

📒 Files selected for processing (11)
  • README.md
  • docs/configuration.md
  • internal/parallel/orchestrator.go
  • internal/parallel/orchestrator_test.go
  • internal/parallel/output.go
  • internal/parallel/output_test.go
  • internal/parallel/types.go
  • internal/parallel/worker.go
  • internal/ui/parallel_progress.go
  • internal/ui/parallel_progress_test.go
  • internal/ui/symbols.go

Comment @coderabbitai help to get the list of available commands and usage tips.

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