Skip to content

docs: fix CHANGELOG version note, ARCHITECTURE DI claim, SECURITY CI claim - #410

Merged
laurentiu021 merged 1 commit into
mainfrom
docs/accuracy-fixes
May 15, 2026
Merged

laurentiu021 merged 1 commit into
mainfrom
docs/accuracy-fixes

Conversation

@laurentiu021

@laurentiu021 laurentiu021 commented May 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fixes documentation accuracy findings from the comprehensive code review.

Fixes

  • DOC-C2 — CHANGELOG: Added note explaining the non-monotonic version sequence (0.48.2 follows 0.53.1) due to the repository migration from SysManager to SystemManager.
  • DOC-M1 — ARCHITECTURE.md: Corrected claim that all services are DI-registered. Clarified that core services are registered while lightweight services are instantiated directly by consumers.
  • DOC-M2 — SECURITY.md: Corrected claim that CI runs the full test suite. Clarified that CI runs unit tests only; integration tests (which access real OS APIs) run locally.

Files changed (3)

CHANGELOG.md, ARCHITECTURE.md, SECURITY.md

Build

docs: commit — no code changes, no build impact.

…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)
@coderabbitai

coderabbitai Bot commented May 15, 2026 •

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This 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.

Changes

Documentation Updates

Layer / File(s) Summary
Dependency Injection documentation clarification
ARCHITECTURE.md
DI section clarifies that core services and view models are singletons for app lifetime, lightweight services are created directly by consumers, MainWindowViewModel resolves child view models at runtime, and tests use manual creation without DI.
Release history and version continuity note
CHANGELOG.md
Adds a note explaining releases 0.49.0–0.53.1 were published under the previous SysManager repository, and the SystemManager migration reset auto-release to v0.48.1, with subsequent releases continuing from 0.48.2.
Testing and CI policy clarification
SECURITY.md
"Dependencies and supply chain" section clarified: CI runs unit test suite on every pull request; integration tests using real OS APIs run locally only.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

A rabbit hops through docs so bright,
Clarifying DI, releases, and tests in sight—
Singletons sing, migrations aligned,
CI boundaries drawn with care in mind! 🐰✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly summarizes the three documentation fixes (CHANGELOG version note, ARCHITECTURE DI claim, SECURITY CI claim) which are the exact changes made across those three files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/accuracy-fixes

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 2e20e90 and ebbc521.

📒 Files selected for processing (3)
  • ARCHITECTURE.md
  • CHANGELOG.md
  • SECURITY.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 win

Documentation 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!

Comment thread ARCHITECTURE.md
Comment on lines +141 to +142
per app lifetime. Some lightweight services (e.g. `TuneUpService`,
`ShortcutCleanerService`) are instantiated directly by their consumers rather

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 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-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@laurentiu021
laurentiu021 merged commit da07366 into main May 15, 2026
5 checks passed
@laurentiu021
laurentiu021 deleted the docs/accuracy-fixes branch May 15, 2026 15:04
laurentiu021 added a commit that referenced this pull request May 22, 2026
…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>
laurentiu021 added a commit that referenced this pull request May 22, 2026
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>
laurentiu021 added a commit that referenced this pull request May 22, 2026
…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>
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.

2 participants