Implement and refine progress tracking with HarmonyProgressReporter#77
Draft
hahn-kev wants to merge 5 commits into
Draft
Implement and refine progress tracking with HarmonyProgressReporter#77hahn-kev wants to merge 5 commits into
hahn-kev wants to merge 5 commits into
Conversation
- Added HarmonyProgress record struct to SIL.Harmony.Core. - Updated ISyncable interface and DataModel to support IProgress<HarmonyProgress>. - Implemented progress reporting in SnapshotWorker by change count. - Added ProgressTests to verify the implementation. Co-authored-by: hahn-kev <4575355+hahn-kev@users.noreply.github.com>
- Introduced SyncStage enum in Core. - Refactored HarmonyProgress to use SyncStage and nullable counts. - Added HarmonyDetailedProgress for rich progress reporting. - Introduced HarmonyProgressReporter wrapper to support multiple IProgress<T> types and avoid unnecessary string allocations. - Updated ISyncable, DataModel, SyncHelper, and SnapshotWorker to use the new reporter. - Added comprehensive tests for simple and detailed progress. Co-authored-by: hahn-kev <4575355+hahn-kev@users.noreply.github.com>
- Added Finished stages to SyncStage enum. - Refactored HarmonyProgressReporter to use named methods (e.g., ReportStartApplyingChanges, ReportApplyingChange). - Implemented internal status string generation to avoid unnecessary allocations. - Updated SnapshotWorker and SyncHelper call sites. - Added and verified tests for the new specialized methods and stages. Co-authored-by: hahn-kev <4575355+hahn-kev@users.noreply.github.com>
- Refactored HarmonyProgressReporter to calculate total changes from IEnumerable<Commit>. - Added UploadingChanges and UploadingChangesFinished stages to SyncStage enum. - Integrated uploading changes reporting in SyncHelper (SyncWith and SyncMany). - Updated SnapshotWorker to use the refined ReportStartApplyingChanges. - Verified all changes with updated ProgressTests. Co-authored-by: hahn-kev <4575355+hahn-kev@users.noreply.github.com>
- Updated ReportStartApplyingChanges to only calculate total change count if a progress listener is present. - Verified all progress tracking stages (downloading and uploading) in tests. - Finalized specialized methods for reporting stages. Co-authored-by: hahn-kev <4575355+hahn-kev@users.noreply.github.com>
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
We would like to be able to get more detail info about how a sync is going, this PR implements a progress reporter for use when syncing changes