WinCleaner v0.7.0
Added
-
Added a native rule for per-user Windows Error Reporting reports.
windows.wer-reportsclears%LOCALAPPDATA%\Microsoft\Windows\WER\ReportQueue
andReportArchive— the crash reports Windows queues and archives for this
user, regenerated on the next crash and not user data. The machine-wide
%ProgramData%\Microsoft\Windows\WER\*store is out of scope: no allowed
variable resolves there.risk = medium,default_checked = false, same
category and voice aswindows.crash-dumps. -
The interface speaks English and French. Every string the application
writes itself now goes through a small typed dictionary (src/i18n/en.ts,
src/i18n/fr.ts, keys typed from the English one, so a missing translation
failstsc): labels, buttons, toasts, the confirmation, the progress lines,
the sandbox banner and every accessibility string. Settings gains a Language
selector — System, English, Français — that followsnavigator.language
until it is touched, applies without a reload, is remembered in
localStoragebeside the theme and the update-check consent, and sets
document.documentElement.lang. Sizes and counters are formatted for the
locale (1.5 KB/1,5 Ko). What stays English whatever the setting: the
rule labels and descriptions, which come fromrules.tomland from Winapp2,
the "What's new" body extracted fromCHANGELOG.md, the release notes
GitHub returns, and this changelog.
Changed
-
Analyze scans its rules concurrently instead of one after another.
commands::scan_rules_withused to walk the 84 rules of a full catalogue in
a straight loop, so the wall time was their sum — dominated by a couple of
slow ones (the Winapp2 catch-all, and the Recycle Bin's own OS call). It now
runs them on a small worker pool (std::thread::scope, sized to
available_parallelismcapped at 8), each rule scanned by the exact same
scan::scan_rule/scan_rule_with_apifunction as before.scan_bench
(cargo run --release --example scan_benchinsrc-tauri), on this machine:
26s cold / 17s warm before, 11.2s cold / 7.3s warm after — the warm run now
lands almost exactly on the slowest single rule (7.3s total against a 7.3s
Recycle Bin query) instead of their sum. Thescan-progressevent still
fires once per rule with a running byte total, but the order it arrives in
now follows completion rather than catalogue order; the result list handed
back to the front end is unaffected, since it is reassembled by index after
every rule finishes. -
Measured the Recycle Bin batching gain: about 2.6x. The new opt-in
benchmark (cargo run --release --example trash_benchinsrc-tauri)
creates its own fixture files and times both strategies on this machine: one
trash::deleteper file ran at 77-80 files/s, matching the ~75 files/s seen
on the real 77,000-file run that motivated the batching change; batches of
500 throughtrash::delete_allran at about 205 files/s, a 2.5x-2.7x
speed-up depending on fixture size (2,000 and 5,000 files tested).
Installers are unsigned until SignPath signing is configured in the repository secrets — see docs/code-signing.md.
Full changelog: https://github.com/CaseReed/wincleaner/blob/main/CHANGELOG.md