Skip to content

Releases: pwnapplehat/BitBroom

v1.2.6

Choose a tag to compare

@github-actions github-actions released this 04 Sep 07:17

Full Changelog: v1.2.5...v1.2.6

BitBroom 1.2.5

Choose a tag to compare

@pwnapplehat pwnapplehat released this 17 Jul 05:51

Fixes the Compact WSL / Docker disks tool's behavior when Docker Desktop is running. See CHANGELOG.

Fixed

  • No more raw diskpart errors on Docker's disks. Docker Desktop keeps its vhdx files attached while it runs — it re-attaches them (and restarts WSL-integrated distros) seconds after wsl --shutdown, so diskpart always lost the "file in use" race. The tool now detects a running Docker Desktop, skips the disks it keeps locked with clear guidance, and exits cleanly — skips are not failures.
    • To include Docker's disks: quit Docker Desktop (tray whale icon → Quit Docker Desktop), then run the tool again.
    • Tip: docker system prune frees space inside Docker's disk; compaction shrinks the disk file itself.
  • One automatic retry (after a fresh WSL shutdown) for locked non-Docker disks — background wsl.exe sessions can respawn and steal the lock once.
  • diskpart progress spam is gone — dozens of identical " 19 percent completed" lines are collapsed to one per percentage.

Verified

  • Elevated end-to-end on real hardware with Docker Desktop running: distro trimmed and compacted, both Docker disks skipped with guidance, exit code 0.
  • 144 tests pass (new: Docker-path classifier, diskpart progress dedup).

Existing installs will offer this update automatically on next launch. Verify downloads against SHA256SUMS.txt.

BitBroom v1.2.4

Choose a tag to compare

@pwnapplehat pwnapplehat released this 14 Jul 06:37

BitBroom 1.2.4 - BitBroom has a home: https://bitbroom.app

  • The About tab now links to the website and GitHub repository.
  • Installer publisher URL points at bitbroom.app.
  • Security reports accepted at contact@bitbroom.app (see SECURITY.md).

SHA-256 checksums are in SHA256SUMS.txt.

BitBroom v1.2.3

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 18:42

BitBroom 1.2.3 — hardening the "installed app looks like junk" fix across every deletion surface

v1.2.2 stopped Dev junk from flagging installed apps. This release generalizes that
into one shared guard and applies it everywhere a manual/heuristic delete can happen.

Fixed

  • New shared RuntimeAppGuard is now consulted by the duplicate finder, the
    empty-folder finder, and the Analyzer's manual recycle — not just Dev junk.
    Those surfaces allow deleting inside your profile (so you can clear caches/downloads),
    which meant a per-user installed app under %LOCALAPPDATA%\Programs (Cursor, VS Code
    user setup…) or a Squirrel app under %LOCALAPPDATA% (Discord, Slack…) could be reached
    — e.g. a duplicate DLL/asset inside an app, or an empty folder the app expects. All of
    them now refuse installed-application trees (per-user program installs, and any tree
    carrying Electron/Squirrel/.asar markers, found by walking parent folders).
  • __pycache__ is only offered when its parent still has .py source. Tools that ship
    .pyc-only would otherwise lose their only copy of the code.

Verified

  • Re-scanned the real profile: still zero hits under AppData / Program Files / .cursor /
    Squirrel apps, genuine projects still found.
  • 132 unit tests pass, including new cross-surface regressions: duplicate-inside-app,
    empty-folder-inside-app, per-user program install, portable Electron tree, .pyc-only.

SHA-256 checksums are in SHA256SUMS.txt. The in-app updater offers this automatically.

BitBroom v1.2.2

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 18:21

BitBroom 1.2.2 — important Dev junk safety fix

Fixed

  • Dev junk mode no longer flags installed applications. Modern desktop apps ship the
    exact same folder layout as a dev project — an Electron app (Cursor, Discord, Slack,
    VS Code…) is literally package.json + out/dist + node_modules, and deployed
    Python tools carry .venv/__pycache__. The finder previously matched those and could
    send an app's own runtime code to the Recycle Bin, breaking it on next launch. Because
    deletion is Recycle Bin-only, restoring from the bin fully recovered everything — but the
    finder should never have offered them in the first place.

    The finder now refuses runtime-app locations at both scan time and delete time:
    anything under AppData (except %TEMP%), Program Files, ProgramData, Windows;
    dot-folders directly under your profile (.cursor, .vscode, .nuget…); and any tree
    carrying app-runtime markers (Electron's icudtl.dat / v8_context_snapshot.bin, a
    Squirrel Update.exe, or an *.asar), detected by walking outward through parent
    folders. Genuine projects in your normal workspace are still found.

  • Added regression tests for the Electron, Squirrel, and packed-.asar layouts plus a
    delete-time re-verification test. 126 unit tests pass.

If you're on 1.2.x, updating is recommended. The in-app updater will offer this
automatically. SHA-256 checksums are in SHA256SUMS.txt.

BitBroom v1.2.1

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 14:23

BitBroom 1.2.1 — every tool now explains itself

