Skip to content

pathmemo 0.2.2

Choose a tag to compare

@github-actions github-actions released this 21 Sep 22:46
· 15 commits to master since this release

Windows 10 1809 or later, x64 or arm64. One file, self-contained - no installer, and
no runtime to install alongside it.

  1. Download pathmemo-0.2.2-win-x64.zip, or -win-arm64 on an ARM machine.
  2. Unpack it anywhere.
  3. Double-click pathmemo.exe for the window, or run it from a terminal:
    pathmemo scan, pathmemo top --min 1GB, pathmemo audit.

Windows will warn that the publisher is unknown, because the executable is not
code-signed. Choose More info -> Run anyway, or check your download against the
SHA-256 below first.

Administrator rights are optional, and change what the scanner can see: with them it
reads $MFT directly, which is roughly 40x faster and reaches paths a directory walk is
denied.

Nothing is deleted without an explicit confirmation, and what is deleted goes to a
quarantine that pathmemo restore reverses.


The walk scanner's numbers, corrected — and, by the same change, an unelevated scan
several times faster.

Fixed

  • The walk scanner under-reported used space. For every ordinary file it reported the
    logical size as the allocated one: GetCompressedFileSize, which it asked once per file,
    only knows a different number for compressed and sparse files and answers with the plain
    length for everything else. Over the 1.2M files of this machine's C: that was 3 GB missing
    from scanned and booked to unaccounted, which fell from 17.9 GB (8.7%) to 14.8 GB
    (7.2%) — the rest is what the accuracy limits say it is. The MFT scanner, which reads the
    run lists, was right all along; the test that compares the two had never run (below).
  • An unelevated scan is 3–4× faster. The per-file syscall above is gone for ordinary
    files, which now round up to the cluster the way the audit already measured directories.
    A walk of the same C: — 1.21M files, 361k directories — takes 13.5 s where it took 41 s
    (the README's own figure) to 61 s (a cold run the same day) before. See README
    §4.4 and §22.5.

Tests

  • Mft_scanner_agrees_with_the_walk_when_elevated has run and passed, for the first time.
    Since the suite began declaring itself unelevated it had returned on its first line even
    as an administrator, because it asked the declaration rather than the token; it now asks
    Windows directly, and on a CI runner — an administrator — it runs too.
  • Two new tests pin the walk's allocated sizes against real files, unelevated, on every run:
    ordinary files round to the cluster, a compressed file is asked.

Known limitations of this release

Unchanged from 0.2.0: the window shows the volumes and the tree, and audit, reclaim and
duplicates are the commands and the terminal screens for now; the window is unverified on
arm64, above 100% scaling and across monitors of different scale; unelevated, some paths
are unreadable, hard-link deduplication covers only files of 1 MB and over, and alternate
data streams are not counted — elevation removes all three.

390 tests, passing both as an ordinary user and as an administrator.


SHA-256

349bae3335e3a7923c3bc0ae9942e9fa3a1f34fb1189c8098025c2d8ff6fc701  pathmemo-0.2.2-win-arm64.zip
aad5e4f05122094b4818a20281b0ccf1ad1892c36db795662028251376f2d76b  pathmemo-0.2.2-win-x64.zip