Skip to content

Releases: ibrews/unreal-custodian

v0.3.3

Choose a tag to compare

@ibrews ibrews released this 20 Aug 04:58

What's new since v0.3.2

  • The Windows "install Everything" notice named the wrong thing. It said "Installing Everything makes discovery near-instant," which reads as satisfied once Everything's app is installed and running — but the check is specifically for Everything's separate command-line client (es.exe). The notice now says so, matching wording the CLI has had all along.
  • Enabling es.exe could make discovery worse, not faster. index_available() called a switch (-get-total-file-count) that isn't real — it always failed, so the notice could never go away on any Windows machine regardless of whether es.exe was installed. Separately, find_projects() crashed outright on a Recycle Bin item Everything's index legitimately returns (permission-denied by design) — one denied path took project discovery from "slow but working" to "instantly returns zero." Both fixed, with regression tests for each.

Full detail: commits c89b94e..baacad9.

v0.3.2

Choose a tag to compare

@ibrews ibrews released this 11 Aug 21:28

What's new since v0.3.1

  • Sizing projects now runs 8 at a time in the GUI, not one at a time. Measuring a project's reclaimable folders is the slow part of a scan (a directory walk that can touch tens of thousands of build-cache files), and the GUI was doing it sequentially while the CLI already parallelized this exact loop. On a machine with hundreds of projects that's the difference between minutes and seconds — the actual cause behind repeated "why is this so slow" reports.
  • A dismissible "install Everything" notice on Windows, shown once per launch when no fast file index is found — with a link to Everything and a "don't show this again" checkbox. The CLI has warned about this since it existed; the GUI never did.

Full detail: commits bfda49d..c89b94e.

v0.3.1

Choose a tag to compare

@ibrews ibrews released this 11 Aug 03:02

What's new since v0.3.0

  • Checks GitHub for a newer release once per launch. If one exists, an "Update available: vX.Y.Z →" link appears in the GUI footer next to the version — click it to open the release page. Silent and non-blocking if you're already current or offline; nothing is downloaded or installed automatically.
  • Fixed the public tally's "reported projects" count. It used to increment by a flat 1 per report regardless of how many projects a single clean run actually covered — a batch clean of 12 projects showed up as "1 reported project." Now an honest per-run count, threaded through the API, the GUI, and --report-savings on the CLI. Old clients still count as 1, same as before.

Full detail: commits a9fbd7e..0014302.

v0.3.0

Choose a tag to compare

@ibrews ibrews released this 11 Aug 01:40

What's new since v0.2.0

  • A lifetime tally, on every real clean. Every --apply run (CLI or GUI) now adds to a running total kept locally on that machine — nothing is sent anywhere just from running the tool.
  • A public "reclaimed since launch" counter, opt-in every time: the GUI's completion dialog has a one-click "count this in our public tally (anonymous)" button, or pass --report-savings on the CLI. Only a byte count is ever sent — no project names, paths, or machine identifiers. Live at alexcoulombepresents.com/repos/unreal-custodian.
  • A banner at the top of the GUI shows both numbers, clearly labeled so they're never confused: N reclaimed on this machine (local, instant) and N.NNN GB saved globally from N reported projects! (the public tally, checked once per launch, cached locally so a launch with no internet still shows the last-known number).
  • Confetti on a real clean win, plus pre-filled X/LinkedIn share buttons in the completion dialog.
  • Rows that just got cleaned flash and fade ("💥 Poof!" → "✨ cleaned") for a moment before the post-clean rescan replaces them with their real new state.
  • Version + credits now shown in the window footer (Unreal Custodian v0.3.0 — made by @ibrews & @nocxr, both clickable) and via custodian --version on the CLI.

Full detail: commits 61760ef..f916a64. See Sharing what you reclaimed in the README.

v0.2.0

Choose a tag to compare

@ibrews ibrews released this 10 Aug 23:12

What's new since v0.1.0

  • Search Settings — restrict discovery to specific drives/folders instead of searching everywhere (GUI: "Search Settings…" button; CLI: custodian roots --set D:\ E:\Projects). Off by default; useful if a slow network/backup drive happens to be mounted, or you just want the drive(s) your Unreal projects actually live on considered.
  • Fixed: selecting a recently-used project did nothing. The GUI and CLI both silently dropped an explicit selection/--only if the project had been touched in the last 14 days — the row now shows amber ("candidate to clean, used recently") and actually gets cleaned when you select it and confirm. An unattended, whole-machine clean --apply sweep still respects the 14-day default; this only changes what happens when you name something explicitly.
  • Added a loading indicator. First launch (and every Rescan) now shows a progress bar and a "Searching..." row while discovery runs, instead of two empty tables with no explanation.
  • Fixed: the window/taskbar icon showed Python's generic default, not the app icon — every platform, every run mode.
  • Fixed: the divider between the Projects and Engines tables was a near-invisible hairline on Windows. It's now a real, grip-handled sash, and auto-fits to however many rows you actually have.
  • Confirmed UE4 projects and engines (installed and source builds) work the same as UE5 — nothing was ever UE5-specific, this was just never verified/documented before.

Full detail: see commits c840b39..a553b53.

v0.1.0 — first public release

Choose a tag to compare

@ibrews ibrews released this 09 Aug 16:34

Find and reclaim the regeneratable build caches Unreal Engine projects and engine installs quietly accumulate — Intermediate, Binaries, DerivedDataCache, cooked content — without touching anything you authored.

On two real machines this found 224 GB (96 projects, macOS) and 2.0 TB (539 projects, 14 engine installs, Windows — with only 17 GB free before running it).

Downloads

Both are genuinely standalone — no Python installation required.

  • macOS: Unreal.Custodian.macOS.zip — signed and notarized, opens cleanly with no Gatekeeper warning
  • Windows: UnrealCustodian.exe — unsigned, Windows SmartScreen will show an "unknown publisher" click-through on first run

Or clone and run from source — no install needed for the CLI: python3 -m custodian.cli report

Highlights

  • CLI and GUI, both verified on macOS and Windows
  • Engine installs, not just projects — a single source-built engine can hold more reclaimable cache than an entire project library. Engine/Binaries on a precompiled install is refused outright, in code, not just by convention
  • Intermediate vs. Binaries are separate opt-ins on source builds — reclaiming Intermediate never affects whether the editor launches; reclaiming Binaries does
  • Trash by default, --permanent when you actually need the space back immediately
  • Dry run first — report never deletes anything; clean shows the exact plan before --apply
  • Every clean run writes a full log — nothing is ever silently truncated
  • A Finder/Explorer-style GUI with a live progress bar for multi-minute runs, select-all/hide-cleaned, and a target picker mirroring .ueclean.json

46 tests, cross-platform CI-equivalent verification on real machines (not just unit tests in isolation).

See README for the full picture and ROADMAP.md for what's still open (a Fab plugin, scheduled automation, Windows code signing).

Project discovery is built on Marshall's (@nocxr) Unreal Project Launcher.