Skip to content

Releases: dpologdvinity/safesweep

safesweep 0.6.6

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 10:57
b12bf0b

Added

  • curl -fsSL https://github.com/dpologdvinity/safesweep/releases/latest/download/install.sh | sh: an installer that
    needs no root and no package manager. It checks the release's SHA-256 checksum, installs the program, man page and
    completions, and verifies the installed version. It is attached to every release and tested against fake releases,
    and on Debian and Alpine against real ones.

safesweep 0.6.5

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 08:47
b96d305

Packaging only; the program is unchanged.

Changed

  • npm publishing uses trusted publishing only: the NPM_TOKEN fallback step is removed, because the packages now refuse token
    publishing.

safesweep 0.6.4

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 08:14
676ebd4

Packaging only; the program is unchanged.

Changed

  • The npm packages are published with npm trusted publishing (GitHub's identity, no stored token) first; the
    NPM_TOKEN secret is only a fallback if that fails. The publishing loop is now a tested script (npm/publish.sh).

safesweep 0.6.3

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 07:30
e94c967

Fixed

  • The interactive explorer used the time it was started at for ages and for the log file's name, however long the session
    stayed open. The clock is now refreshed before every scan and key press.
  • The artifacts search no longer walks into a hidden directory that is not a real build directory (for example a
    hand-made .venv): it is skipped like any other hidden directory.

Added

  • artifacts recognises node_modules created by bun install --linker isolated (marked by node_modules/.bun).
    Bun's default layout leaves no marker, so those folders are still not recognised. (An earlier change used a .bun-tag
    marker; real bun does not create it, so it was replaced after testing against bun 1.4.2.)
  • The release workflow asks the Homebrew tap to update immediately.

safesweep 0.6.2

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 04:23
a0f0ec0

Fixes from a second full review, much faster cleanups, and a documentation overhaul. Upgrade recommended.

Fixed

  • why dropped any process whose name was not valid UTF-8 from the list (this was listed as fixed in
    0.3.1, but the fix had never been applied).
  • The npm launcher could be killed by a signal that arrived just after it started the program, leaving the program running
    with nothing to stop it (found by a flaky test on a busy machine). Signal handlers are now installed before the program is started.
  • A candidate that is, or contains, the temp directory is refused. With TMPDIR=~/.cache/tmp the xdg-cache
    rule would otherwise have deleted the temp directory itself.

Changed

  • clean --apply is about 12 times faster on many candidates (300 entries: 34.6 s before, 2.8 s now). The list of
    what programs have open is re-read at most once a second instead of for every candidate. The trade-off is documented.
  • Scans judge the candidates of one rule in parallel (--category pycache: about 4.3 s before, 1.8 s now, on a
    busy machine).
  • CI: staged pipeline (setup, lint, tests on stable and on the minimum Rust 1.88, coverage with a 90% floor, builds of every
    package format), a weekly dependency audit, a link check for the documentation, and namespace tests that must run on CI.
    The release-tag check is one reusable workflow instead of four copies.

Documentation

  • Every public item, module, script, test and workflow is documented, and missing_docs is enforced.
  • New ARCHITECTURE.md, CONTRIBUTING.md and SECURITY.md; the README is restructured with a quick start, command
    reference and FAQ.

safesweep 0.6.1

Choose a tag to compare

@dpologdvinity dpologdvinity released this 24 Oct 02:52
38df097

Release pipeline hardening from a review of the packaging; no change to what scan and clean do.

Fixed

  • npm launcher forwards SIGTERM/SIGINT/SIGHUP to the native process (before, timeout 60 safesweep clean --apply kept deleting after the timeout).
  • Nothing publishes unless the tag is vX.Y.Z[-pre] and matches Cargo.toml (before, only the crates.io job checked).
  • --category with completions or man is an error, like with why.

Changed

  • apt repo is only rebuilt for the latest stable release, one run at a time; prereleases go to npm's next tag and skip apt.
  • .sha256 files come from the tarball already on the release; npm packages are built from checksum-verified binaries; checkouts keep no credentials; flake.lock is committed; packaging tool versions are pinned.

safesweep 0.6.0

Choose a tag to compare

@dpologdvinity dpologdvinity released this 23 Oct 10:44
4d01aa6

Added

  • safesweep completions <shell> and a man page (safesweep man); the .deb, .rpm and release tarballs include them.
  • Install from the apt repository, Homebrew tap, PyPI, npm/pnpm/yarn/bun, cargo-binstall, Nix, .deb and .rpm.

Changed

  • Releases publish to crates.io from CI. Re-running release workflows never replaces published assets.

safesweep 0.5.1

Choose a tag to compare

@dpologdvinity dpologdvinity released this 23 Oct 09:26
fdd1479

Packaging: install with cargo binstall, Homebrew (dpologdvinity/tap), pipx/uv (PyPI), npm/pnpm/yarn/bun, Nix, or the .deb/.rpm attached here. No code changes.

safesweep 0.5.0

Choose a tag to compare

@dpologdvinity dpologdvinity released this 23 Oct 09:01
a2552f6

Safety fixes from a whole-repo review. Upgrade recommended.

  • Files used by processes in containers or other mount namespaces are now detected (matched by inode), so they are no longer deleted.
  • Running as root is refused when HOME belongs to another user (e.g. sudo -E) or a rule root is a symlink.
  • Skip reasons and why output are escaped, so hostile file names or command lines cannot fake output or inject terminal escapes.
  • TUI scans can be cancelled; a failed manifest write is reported honestly; pycache skips dot-directories.
  • Behavior changes: runtime errors exit 1 (not 2); --category with why is an error; relative HOME is rejected.

safesweep 0.4.2

Choose a tag to compare

@dpologdvinity dpologdvinity released this 23 Oct 08:34
f7ff239

TUI: long paths are cut on the left so the distinguishing end stays visible, a Scanning screen shows while the first scan runs, and rows owned by other users are hidden (the status line shows how many).