feat: add progress tracking for transformation execution#1702
Merged
piotrjanik merged 3 commits intoFeb 9, 2026
Merged
Conversation
84bde3c to
3d0e7ef
Compare
6f384c8 to
776de87
Compare
776de87 to
4796407
Compare
f833d19 to
07da6e8
Compare
Skarlso
reviewed
Feb 6, 2026
07da6e8 to
577fbbc
Compare
<!-- markdownlint-disable MD041 --> Adds a new progress tracking and visualization package (`cli/internal/render/progress`) to provide user feedback during long-running operations like transfers. **Key components:** - **`progress.Tracker`** - Generic event tracker that consumes raw events from a channel, maps them to progress events, and forwards to a visualizer. Handles context cancellation automatically. - **`bar.barVisualizer`** - Terminal progress bar with scrolling log. Shows recent items with status icons (⏳ running, ✓ completed, ✗ failed) above a progress bar that updates in place. Displays error summary after completion. - **`simple.SimpleVisualizer`** - Minimal line-by-line output for non-interactive terminals or logging scenarios. - **Format utilities** - Tree-style error formatting and customizable item name formatters. - **Slog interception**: The default `slog` logger is replaced with a `bufferedHandler`, allowing the bar visualizer to drain the buffer on each render cycle and print log lines as permanent output above the animated progress bar. Once tracking is complete, the original logger is restored. - **Terminal detection**: automatic selection between bar (interactive) and simple (piped) visualizers. <!-- Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. --> Fixes: open-component-model/ocm-project#801 Signed-off-by: Piotr Janik <piotr.janik@sap.com> # Conflicts: # cli/go.mod # cli/go.sum # cli/integration/go.mod # cli/integration/go.sum
577fbbc to
6444298
Compare
<!-- markdownlint-disable MD041 --> Adds a new progress tracking and visualization package (`cli/internal/render/progress`) to provide user feedback during long-running operations like transfers. **Key components:** - **`progress.Tracker`** - Generic event tracker that consumes raw events from a channel, maps them to progress events, and forwards to a visualizer. Handles context cancellation automatically. - **`bar.barVisualizer`** - Terminal progress bar with scrolling log. Shows recent items with status icons (⏳ running, ✓ completed, ✗ failed) above a progress bar that updates in place. Displays error summary after completion. - **`simple.SimpleVisualizer`** - Minimal line-by-line output for non-interactive terminals or logging scenarios. - **Format utilities** - Tree-style error formatting and customizable item name formatters. - **Slog interception**: The default `slog` logger is replaced with a `bufferedHandler`, allowing the bar visualizer to drain the buffer on each render cycle and print log lines as permanent output above the animated progress bar. Once tracking is complete, the original logger is restored. - **Terminal detection**: automatic selection between bar (interactive) and simple (piped) visualizers. <!-- Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. --> Fixes: open-component-model/ocm-project#801 Signed-off-by: Piotr Janik <piotr.janik@sap.com>
jakobmoellerdev
approved these changes
Feb 9, 2026
Skarlso
approved these changes
Feb 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new progress tracking and visualization package (
cli/internal/render/progress) to provide user feedback during long-running operations like transfers.Key components:
progress.Tracker- Generic event tracker that consumes raw events from a channel, maps them to progress events, and forwards to a visualizer. Handles context cancellation automatically.bar.barVisualizer- Terminal progress bar with scrolling log. Shows recent items with status icons (⏳ running, ✓ completed, ✗ failed) above a progress bar that updates in place. Displays error summary after completion.simple.SimpleVisualizer- Minimal line-by-line output for non-interactive terminals or logging scenarios.Format utilities - Tree-style error formatting and customizable item name formatters.
Slog interception: The default
sloglogger is replaced with abufferedHandler, allowing the bar visualizer to drain the buffer on each render cycle and print log lines as permanent output above the animated progress bar. Once tracking is complete, the original logger is restored.Terminal detection: automatic selection between bar (interactive) and simple (piped) visualizers.
Fixes: open-component-model/ocm-project#801