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
Release v0.8.1: UX polish + WizTree-speed disk analyzer
Startup overlay:
- Replace the indeterminate spinner with a live percentage readout
(42pt) and a determinate progress bar bound to a shared step counter.
- Each of the 11 parallel scanners ticks the overall progress as it
finishes, so the user sees real movement instead of a spinning ring.
Disk Analyzer:
- New FastDiskAnalyzer uses WizTree's technique: open the volume with
CreateFile(\.\C:, FILE_READ_DATA | FILE_READ_ATTRIBUTES), enumerate
every file via FSCTL_ENUM_USN_DATA in one sequential pass, then pull
sizes in a single FSCTL_GET_NTFS_FILE_RECORD pass that parses the
\$STANDARD_INFORMATION + \$DATA attributes inline.
- Reconstructs absolute paths by walking the ParentFRN chain up to the
NTFS root FRN (0x5).
- Non-NTFS and permission-failure fallback: parallel FindFirstFileExW
with FIND_FIRST_EX_LARGE_FETCH and FindExInfoBasic. Still materially
faster than Directory.EnumerateFiles because the large-fetch flag
streams more entries per syscall and we skip the 8.3 short-name lookup.
- Scan time appears in the status bar.
Registry Hunter:
- Parallel fan-out across HKLM, HKLM\WOW6432Node, HKCU, and HKCR on
independent worker tasks with a ConcurrentBag sink.
- Scope filter (Keys / Value names / Value data) — lifted from NirSoft
RegScanner — so a CLSID hunt doesn't get drowned in install-path data
matches and vice versa.
- Optional compiled regex pattern (RegexOptions.Compiled | IgnoreCase
with 1s match timeout). Falls back to substring if the pattern won't
compile.
- Live hit counter streams to the UI every 32 matches.
- Struct-based matcher avoids per-call delegate-invocation overhead in
the hot recursion path.
Uninstall flow:
- Successful single-program uninstalls now remove the row from the
Programs list immediately instead of leaving stale entries. A full
registry rescan remains behind the Refresh button for cases where an
uninstaller lies.
Version:
- 0.8.0 -> 0.8.1 synced across csproj x2, manifest, README, XAML,
BUILD.bat, Build.ps1, CHANGELOG.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,16 @@
2
2
3
3
All notable changes to DeepPurge will be documented in this file.
4
4
5
+
## [v0.8.1] — UX polish + WizTree-speed disk analyzer
6
+
7
+
### Added
8
+
-**Startup shows a real percentage** — the spinning circle on the loading screen is replaced by a big live "N%" readout plus a determinate progress bar. Each of the 11 scan phases ticks the bar as it finishes so the user can see what's happening instead of just a looping animation.
9
+
-**Disk Analyzer now uses WizTree's MFT technique** — new `FastDiskAnalyzer` reads the raw NTFS `$MFT` via `FSCTL_ENUM_USN_DATA` in one sequential sweep, then pulls sizes in a single `FSCTL_GET_NTFS_FILE_RECORD` pass. One warm volume handle replaces millions of random-seek `FindFirstFile` calls. Non-NTFS volumes fall back to a parallel `FindFirstFileExW` walk with the `FIND_FIRST_EX_LARGE_FETCH` hint and `FindExInfoBasic` (skips the 8.3 short-name lookup) — still materially faster than `Directory.EnumerateFiles`. Scan time appears in the status bar.
10
+
-**Registry Hunter rewritten along NirSoft RegScanner / Eric Zimmerman lines** — now scans HKLM, HKLM\\WOW6432Node, HKCU, and HKCR in parallel; adds a scope filter (Keys / Value names / Value data); adds optional compiled regex for pattern matching; streams a live hit counter to the UI every 32 matches. Same hit / depth / time caps as before so unbounded searches can't melt the process.
11
+
12
+
### Fixed
13
+
-**Uninstalled programs now disappear from the list immediately** after a successful uninstall. No need to hit Refresh to see the row go away; the underlying engine still honours the registry on rescan so broken-uninstaller cases don't pretend to succeed.
14
+
5
15
## [v0.8.0] — Competitive feature pass
6
16
7
17
Research-driven feature pass inspired by BCUninstaller, Revo Uninstaller, BleachBit, PrivaZer, and Sysinternals Autoruns.
A thorough, open-source Windows uninstaller that goes deep. Removes programs completely, hunts down every leftover, and cleans system cruft that other tools miss.
16
16
@@ -31,7 +31,7 @@ A thorough, open-source Windows uninstaller that goes deep. Removes programs com
-**Evidence Remover** - Recent documents, jump lists, thumbnail cache, clipboard, DNS cache, Explorer history, Windows logs, crash reports, error reports, font cache, delivery optimization cache
33
33
-**Empty Folders** - Scan common locations for empty directory trees and remove them
34
-
-**Disk Analyzer** - Folder size breakdown and large file finder (50MB+) with delete capability
34
+
-**Disk Analyzer** - Folder size breakdown and large file finder (50MB+) with delete capability. Uses WizTree's raw-MFT technique (`FSCTL_ENUM_USN_DATA` + `FSCTL_GET_NTFS_FILE_RECORD`) on NTFS volumes; parallel `FindFirstFileExW(FIND_FIRST_EX_LARGE_FETCH)` fallback on ReFS/FAT32. Typical full-drive scan in seconds.
35
35
-**Dry-run / Preview mode** - Every destructive pipeline can be previewed: enumerate and size items without touching them *(inspired by BleachBit)*
36
36
-**Secure Delete** - Privacy-grade wipe (single-pass cryptographic random + opaque rename + delete — multi-pass DoD wipes are obsolete on SSDs and deliberately omitted) *(inspired by BleachBit/PrivaZer)*
37
37
-**Live progress bars** - Every long-running delete reports item / total / bytes-freed / current path in the status bar
@@ -43,7 +43,7 @@ A thorough, open-source Windows uninstaller that goes deep. Removes programs com
43
43
-**Context Menu Cleaner** - Find and remove orphaned shell context menu entries with broken executables or CLSIDs
44
44
-**Services Manager** - View all Windows services, identify orphaned services pointing to deleted executables, disable or delete
45
45
-**Scheduled Tasks** - Full task inventory with orphan detection, disable and delete capabilities
46
-
-**Registry Hunter** - Arbitrary-substring search across HKLM / HKCU / HKCR with depth, hit, and time caps *(inspired by Revo's trace scanner)*
46
+
-**Registry Hunter** - Parallel substring or regex search across HKLM, HKLM\\WOW6432Node, HKCU, and HKCR with scope filters (keys / names / data), live hit counter, and depth / hit / time caps *(inspired by NirSoft RegScanner and Eric Zimmerman's Registry Explorer)*
47
47
48
48
### Safety
49
49
-**System Restore Points** - View, create, and manage restore points
0 commit comments