V1.3 - #4
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v1.3.0 release. Four user-facing additions plus a hash-cache speedup. Public API is preserved.
--sort/--reverseon the default scan. Sort the category breakdown bysize(default),count,stale-size,stale-count, orname. Scan-only flags, same warning rule as--top/--json.bigfiles dupes. Full-file hashes are cached to the OS cache dir, keyed by(path, mtime_ns, size)and hash-algorithm-tagged.--no-cacheskips it;--clear-cachewipes it before running. ~40× speedup on warm re-scans in local testing.bigfiles auditsubcommand. Severity-coded "what's eating your disk" view — heaviest category, top extensions, installer junk, top-N concentration, stale share. Reuses the existing scan + analyzer pipeline; no new flags./to filter andoto reveal./enters filter mode (live substring match on the current view).Esccancels,Enterkeeps. Filter clears on ascend/descend.oreveals the selected entry in the OS file manager (open -Ron macOS,explorer /select,on Windows,xdg-openon Linux). Existing keybindings unchanged.audit, the dupes cache, expanded TUI keybindings, and the new flag rows.Cargo.toml: version →1.3.0.Why
--sortis a small, high-leverage UX win — category-by-count and alphabetical views are common asks.bigfiles dupesfrom an occasional-use tool into something you can run frequently. The user-visible behavior is identical; the runtime is just much faster on warm cache.auditlowers the cognitive cost of the first run. Most people don't know what to look for;auditanswers "what should I care about?" in five lines.Deliberately not in this release
bigfiles audit --json. Easy to add later; out of scope for v1.3.Backward compatibility
Public API preserved:
analyzer::analyze(...)— unchangeddupes::find(...)— unchangedNew surface added alongside:
analyzer::sort_summaries(&mut [CategorySummary], SortKey, reverse)dupes::find_with_cache(&[FileEntry], min_size, &HashCache)bigfiles::cache::HashCache(load / get / insert / save / empty)bigfiles::audit::{analyze, render, Insight, Severity}--sort,--reverse) and ondupes(--no-cache,--clear-cache)auditLicense note
Added
MPL-2.0todeny.toml's allow list. The cache module uses thedirscrate, which transitively depends onoption-ext(MPL-2.0). MPL-2.0 is file-level copyleft and fully compatible with this project's AGPL-3.0-or-later.Test plan
cargo fmt --all -- --check— cleancargo clippy --all-targets -- -D warnings— cleancargo build --release— cleancargo test --release— 53 pass (was 41 onmain; +12 new tests across analyzer, cache, audit)cargo deny check bans licenses sources advisories— cleanbigfiles --sort name/--sort count/--reversereorder the category table as expectedbigfiles dupesrun reads the cache (~40× faster);--no-cachedisables it;--clear-cachewipesbigfiles audit ~/Documents/bigfilesproduces severity-coded output with appropriate insights/filters live,Escclears it,Enterkeeps it;oopens the OS file manager on the selected entryAfter merge
v1.3.0and publish to crates.io (cargo publish).auditsubcommand and the dupes-cache speedup — both are demoable and tell a clear story.