Repository navigation
Releases: w0wzahh/cleaner
Release list
v2.12.3
Duplicate scanning is now dramatically faster, and the results list no longer stalls on huge scans.
Improved
- Parallel duplicate detection — both hashing stages now run across all CPU cores (rayon) instead of one file at a time.
- Much faster hashing — the fingerprint pass uses xxh3 (first 8 KB + last 4 KB + size — catches files that share a header but diverge at the end) and the confirmation pass uses BLAKE3 (~10x faster than SHA-256 while remaining collision-safe for deletion).
- Fewer disk syscalls — file sizes come from the directory listing itself on Windows instead of a metadata call per file.
- A 12,000-file folder with 6,000 duplicate groups now scans in well under a second.
Fixed
- Duplicate results no longer freeze the app — the groups list rendered every group header every frame; with tens of thousands of groups the UI stalled out. It now renders only the visible slice (measured-height virtualization), and the sorted/filtered view is cached instead of rebuilt per frame.
Assets
- Cleaner-Setup-2.12.3.exe — installer (per-user, no admin)
- cleaner-v2.12.3-windows-x64.zip — portable
v2.12.2
A follow-up fix for the theme picker in the header.
Fixed
- Theme dropdown vertical alignment — the ComboBox still sat a few pixels below the neighboring buttons. It's now a regular button with a painted arrow and a popup menu underneath (the same API ComboBox uses internally), so it shares the exact widget path as the other header buttons — identical height, perfectly level.
Assets
- Cleaner-Setup-2.12.2.exe — installer (per-user, no admin)
- cleaner-v2.12.2-windows-x64.zip — portable
v2.12.1
Layout overhaul for every scan tab, plus a header alignment fix.
Improved
- Two-column scan pages — every cleaning tool now uses the same arrangement the pro tools do: setup options in a fixed-width left column (folder picker, filters, full-width scan button), results card filling the rest. Falls back to a single scrollable column on narrow windows.
- Results cards got structure — stat chips up top (files matched, reclaimable size, selection count), a filter/sort toolbar, the virtualized list filling the available height, and a footer action bar pinned to the bottom with Export on the left and the destructive action on the right.
- Storage tab — summary chips (drives / total / free) and a two-column drive grid on wide windows.
- System Cleaner gained an Export report button, matching the other tabs.
Fixed
- The theme dropdown in the header sat a few pixels low and its label rendered on the wrong side — the ComboBox now gets a centered child layout and reads "Theme: [picker] [Customize]".
Assets
- Cleaner-Setup-2.12.1.exe — installer (per-user, no admin)
- cleaner-v2.12.1-windows-x64.zip — portable
v2.12.0
UI polish round — a proper release-notes viewer, theme customization, and a redesigned About page.
Added
- GitHub-style What's New page — pick a version from the dropdown; each section (Added / Fixed / Improved / Removed) renders with GitHub's own label colors. "View on GitHub" links to the releases page.
- Theme customization — a "Customize" button next to the theme picker opens accent-color pickers (primary + secondary) and a UI-scale slider (75%–150%). Instant apply, persists across restarts.
- About page hero — the real app icon, version chip, quick links, and a two-column highlights grid.
Improved
- Accent overrides recolor the whole app — buttons, selections, links, progress bars, and the dashboard ring all follow the custom accent.
Assets
- Cleaner-Setup-2.12.0.exe — installer (per-user, no admin)
- cleaner-v2.12.0-windows-x64.zip — portable
v2.11.0
Second polish pass — startup integration, smarter duplicate selection, more interactive surfaces.
Added
- "Keep newest" / "Keep oldest" on the Duplicates tab — one click selects every duplicate except the newest (or oldest) copy in each group; the "keep" marker moves to the right file.
- "Run Cleaner when Windows starts" — per-user Run-key entry, no admin needed (new Startup card on the Dashboard).
- "Start minimized to the system tray" + a
--minimizedlaunch flag the startup entry uses. - Taskbar flash when a scan or clean finishes while the window isn't focused.
- Empty Folders gets a filter box + interactive rows; Folder Sizes bars reveal their folder on double-click/right-click.
- F5 rescans the current tab.
Improved
- Every tab's scan directory now persists across restarts.
- The confirm dialog states the delete mode — Recycle Bin vs permanent vs secure — so the stakes are visible at the decision point.
Assets
- Cleaner-Setup-2.11.0.exe — installer (per-user, no admin)
- cleaner-v2.11.0-windows-x64.zip — portable
v2.10.0
Polish pass — usability and quality-of-life improvements. No changes to delete logic.
Added
- Result rows are interactive — double-click any file/folder to reveal it in Explorer; right-click for a context menu (Copy path / Reveal in Explorer). Works on Custom Clean, Large Files, System Cleaner, and Empty Folders.
- Filter + sort on System Cleaner results — the last tab that was missing them.
- Copy button on the activity log — one click puts the log on your clipboard (handy for bug reports).
- Elapsed time in summaries — completion lines end with "(took 1.8s)".
- Status in window title + tray tooltip — "Cleaner — Scanning..." while busy.
Improved
- Custom Clean filters and the Large Files threshold now persist across restarts.
- "Select all" respects the active filter.
- Escape closes the confirm dialog.
- Activity log sticks to the bottom as new lines arrive.
- "Reveal in Explorer" highlights folders too, not just files.
Assets
- Cleaner-Setup-2.10.0.exe — installer (per-user, no admin)
- cleaner-v2.10.0-windows-x64.zip — portable
v2.9.9
Seventh full audit pass — every source file re-read end-to-end; this round was mostly polish, which is a good sign.
Fixed
- Duplicates and Empty Folders now have Export report buttons — the 2.4.0 changelog advertised export on all four result tabs, but only two had it. Duplicate groups export as file+size rows; empty folders use a new path-only report format.
- Empty Folders results list is virtualized — thousands of entries no longer cost a layout pass each.
Tests
- 3 new unit tests (path normalization, prepped excludes, size round-trip) — 13 total, all passing.
Assets
- Cleaner-Setup-2.9.9.exe — installer (per-user, no admin)
- cleaner-v2.9.9-windows-x64.zip — portable
v2.9.8
Sixth full audit pass — a real hot-path fix for history logging, secure-delete edge cases, and CLI hardening.
Fixed
- History log is now written in batches — every log line used to open + append the file individually, so a 50k-file clean did 50k file opens on the UI thread. Now queued and flushed once per frame.
- Secure delete can be cancelled mid-file — a large file used to block Cancel through all 3 passes. A cancelled shred leaves the file on disk (not deleted) and reports Cancelled.
- Secure delete uses the long-path delete — >260-char files used to get shredded but then fail the final delete.
- Duplicate system targets are skipped — %TEMP% and %LOCALAPPDATA%\Temp are the same folder; scanning it twice is wasted work.
- CLI no longer panics on non-UTF8 args;
--flag --flagcan't swallow the next flag; new--excludeflag for custom scans. - "Big media" preset no longer leaks a stale age filter.
Performance
- Hidden-file detection reuses walkdir's entry metadata — no per-file stat syscall.
Assets
- Cleaner-Setup-2.9.8.exe — installer (per-user, no admin)
- cleaner-v2.9.8-windows-x64.zip — portable
v2.9.7
Fifth full audit pass — transient-delete retries, settings robustness, and UI performance on very large scans.
Fixed
- Deletes now retry briefly on transient lock errors (ACCESS_DENIED / SHARING_VIOLATION / DIR_NOT_EMPTY) — the AV-scanner/indexer race that used to surface as failed deletions. Same pattern Chromium's installer and SQLite use.
- All settings fields now carry defaults — an older settings file can no longer be discarded as corrupt for missing a newer key.
explorer /selectquoting handles paths with commas/spaces.- "Locate" in Large Files selects the file itself instead of opening its parent folder.
- Schedule-interval label reports hand-edited values honestly.
Performance
- Exclusion lists are normalized once per scan instead of once per file.
- Result lists are virtualized — only visible rows are laid out, so scans matching tens of thousands of files stay smooth.
Assets
- Cleaner-Setup-2.9.7.exe — installer (per-user, no admin needed)
- cleaner-v2.9.7-windows-x64.zip — portable (cleaner.exe + README + LICENSE)
v2.9.6
Fourth audit pass — filesystem edge cases researched against upstream issues. Fixed: permanent deletes now retry via the \?\ verbatim path (files deeper than 260 chars / reserved names); embedded app manifest with longPathAware + supportedOS; protected paths with \?\ prefixes now match; path-form globs are case-insensitive; Images and Old Downloads presets no longer inherit stale filters; deterministic duplicate-group ordering; duplicate scans prune excluded dirs instead of walking them; dirent file-type instead of per-entry stat; atomic settings saves; custom-target dedupe + existence check; Reveal settings file actually reveals in Explorer.