fix: address 4 medium-priority findings (PERF-005/007, CI-001, TEST-005)#298
Conversation
PERF-005: ConsoleViewModel — remove from index 0 forward (correct O(n) trim) PERF-007: ProcessManagerViewModel — icon extraction on background thread CI-001: auto-release — handle breaking changes (feat!/fix!) with major bump TEST-005: ci.yml — annotate UI test failures as warnings on PRs
📝 WalkthroughWalkthroughThis PR bundles v0.50.0 release changes: workflow updates enable proper semantic versioning for breaking-change commits and visible CI test failures; ViewModels receive performance optimizations for console line trimming and background process enrichment; release notes document all changes. Changesv0.50.0 Release: Infrastructure and Performance Improvements
Sequence DiagramsequenceDiagram
participant RefreshAsync
participant MainThread
participant BackgroundThread as Task.Run
participant ProcessList as Processes
RefreshAsync->>BackgroundThread: Snapshot and enrich processes<br/>(icons, descriptions, categories, safety)
BackgroundThread->>BackgroundThread: Process enrichment loop
BackgroundThread-->>MainThread: Enrichment complete
MainThread->>ProcessList: Clear and repopulate from enriched snapshot
MainThread->>MainThread: ApplyFilter() and update status
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@CHANGELOG.md`:
- Around line 12-13: Update the CHANGELOG entry for ConsoleViewModel (PERF-005)
to remove the explicit "fix O(n²)" complexity claim and instead describe the
behavioral change: state that trimming now removes oldest entries first instead
of repeatedly removing from index 0, improving trimming behavior and avoiding
the previous inefficient removal pattern; mention ConsoleViewModel and PERF-005
so the edit is easy to locate.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: f2d90c5c-e47f-4337-81a4-dcd26cf2b20f
📒 Files selected for processing (5)
.github/workflows/auto-release.yml.github/workflows/ci.ymlCHANGELOG.mdSysManager/SysManager/ViewModels/ConsoleViewModel.csSysManager/SysManager/ViewModels/ProcessManagerViewModel.cs
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Build & unit tests
- GitHub Check: Analyze (csharp)
🔇 Additional comments (4)
SysManager/SysManager/ViewModels/ConsoleViewModel.cs (1)
41-45: LGTM!SysManager/SysManager/ViewModels/ProcessManagerViewModel.cs (1)
55-59: LGTM!Also applies to: 62-82
.github/workflows/ci.yml (1)
107-107: LGTM!Also applies to: 115-118
.github/workflows/auto-release.yml (1)
38-44: LGTM!Also applies to: 70-74
| - **Performance: ConsoleViewModel** — fix O(n²) trim by removing from index 0 | ||
| forward instead of reverse-order removal (PERF-005). |
There was a problem hiding this comment.
Correct the complexity claim wording.
Line 12 says this change “fix[es] O(n²),” but removing from index 0 repeatedly is still O(n) per removal and can still be quadratic for larger trims. Please adjust the release note to describe the behavioral fix (oldest-first trimming) without claiming an O(n²) elimination.
Suggested wording
-- **Performance: ConsoleViewModel** — fix O(n²) trim by removing from index 0
- forward instead of reverse-order removal (PERF-005).
+- **Performance: ConsoleViewModel** — fix trim order to remove oldest lines
+ first (index 0), preserving the most recent output (PERF-005).📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Performance: ConsoleViewModel** — fix O(n²) trim by removing from index 0 | |
| forward instead of reverse-order removal (PERF-005). | |
| - **Performance: ConsoleViewModel** — fix trim order to remove oldest lines | |
| first (index 0), preserving the most recent output (PERF-005). |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@CHANGELOG.md` around lines 12 - 13, Update the CHANGELOG entry for
ConsoleViewModel (PERF-005) to remove the explicit "fix O(n²)" complexity claim
and instead describe the behavioral change: state that trimming now removes
oldest entries first instead of repeatedly removing from index 0, improving
trimming behavior and avoiding the previous inefficient removal pattern; mention
ConsoleViewModel and PERF-005 so the edit is easy to locate.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
## Summary Removes all references to MemTest86, an external third-party tool. SysManager should not depend on or reference external tools that users need to download separately. ## Changes - **SystemHealthView.xaml**: Removed the MemTest86 button from the memory section - **SystemHealthViewModel.cs**: Removed the \OpenMemTest86\ command (opened browser to memtest86.com) - **MemoryTestService.cs**: Removed doc comment referencing MemTest86 - **EventExplainer.cs**: Replaced MemTest86 mention in memory error advice with generic guidance - **README.md**: Removed MemTest86 from the System Health features list - **Tests**: Removed \OpenMemTest86Command\ assertions from unit and integration tests ## Testing - Build: 0 errors (main project + tests) - Windows Memory Diagnostic button still works (unaffected) - Check memory errors button still works (unaffected) Closes #271 Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
…05) (#298) PERF-005: ConsoleViewModel — remove from index 0 forward (correct O(n) trim) PERF-007: ProcessManagerViewModel — icon extraction on background thread CI-001: auto-release — handle breaking changes (feat!/fix!) with major bump TEST-005: ci.yml — annotate UI test failures as warnings on PRs Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
PERF-005: ConsoleViewModel O(n) trim fix. PERF-007: ProcessManager icon extraction off UI thread. CI-001: auto-release handles breaking changes (major bump). TEST-005: UI test failure annotations. Build: 0 errors.
Summary by CodeRabbit
Bug Fixes
Improvements