Changed

  • Tools page redesigned for discoverability. Instead of a strip of bare buttons, every
    tool is a card with a plain-language description of what it does, what you gain, and any
    caveat — plus an Admin badge on tools that need elevation. Tools are grouped
    (Storage & disks / Hibernation & power / Quick fixes) with the live output console
    docked alongside.

Fixed

  • The fstrim step of "Compact WSL / Docker disks" actually runs now. The distro name
    was passed quoted, which wsl.exe rejects (WSL_E_DISTRO_NOT_FOUND), so the trim
    silently fell back to "skipped" and compaction reclaimed less than it should.
  • wsl.exe output is decoded as UTF-16, so its messages render correctly in the console.

Verified

  • The full compaction flow was exercised on a real machine (Ubuntu + Docker Desktop):
    trims ran in both distros, all three .vhdx disks compacted, the distro booted
    normally afterwards and Docker Desktop relaunched.
  • All screenshots retaken, including the redesigned Tools page.

SHA-256 checksums are in SHA256SUMS.txt.

BitBroom v1.2.0

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 13:35

BitBroom 1.2.0 — act on the hogs, not just report them

Driven by a deep research pass across Reddit, Microsoft Q&A and the Docker/WSL issue
trackers. The four loudest unsolved complaints are now one-click actions:

New in Tools

  • Compact WSL / Docker disks — .vhdx virtual disks grow forever and never shrink
    (Docker's ISO-cache leak alone traps 25–70 GB for many users). BitBroom now runs the
    full documented recipe: fstrim inside every distro → wsl --shutdown → diskpart
    attach-readonly + compact vdisk per disk. Non-destructive by design (only
    already-free blocks are released) and works on every Windows edition — no Hyper-V,
    no Optimize-VHD needed.
  • Free up OneDrive space — bulk "make online-only" for every detected OneDrive folder
    (the buried Explorer right-click, automated). Deletes nothing; cloud copies stay and
    files re-download when opened.
  • Remove old drivers — the DriverStore hoards every driver version you've ever
    installed (GPU updates leave 1 GB+ each). BitBroom removes superseded versions via
    pnputil, always keeping the newest of every driver family; unique drivers and
    same-version duplicates are never touched, and Windows itself refuses anything in use.

New in Duplicates

  • Dev junk mode — finds regenerable developer build folders (node_modules, target,
    .venv, dist, .next, .gradle, __pycache__, …) with a manifest guard: a folder
    only qualifies when it sits next to a real package.json/Cargo.toml/pyvenv.cfg,
    so a folder that merely shares the name is never listed. Recycle Bin-only, and every
    artifact is re-verified immediately before deletion.

New in CLI

  • bitbroom-cli devjunk <path> — the same finder as a read-only report (--top, --json).

Deliberately rejected (researched, and staying out)

  • Auto-cleaning C:\Windows\Installer — Microsoft states there is no supported way to
    prune it. Stays report-only in Space Hogs.
  • "Uninstall leftover" deletion — heuristic matching risks data of software you still use.

All actions use official Windows mechanisms only (diskpart, attrib, pnputil, DISM,
powercfg), stream their output live, and were verified end-to-end on a real machine.
122 unit tests pass.

SHA-256 checksums are in SHA256SUMS.txt.

BitBroom v1.1.3

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 12:05

Scheduled cleaning reliability.

Changed

  • Scheduled cleaning no longer needs BitBroom to be running (it never did) and adds no startup entry — the Windows Task Scheduler service launches the clean on its own. This release makes the task resilient: it now catches up a run missed because your PC was off or asleep (StartWhenAvailable) and runs on battery too. Still per-user, no admin, no stored password.

Existing users: the in-app updater will offer this automatically. SHA-256 checksums in SHA256SUMS.txt.

BitBroom v1.1.2

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 11:43

Polish patch.

Fixed

  • The Duplicates tab icon was blank — the chosen Fluent glyph had no drawing in the bundled font. Now shows a proper 'multiple documents' icon.

Changed

  • The manual-delete safety guard now detects drive-root system items dynamically by their Hidden+System attributes (pagefile, hiberfil, Recycle Bin, System Volume Information, Recovery…), on top of the already-dynamic protected trees (Windows, Program Files, ProgramData, Users, your profile). Nothing is hardcoded to 'C:\'.

Existing users: the in-app updater will offer this automatically. SHA-256 checksums in SHA256SUMS.txt.

BitBroom v1.1.1

Choose a tag to compare

@pwnapplehat pwnapplehat released this 13 Jul 11:27

Safety + polish patch.

Fixed

  • The Disk Analyzer's per-row Recycle now goes through a safety guard. Previously it could show a delete icon next to protected locations (Windows, Program Files, ProgramData, the Users root, drive-root system files) and relied on Windows alone to refuse. A new shared guard refuses those for both the Analyzer and Duplicates tabs, and the delete icon is hidden for any row that isn't safely deletable. Your own files/folders stay deletable.

Changed

  • Roomier default window (1400x910), clamped to the monitor's work area so it still fits smaller laptop screens.

Existing users: the in-app updater will offer this automatically. SHA-256 checksums in SHA256SUMS.txt.