# Groundskeeper

A free Windows 11 x64 companion to DiskGolf, by River & Rail. Cleanup, exact duplicates, large files and local cleanup history in a desktop workbench.

## What works

- Scan a local folder or drive with progress, cancellation and partial results.
- Discover supported user temp, Chrome, Edge, Brave and Firefox cache locations. Cleanup defaults to files not modified for at least seven days; it does not touch browser cookies, passwords, sessions or history.
- Find exact duplicates using size grouping, SHA-256 and byte-for-byte verification. Hard links and zero-byte files do not count as duplicate storage. Choose a preferred copy and optionally protect folders.
- Filter large files by size, extension, filename and modification age. Age is not a last-used measurement.
- Review up to 100 files per batch; use Windows recycling without a permanent-delete fallback. Duplicate survivors are revalidated and held open against writes/deletion while recycling on Windows.
- Save scan locations, switch themes and view/clear local cleanup history. Open the Windows Recycle Bin to restore or manage its contents.

The first beta scans one local folder/drive at a time. Network-share guarantees, similar-photo detection, file-content previews, browser-history cleaning, automatic scheduling, registry cleaning, and in-app permanent deletion are not included. Large datasets use memory proportional to scanned entries and duplicate groups. No scan-speed claim is made for this beta.

## Development

Requires Node 22.12+ (tested with 24.13), Rust stable, the Microsoft C++ build tools and WebView2. Run `npm ci`, then `npm run dev` for the clearly labeled sample-data preview. `npm run tauri -- dev` launches the native application. Use `scripts/build.ps1` to build the Windows installer. `CARGO_TARGET_DIR` may point to an existing Rust cache; this changes the output location, not the product identity.

Checks: `npm test`; `cargo test --manifest-path src-tauri/Cargo.toml --lib`; `cargo clippy --manifest-path src-tauri/Cargo.toml --lib -- -D warnings`. `scripts/native-check.mjs` uses a packaged app with an isolated test WebView profile and debugging port 9230. It only mutates disposable project fixtures; `scripts/restore-fixture.ps1` restores the exact test file through Windows.

The desktop build contains original Groundskeeper interface code and reused DiskGolf scanner/file-action code under the included MIT license. Full dependency/SDK notices are included. See docs/PRIVACY.md and docs/release-audit.md for data handling and verification status.

Beta.2 adds live operation cards, current-file comparison progress, scan counts and elapsed time, working indicators for cleanup and filtering, and clear stopping/completion states. Unknown totals use an indeterminate bar; current-file percentages do not represent overall job completion.
