You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Download](https://github.com/TMHSDigital/system-cleaner/releases) | [Architecture](#system-architecture) | [Build from source](#build-from-source) | [Contributing](docs/CONTRIBUTING.md)
29
+
[Download](https://github.com/TMHSDigital/system-cleaner/releases) | [Architecture](docs/ARCHITECTURE.md) | [Build from source](#build-from-source) | [Contributing](docs/CONTRIBUTING.md)
30
30
31
31
</div>
32
32
33
-
<br>
34
-
35
33
---
36
34
37
-
<br>
38
-
39
-
### What it does
35
+
## What it does
40
36
41
37
| Module | Capabilities |
42
38
|:-------|:-------------|
43
-
|**Dashboard**|Compute a real-time health score (0-100). Visualize drive capacity, RAM usage, and surface a one-click **Quick Clean** that only touches safe items. |
44
-
|**Disk Cleanup**|Scan temp files, browser caches, crash dumps, dev caches, and the recycle bin. Tag every item with a color-coded risk level before deletion. |
45
-
|**Memory**|Monitor live RAM pressure. Detect runaway processes, Hyper-V VMs, and WSL instances. Kill non-system processes directly from the panel. |
46
-
|**Startup**|Toggle startup entries on/off via registry and shell folders. Display impact ratings (High / Medium / Low) and recommended-to-disable flags. |
47
-
|**Recommendations**|Generate contextual tips (e.g. *"Pagefile is on a full drive"*) and expose a **Fix It** action that navigates to the responsible panel. |
39
+
|**Overview**|Desktop-style summary shell with health score, reclaimable space, memory pressure, startup load, and capacity tracking. |
40
+
|**Disk Cleanup**|Review workflow for temp files, browser caches, crash dumps, Windows Update leftovers, and developer caches. Filtering never mutates selection. |
41
+
|**Memory**|Inspector for RAM pressure, top memory consumers, grouped process table, VM inventory, and problem-process heuristics. |
42
+
|**Startup**|Grouped startup manager with impact tiers, recommendation badges, and reversible enable/disable switches. |
43
+
|**Recommendations**|Priority-sorted action queue with direct navigation into the relevant screen. |
48
44
49
-
<br>
45
+
## UI architecture
50
46
51
-
### Safety model
47
+
The current frontend is built around a labeled nav rail, per-screen command bars, shared UI primitives, and screen hooks:
48
+
49
+
-`App.tsx` is a thin composition layer that switches tabs and renders the shell.
50
+
-`src/components/ErrorBoundary.tsx` catches render crashes and shows a styled recovery screen.
51
+
-`src/components/layout/` contains shell-level pieces such as the nav rail.
52
+
-`src/components/ui/` contains reusable cards, rows, badges, buttons, progress bars, tooltips, and loading/empty states.
53
+
-`src/hooks/` owns screen data and side effects so the screen components stay mostly presentational.
54
+
55
+
Every screen explicitly handles loading, empty, error, and healthy states. Hooks expose an `error` field so screens can render retry surfaces instead of silently dropping failures.
56
+
57
+
## Safety model
52
58
53
59
> [!IMPORTANT]
54
-
> No files are deleted without explicit user confirmation. Every cleanable item is displayed with its full pathand risk classification before any action is taken.
60
+
> Cleanup always stays review-first. Every target is listed with a path, category, size, and risk level before deletion.
55
61
56
62
| Risk | Policy |
57
63
|:-----|:-------|
58
-
|**Safe**| Temp files, caches, crash dumps. Regenerated automatically. Quick Clean only touches this tier. |
59
-
|**Moderate**| Dev caches (npm, pip, cargo), Windows Update files. Re-downloaded on demand. Requires manual selection. |
60
-
|**Advanced**| Reserved for future surface area. Will require explicit opt-in confirmation. |
61
-
62
-
> [!CAUTION]
63
-
> Locked files are silently skipped. System-critical processes are protected and cannot be killed from the Memory panel.
64
+
|**Safe**| Temp files, caches, crash dumps, and similar data that can be regenerated automatically. Quick Clean only uses this tier. |
65
+
|**Moderate**| Developer caches and Windows Update leftovers that can be re-downloaded or rebuilt later. These require explicit selection. |
66
+
|**Advanced**| Reserved for future cleanup targets. The filter exists in the UI today, but the current backend does not emit Advanced items. |
64
67
65
-
Full policy documented in [`docs/SAFETY.md`](docs/SAFETY.md).
68
+
Additional guarantees:
66
69
67
-
<br>
70
+
- Safe items are preselected in Disk Cleanup.
71
+
- Switching filters does not change the current selection.
72
+
- Quick Clean on the Overview screen only submits Safe items.
73
+
- System processes stay protected in the Memory screen.
74
+
- Startup changes are reversible because they only change launch-on-sign-in behavior.
68
75
69
-
---
76
+
Full policy: [`docs/SAFETY.md`](docs/SAFETY.md)
70
77
71
-
<br>
78
+
## Install
72
79
73
-
### Install
80
+
Grab the latest build from [Releases](https://github.com/TMHSDigital/system-cleaner/releases).
74
81
75
-
Grab the latest build from [**Releases**](https://github.com/TMHSDigital/system-cleaner/releases):
> Admin elevation is requested on launch. Required for accessing system temp directories, enumerating all processes, and managing startup registry keys.
88
+
> Admin elevation is requested on launch because the app reads protected temp locations, enumerates system processes, and manages startup entries.
npm run tauri:build # production build → src-tauri/target/release/bundle/
99
+
npm run dev # browser preview with mock API data
100
+
npm run tauri:dev # real desktop app with Rust backend + hot reload
101
+
npm run tauri:build # production bundle
97
102
```
98
103
99
-
<br>
104
+
## Development modes
100
105
101
-
---
106
+
| Command | Mode | Notes |
107
+
|:--------|:-----|:------|
108
+
|`npm run dev`| Browser preview | Uses `src/lib/mockApi.ts` when Tauri runtime is unavailable. Useful for UI iteration and browser automation. |
109
+
|`npm run tauri:dev`| Real desktop app | Uses the real Rust backend via Tauri `invoke()` calls. Use this before shipping cleanup, memory, or startup changes. |
110
+
|`npm run tauri:build`| Production build | Outputs installers and release binaries under `src-tauri/target/release/bundle/`. |
PRs welcome. See [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for environment setup, code style, and how to add new cleanup targets or recommendation rules.
212
-
213
-
<br>
223
+
PRs are welcome. Start with [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for setup, workflow, and validation guidance.
0 commit comments