Changelog

What changed, and when

The same list Kruftle shows under Settings → What's new, generated from the app's own changelog. Every release is on GitHub with its installers and checksums.

Kruftle 0.2.11

Release notes and downloads

Added

  • Kruftle for Windows now also publishes as an MSIX, for the Microsoft Store.

Fixed

  • A copy installed from the Microsoft Store no longer offers to update itself by downloading and running the regular Windows installer, which would have installed a second, separate copy of Kruftle alongside the Store's. That copy is now told plainly there is a newer version and pointed at the activity log; the Store manages its updates instead.

Kruftle 0.2.10

Release notes and downloads

Fixed

  • Applying an update on Windows did nothing, and had never done anything. The helper that replaces Kruftle once Kruftle has closed was started in a way that gave it no console to run in, and Windows PowerShell will not start without one — so it exited before its first line, leaving the old version in place and no error behind. It is now started through the command prompt, which gives it what it needs, and in a hidden window so nothing flashes up on screen. Kruftle for Windows can update itself from this version onwards; a copy already on an older version has to be reinstalled once, by hand, from the downloads page.

Kruftle 0.2.9

Release notes and downloads

Changed

  • The update helper on Windows now writes down what it did, and Kruftle reads that back into the activity log the next time it starts. Because the helper only runs once Kruftle has exited, an update that quietly failed used to leave no trace anywhere; now it leaves an account of itself.

Fixed

  • Applying an update on Windows could do nothing at all. The helper that replaces Kruftle runs after Kruftle has closed, and it now waits more patiently for Windows to let go of the old files, retries the rename when something is still holding it, and no longer draws a progress bar it has no window to draw in — any of which could stop it before it started.

Kruftle 0.2.8

Release notes and downloads

Fixed

  • Downloading an update on Windows could fail with a certificate error. Kruftle asks GitHub for the release over one server and downloads the build from another, and the two are signed by different authorities — on a machine that has not yet collected the second one’s root certificate, Windows can fetch it on demand but Kruftle could not ask it to. The download now falls back to the system’s own downloader when that happens, which can. What it fetches is still checked against the release’s published SHA-256 before anything is replaced.

Kruftle 0.2.7

Release notes and downloads

Fixed

  • Kruftle on Windows never found an update. It reported “up to date” against releases that existed, from the day the updater shipped. Verifying a download needed a second request, for the checksums file — and because release downloads are redirected to a different server, that was a second request to a host the machine could not reach. Every build then looked unverifiable and the check quietly gave up. Kruftle now uses the checksum GitHub sends with the release listing it has already fetched, so there is nothing extra to reach. The download is still verified against it before anything is replaced, exactly as before.

Kruftle 0.2.6

Release notes and downloads

Changed

  • Kruftle can now tell you when a new version exists that your installation cannot use — a missing build for your processor, or a release with no published checksum — instead of reporting it as “up to date”. Every update check is also written to the activity log, with what it found and how Kruftle is installed, so a check that comes back empty can be explained rather than guessed at.

Fixed

  • Updating a Kruftle installed from the .deb package did nothing. It handed the download to the software centre, and the software centre will not upgrade a package it already considers installed — it showed the new version, greyed the button out, and changed nothing. Kruftle now installs it directly, asking for your password once, and restarts itself when it is done.
  • The update banner said “restart to finish” next to a button that ran an installer. The two now agree: an update that is unpacked in place offers Restart now, and one that runs an installer offers Update.

Kruftle 0.2.4

Release notes and downloads

Changed

  • Kruftle now updates itself without running an installer, on all three platforms. It fetches the new version as a plain archive, checks it against the release's published SHA-256, and unpacks it over the installed copy when you restart — nothing to run, nothing to mount, nothing to drag. On macOS this replaces the old behaviour of opening a disk image at every update: Kruftle is now replaced in place, exactly as it is on Windows and Linux. If Kruftle is installed somewhere you cannot write, such as a machine-wide install under C:\Program Files or a .deb under /usr, it still offers you that packaging's installer, because replacing those files needs a password.
  • Settings → Updates has a Check for updates now button, and it says what happened — including when the check itself could not be made. The check at launch stays quiet, as before.
  • Windows installs for you alone by default, under %LOCALAPPDATA%\Programs, and no longer asks for an administrator. Add /ALLUSERS for a machine-wide install. The installer also accepts /VERYSILENT and /NORESTART, and never asks to reboot.
  • Kruftle no longer keeps the installers it has already applied. Downloads are cleared before each update.

Fixed

  • The app icon in the macOS Dock was a quarter larger than every other icon beside it. macOS expects an app icon to sit inside a fixed grid with a transparent margin around it, and Kruftle's was drawn to the edge of the canvas.
  • On Ubuntu and other GNOME desktops, Kruftle appeared in the dock as a blank generic icon. The window announces itself as com.dizitart.kruftle, but the desktop entry that shipped was called kruftle.desktop, so the desktop could not tell which application the window belonged to. The entry and the icons carry the right name now, and the .deb refreshes the icon cache when it installs.
  • A Kruftle installed from the .deb package was being offered an AppImage it had nowhere to put. It is now offered a .deb.
  • A Kruftle installed as an AppImage tried to overwrite its own file while it was running, which could leave a half-written binary behind. The replacement now happens after Kruftle has exited, and the working copy is put back if it fails.
  • The update check on Windows could give up before it started, and say nothing, because of how the running version was read back out of the packaged app. The version is built in now and cannot come back unreadable.
  • An out-of-date Kruftle is now offered the newest release rather than the next one above it. Releases were being read in the order they were published, so a patch cut on an older line after a newer release had already shipped would be offered first — and a copy several versions behind would have climbed back one stale release at a time. Kruftle now compares the version numbers themselves.

Kruftle 0.2.3

Release notes and downloads

Fixed

  • A codebase on a mapped network drive or a mounted volume can be scanned. Kruftle refused any path close to the root of its drive — so on Windows a share mapped to Z:\ was refused, and so was every folder in it, with “this path is too close to the filesystem root to be safe” and no way past it. That rule is a guess at what you meant, not a fact about danger, and on a mounted drive it guesses wrong: that is exactly where a codebase lives. Kruftle now asks instead. It shows you the path, why it hesitated, that scanning only reads, and that you still choose what gets cleaned afterwards — and scans it if you say so. The answer is not remembered, so it asks again next time. System and home directories are still refused outright, and confirming here cannot reach one.

Kruftle 0.2.2

Release notes and downloads

Added

  • The About panel in Settings now links to the Kruftle website and to Dizitart, alongside the source code.

Kruftle 0.2.1

Release notes and downloads

Added

  • Kruftle now runs one window at a time. Opening a second one — or a scheduled background cleanup arriving while a window is open — says so and stands aside, rather than letting two cleanups take the same build directory apart at once.

Fixed

  • Updating Kruftle on macOS now actually installs the update. Kruftle used to download the disk image and open it, leaving you to drag Kruftle to your Applications folder — and that drag then failed, because macOS will not replace an app that is running, which Kruftle was. It now replaces itself: it quits, puts the new copy where the old one was, and opens again on the new version. If it cannot — an Applications folder that is not yours to write to — it opens the disk image as it used to, so you are never left worse off than before.
  • Cleaning works when Kruftle is opened from Finder, the Dock or the Start menu. Every clean command failed with “No such file or directory” there, because an app launched by the desktop does not inherit the PATH your shell sets up, so cargo, flutter, mvn and the rest could not be started at all — even though the scan, which asks your login shell, had just found them. The commands are now run at the exact path the scan found. A run that reported ninety-five failures and nothing reclaimed now cleans.
  • Clean commands can now find the tools they themselves reach for. Fixing the PATH for the command Kruftle starts was only half of it: npm run clean started, then its script looked for node and failed with “env: node: No such file or directory”, because the command’s own children were still searching the desktop’s PATH. Kruftle now hands every clean command the PATH your login shell uses, so what it starts can start what it needs.
  • Kruftle no longer offers a clean it knows will fail. A package.json with no clean script is not run with npm run clean, and make clean or make distclean is offered only where a Makefile here actually declares that target — an Autotools tree loses its Makefile to the first distclean, so the second run used to report a failure for a directory that was already clean. Those projects now fall back to removing their build output directly, or are left alone if there is nothing to remove.
  • A clean command that fails and explains itself on standard output — Maven does — now shows you what it said, instead of a bare “exited 1”.
  • The “log exported” message takes itself off the screen again after five seconds, instead of sitting over the report until it was clicked.

