Skip to content

MacSift 0.5.0 — scan freezes fixed, and files that were silently skipped are now found

Latest

Choose a tag to compare

@Lcharvol Lcharvol released this 12 Oct 20:48
· 2 commits to main since this release

Scans no longer freeze the UI — and files that were silently being skipped now show up.

Scanning no longer freezes the app

The previous release moved the expensive work out of the view layer. The freezes that remained turned out to be in the concurrency model underneath it.

The directory walks are synchronous and never suspend, so running them inside a task group pinned one cooperative thread each for the walk's entire duration. With one scanner per mounted volume × ~22 targets, the thread pool was exhausted — and the progress counter's updates then queued behind a saturated executor. That is why the file counter would stall and then jump.

Walks now run on a dedicated queue behind a bounded gate. Measured on a 177k-file scan, one unrelated fix in the same area took the walk from 4.33s to 1.25s.

Two other stalls are gone: the cleaning sheet was rebuilding the entire selection once per category on every render pass (~550k lookups on a large selection), and a dry-run preview was hopping to the main thread once per file — 100k+ times.

Three bugs that were hiding your files

These are the reason this is a minor release and not a patch. Scan results change — files appear that did not appear before.

  • Miscased folders were skipped. macOS boot volumes are case-insensitive, so a folder whose real name is library or DOWNLOADS can exist. Path matching was case-sensitive, so files under them were misclassified — or, below the large-file threshold, dropped from the scan entirely. ~/library/Caches was effectively unscannable.
  • External volumes hid whole folders. On a secondary drive, Library/ and Downloads/ were skipped on the assumption that another scan step covered them. On external volumes there is no other step, so nothing scanned them. A backup drive with hundreds of GB under /Volumes/…/Library/ showed nothing, with no indication anything had been left out.
  • A path-resolution mismatch could disable the skip list outright, causing the scanner to walk directories it was meant to ignore.

Fixing the first one also made file classification 9.8× faster.

Scanning is more honest about what it's doing

After the file counter stops, a scan still has work to do — sorting, checking Time Machine snapshots, looking for duplicates. The progress view used to keep showing a counter that had stopped moving, which reads as a hang. It now says "Finishing up" and explains what's running. Localized in English, French and Simplified Chinese.

Cancelling a scan now also stops duplicate detection. Previously it kept hashing in the background after you hit Cancel.

Install

Download MacSift.zip, unzip, and drag MacSift.app to Applications.

The app is ad-hoc signed and not notarized, so the first launch needs right-click → Open to get past Gatekeeper. Every launch after that is normal.

Apple Silicon, macOS 15 (Sequoia) or later.