Skip to content

WinCleaner v0.6.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 23:08

Fixed

  • The browser warning now tells the truth about background processes. Closing every
    Chrome window is not enough when "Continue running background apps" is on; the
    banner used to say the browser was open. It now names the browser, counts its
    processes, distinguishes a visible window from background-only processes, and
    is refreshed every time Analyze is clicked. Closes #5.

Added

  • The Clean has a progress bar of its own. Cleaning used to be a disabled
    button reading "Cleaning…" for as long as the work took — thirteen minutes on
    a measured run. clean now emits clean-progress as each rule closes and
    every 500 files inside a rule, and the hero draws the same determinate bar as
    Analyze: "Cleaning 3 / 9 · Temporary files", with the freed bytes and the
    file count ticking up in the big-number position. The live region follows the
    rules, not the files, so a rule deleting 59,000 of them is not read out a
    hundred times over.

Changed

  • Recycle Bin mode is far faster: files go to the bin 500 at a time. Each
    trash::delete is one IFileOperation, and its fixed cost — COM plumbing,
    the shell's own progress reporting, one undo record — is what dominates a bin
    full of small files: a real run measured about 75 files/s, so 59,000 files
    took thirteen minutes. One trash::delete_all per batch of 500 divides that
    by the batch. The deletable_path guard still runs per file, immediately
    before the file joins its batch, and a batch the shell refuses is retried one
    file at a time so skipped still names exactly what is still on disk.
    Permanent mode is unchanged: one remove_file per file.

  • Keyboard and screen-reader pass over the whole interface. The sidebar is
    a named Main landmark with a roving tabindex — the arrow keys, Home and
    End move between the three screens, and it costs one Tab press to get past
    instead of three; the theme toggle states which theme is on, not only what
    the next press does. On Cleanup, each category header names the rows it
    folds, each "Show the paths" names its rule and opens a named region, and the
    confirmation takes the focus when it appears, cancels on Escape and hands
    the focus back to the Clean button. The scan announces itself every ten rules
    and on completion — not on every rule, which would be hundreds of
    interruptions — and the cleanup report, the sandbox verdict and the sandbox
    banner announce themselves too. The reclaim gauge states its total and its
    three largest rules in words. The startup table is named and every row toggle
    reports its outcome. Nothing moved on screen: no layout, no wording, no test
    id changed.

  • Two measured contrast failures fixed. The focus ring on the controls that
    carry no border — sidebar entries, category headers, paths triggers, the
    search field, the mode selector — was drawn at half opacity (1.66:1 against
    the card in the light theme) and is now solid (4.87:1). The Clean and Confirm
    buttons wrote --destructive on a wash of itself: 4.11:1 light, 3.75:1 dark,
    2.87:1 hovered, all under the 4.5:1 body text asks for. A new
    --destructive-foreground token takes the worst case to 4.71:1 with the
    fills untouched. Everything else measured clean, --muted-foreground
    included (5.11:1 to 6.42:1 on every surface, both themes), and
    src/theme-contrast.test.ts recomputes all of it from the stylesheet so the
    next nudge to a colour fails in CI.

  • prefers-reduced-motion is now honoured app-wide, the shadcn transitions
    and the loading spinners included, by one rule in the base layer rather than
    a class to remember on each element.

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