Kruftle 0.2.0

Release notes and downloads

Added

  • Background cleanups. Kruftle can hand your schedule to your operating system's own scheduler — launchd on macOS, a systemd user timer on Linux, Task Scheduler on Windows — and the cleanup then runs at the time you chose whether or not Kruftle is open. No resident process and nothing in your login items: the job is registered when you turn the switch on and removed when you turn it off. An unattended run does each toolchain's own clean command, and deletes only the categories you have already pre-selected in Settings — it cannot widen its own permission while you are not watching.
  • A radar sweep while scanning, a sweeping band while cleaning, and figures that count rather than jump — all of which stop when your system asks for reduced motion, or when you do.
  • Ten languages: English, Español, Deutsch, Français, Português, Русский, 中文, 日本語, हिन्दी and العربية, including full right-to-left layout.
  • A light theme, and a chooser for light, dark or whatever your desktop is set to.
  • Twenty-six more project types, including Bazel, Meson, Autotools, Conan, vcpkg, PlatformIO, Haskell, Scala, Clojure, Erlang, OCaml, Nim, Crystal, D, Deno, PHP, Terraform, Unity, Julia, R and Perl.
  • Cleanup profiles: teach Kruftle a project type it does not know, and it is detected and cleaned by exactly the same code — and the same safety rules — as a built-in one.
  • Scheduled reminders, daily, weekly or monthly, with a desktop notification when a cleanup is due and when one finishes.
  • A treemap of the biggest artifact directories, so you can see where the space is before deciding what to do about it.
  • A before-and-after gauge of the volume's free space on the report.
  • A short tour of the app on first run, replayable from Settings.
  • This changelog, and the Privacy Policy and Terms of Service, readable inside the app.
  • The Terms of Service and the Privacy Policy are put in front of you on the very first run, with both documents one tap away, and nothing else in the app opens until you accept them.
  • Windows and Linux builds for arm64 alongside x64.
  • The global cache list sorts by size, largest or smallest first.

Changed

  • A new app icon.
  • Sizes are now the space a directory actually occupies on disk, read from the operating system, rather than the sum of its files' lengths. It is the figure you get back, and it matches what Finder and df report. The old measurement is still available in Settings, and is used automatically on Windows.
  • Version, licence and provenance have moved out of the About panel in Settings to a line of their own beneath it.
  • Every dropdown now looks like the rest of the app, and its menu is rounded to match the cards around it.
  • Log levels read as Debug, Info, Warning and Error rather than as the words the log file stores.

Fixed

  • The step rail no longer overflows when a translated label is longer than the English one.
  • The accent colours are legible on a light background.
  • The title bar's buttons sit against the right edge instead of halfway across it.
  • The macOS About panel shows Kruftle's icon rather than Flutter's.

Kruftle 0.1.0

Release notes and downloads

Added

  • The first release. Finds every project under a folder, works out what built it, and asks that toolchain to clean up after itself.
  • Sixteen project types, from Cargo and Gradle to Xcode and Mix.
  • A five-step wizard: choose a folder, scan, review, run, report.
  • Ten safety rules, each with its own test, including never following a symlink, never leaving the folder you chose, and never touching anything git tracks.
  • A separate screen for the global SDK caches in your home directory.
  • In-app updates, verified against the release's published SHA-256.