Skip to content

Prepare v0.11.3 safety and compression improvements - #12

Merged
wefalltomorrow merged 20 commits into
masterfrom
v0.11.3-improvements
Sep 8, 2026
Merged

Prepare v0.11.3 safety and compression improvements#12
wefalltomorrow merged 20 commits into
masterfrom
v0.11.3-improvements

Conversation

@wefalltomorrow

@wefalltomorrow wefalltomorrow commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

Prepare Compactor 0.11.3 with targeted safety, accounting, memory, estimation, and compression-policy improvements informed by the upstream issue feedback and review of trash-compactor and CompactGUI.

Compression and responsiveness

  • Make LZX Auto conservative: 1 worker on CPUs with <=4 physical cores and at most 2 workers on larger CPUs
  • Respect an explicit manual thread limit for LZX as an intentional override; the HDD single-thread safeguard still applies when enabled
  • Keep XPRESS modes free to scale to the configured worker limit
  • Add selectable compression/decompression worker priority: Lowest, Below Normal, Normal, Above Normal, Highest
  • Default worker priority to Below Normal while leaving the GUI and analysis threads at normal priority
  • Prevent system sleep during compression/decompression without forcing the display awake

File-update safety

  • Allow readers while denying concurrent writers/deleters during active WOF operations
  • Read size/mtime from the already-open protected file handle before reusing analysis estimates

Analysis, accounting, and memory

  • Detect actual NTFS cluster size
  • Skip files that cannot save an allocation cluster
  • Separate logical size from physical allocation correctly
  • Make displayed projections algorithm- and cluster-aware while keeping eligibility based on the raw sampled result
  • Bound parallel estimation candidates to 4096 files
  • Avoid retaining every skipped path on huge scans
  • Measure actual post-decompression allocation

Target safety

  • Require local NTFS folder targets
  • Reject network/UNC targets and whole-drive roots
  • Protect the active Windows directory, System Volume Information, root $* directories, and root Recovery
  • Reject legacy LZNT1-compressed target folders
  • Warn when DirectStorage runtimes are detected

Maintenance

  • Repair Cargo.lock so dependency checksums remain identical to the known-good v0.11.2 lockfile and only the local package version changes
  • Document the new v0.11.3 behavior

This is intentionally kept focused: no schedulers, background services/watchers, Steam databases, extension blacklists, CompactOS/whole-drive features, telemetry, Python runtime, or automatic per-file algorithm selection.

@wefalltomorrow
wefalltomorrow merged commit 1d3a01e into master Sep 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant