Repository navigation
docs: fix CHANGELOG version note, ARCHITECTURE DI claim, SECURITY CI claim - #410
Conversation
…claim - DOC-C2: Add note explaining non-monotonic version sequence (repo migration) - DOC-M1: ARCHITECTURE.md clarifies not all services are DI-registered - DOC-M2: SECURITY.md clarifies CI runs unit tests only (not integration)
📝 WalkthroughWalkthroughThis PR updates three documentation files to clarify design patterns and policies. ARCHITECTURE.md clarifies DI singleton behavior and test patterns; CHANGELOG.md notes version continuity across a repository migration; SECURITY.md specifies CI runs unit tests only while integration tests run locally. ChangesDocumentation Updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 `@ARCHITECTURE.md`:
- Around line 141-142: The doc claim that TuneUpService and
ShortcutCleanerService are instantiated directly is incorrect; both are
registered as singletons in ServiceRegistration.cs via
services.AddSingleton<TuneUpService>() and
services.AddSingleton<ShortcutCleanerService>(). Update ARCHITECTURE.md to
either remove the sentence implying those two are instantiated directly or
replace the examples with services that truly are created by consumers (locate
services not present in ServiceRegistration.cs and reference those instead), and
ensure the text aligns with the DI registrations such as
AddSingleton<TuneUpService>() and AddSingleton<ShortcutCleanerService>().
🪄 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: 0921245f-2cd4-45a7-b758-bc3645ffff90
📒 Files selected for processing (3)
ARCHITECTURE.mdCHANGELOG.mdSECURITY.md
📜 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 (2)
SECURITY.md (1)
116-117: ⚡ Quick winDocumentation claims are accurate and verified.
The CI configuration and test structure confirm the stated security policy: CI runs only unit tests on every pull request, while integration tests accessing real OS APIs are reserved for local execution.
CHANGELOG.md (1)
425-429: LGTM!
| per app lifetime. Some lightweight services (e.g. `TuneUpService`, | ||
| `ShortcutCleanerService`) are instantiated directly by their consumers rather |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check if ShortcutCleanerService exists in the codebase
# Search for ShortcutCleanerService class definition
rg -nP --type=cs -C3 '\bclass\s+ShortcutCleanerService\b'
# If not found, check for any references to ShortcutCleanerService
if [ $? -ne 0 ]; then
echo "--- No class definition found, checking for any references ---"
rg -n --type=cs 'ShortcutCleanerService'
fi
# Also check what services are actually instantiated directly (not registered in DI)
echo "--- Checking ServiceRegistration.cs for registered services ---"
fd -t f 'ServiceRegistration.cs' --exec cat {}Repository: laurentiu021/SystemManager
Length of output: 3723
The architectural claim is incorrect: both TuneUpService and ShortcutCleanerService are registered in the DI container as singletons.
The documentation states these are "lightweight services instantiated directly by their consumers rather" than registered in DI. However, ServiceRegistration.cs shows both services are registered with AddSingleton<>():
services.AddSingleton<TuneUpService>();services.AddSingleton<ShortcutCleanerService>();
Either identify services that are actually instantiated directly (not in ServiceRegistration.cs) and use those as examples, or remove this claim entirely if all services are DI-registered.
🤖 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 `@ARCHITECTURE.md` around lines 141 - 142, The doc claim that TuneUpService and
ShortcutCleanerService are instantiated directly is incorrect; both are
registered as singletons in ServiceRegistration.cs via
services.AddSingleton<TuneUpService>() and
services.AddSingleton<ShortcutCleanerService>(). Update ARCHITECTURE.md to
either remove the sentence implying those two are instantiated directly or
replace the examples with services that truly are created by consumers (locate
services not present in ServiceRegistration.cs and reference those instead), and
ensure the text aligns with the DI registrations such as
AddSingleton<TuneUpService>() and AddSingleton<ShortcutCleanerService>().
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…w close (#417) ## What changed ### Problem ViewModels implement IDisposable (via ViewModelBase) and several override Dispose(bool) to clean up resources, but nobody ever called Dispose(). When the window closed, timers kept running, event handlers leaked, and CancellationTokenSources were never disposed. ### Fix - **NetworkViewModel**: added Dispose override — stops pinger, unsubscribes events, disposes CTS - **NetworkSharedState**: added IDisposable — stops pinger, trace monitor, flush timer - **MainWindowViewModel**: added IDisposable — disposes ALL child ViewModels + NetworkSharedState - **MainWindow.xaml.cs**: added OnClosed — calls Dispose on the ViewModel ### Dispose chain Window.OnClosed → MainWindowViewModel.Dispose() → each ChildVM.Dispose() + NetworkSharedState.Dispose() ### Files changed - MainWindow.xaml.cs - ViewModels/MainWindowViewModel.cs - ViewModels/NetworkViewModel.cs - ViewModels/NetworkSharedState.cs Closes #395, closes #410 Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
Adds CHANGELOG entries for all 9 releases from the QA bug fix session: - **v0.28.16** — Dispose lifecycle (#395, #410) - **v0.28.17** — CTS disposal + bare catch (#396, #413) - **v0.28.18** — Input validation + null checks (#397, #398) - **v0.28.19** — JSON error handling (#400) - **v0.28.20** — Drive scanning + cache eviction + ConfigureAwait (#401, #402, #403) - **v0.28.21** — Audit logging + error messages (#405, #407) - **v0.28.22** — SHA256 verification (#408, #409) - **v0.28.23** — Service timeout + snapshot persist + traceroute DNS (#414, #415, #416) - **v0.28.24** — Accessibility (#411) 18 bugs fixed in total. Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
…claim (#410) - DOC-C2: Add note explaining non-monotonic version sequence (repo migration) - DOC-M1: ARCHITECTURE.md clarifies not all services are DI-registered - DOC-M2: SECURITY.md clarifies CI runs unit tests only (not integration) Co-authored-by: laurentiu021 <laurentiu021@users.noreply.github.com>
Summary
Fixes documentation accuracy findings from the comprehensive code review.
Fixes
Files changed (3)
CHANGELOG.md, ARCHITECTURE.md, SECURITY.md
Build
docs: commit — no code changes, no build impact.