Releases: wefalltomorrow/Compactor
Releases · wefalltomorrow/Compactor
Release list
Compactor v0.11.4
Changed
- Rework the Settings page into clear Exclusions, Compression, and Display panels.
- Use a responsive two-column settings layout that collapses to one column on narrower windows.
- Keep labels, controls, and help text aligned, with shorter worker/thread guidance beneath the relevant controls.
Fixed
- Prevent Settings controls and help text from running into or overlapping each other at common window sizes and display scaling levels.
Compactor v0.11.3
Added
- Warn when a selected folder contains the DirectStorage runtime (
dstorage.dllordstoragecore.dll). - Keep the system awake during compression and decompression without forcing the display to remain on.
- Detect the target NTFS cluster size for compression eligibility and projected on-disk allocation.
- Add configurable compression/decompression worker priority: Lowest, Below Normal, Normal, Above Normal, or Highest. Below Normal is the default.
Changed
- LZX Auto concurrency is deliberately conservative: one worker on CPUs with four or fewer physical cores and at most two workers on larger CPUs. An explicit manual thread limit overrides the LZX Auto policy; the HDD single-thread safeguard still applies when enabled.
- Worker priority applies only to compression/decompression threads; the GUI and analysis threads remain at normal priority.
- Analysis uses bounded 4096-file estimation batches instead of allowing the complete candidate set to accumulate before parallel estimation.
- Skipped files retain counts and size totals without retaining every skipped path, reducing memory use on very large scans.
- Displayed projected savings are adjusted for the selected WOF algorithm and rounded to the target volume's cluster size while the eligibility decision continues to use the raw sampled compressibility result.
- Decompression results use the file's actual post-operation on-disk allocation instead of assuming physical size equals logical size.
Fixed
- Compression and decompression now open each active file while allowing readers but denying concurrent writers and deleters, reducing the risk of racing game/application updates during a WOF operation.
- File size and modification time are now read from the already-open protected handle before deciding whether a previous analysis estimate is still reusable, closing the remaining change-between-check-and-open race.
- Correct logical-versus-physical file accounting so sparse/allocation edge cases do not distort folder totals or estimated savings.
- Skip files whose logical length cannot save an NTFS cluster instead of spending analysis time on files that cannot reduce allocation.
- Strengthen target validation: only local NTFS folders are accepted; whole-drive roots, network/UNC paths, the active Windows directory,
System Volume Information, root$*directories, rootRecovery, and legacy LZNT1-compressed target folders are rejected. - Correct the GUI allocation breakdown to use actual on-disk bytes for physical categories.
- Repair the v0.11.3 lockfile so existing dependency checksums remain identical to the known-good v0.11.2 lockfile; only the local package version changes.
Compactor v0.11.2
Added
- In-app viewer for folders containing WOF-compressed files, with path filtering and pagination for large scans.
Changed
- Auto threading now uses up to eight analysis workers and up to 16 compression workers on SSDs while retaining the single-thread HDD safeguard.
- Compression reuses the analysis compressibility estimate when file size and modification time are unchanged, avoiding duplicate sampling; changed files are re-estimated before compression.
Maintenance
- Windows CI validates the embedded JavaScript syntax before building.
Compactor v0.11.1
Added
- Configurable maximum worker-thread limit with
Autoas the default. - HDD single-thread safeguard, enabled by default.
Changed
- SSD analysis and compression can run concurrently using the configured worker limit.
Autouses up to six workers on storage reported by Windows as having no seek penalty.- HDD analysis uses a small number of contiguous sample windows to reduce seek overhead.
- HDDs use one worker by default; unknown storage also uses one worker.
Maintenance
- Release workflow now requires the current
mastercommit and blocks publishing while non-draft pull requests targetingmasterare open.
Compactor v0.11.0
Added
- Configurable minimum estimated savings threshold in Settings; default is 1%.
- Estimated post-compaction size and additional savings during analysis.
- Windows x64 MSVC build and test workflow on stable Rust.
Changed
- Default compression algorithm is now LZX.
- Analysis and compression now use the same sampled compressibility threshold logic.
- Removed blanket file-extension exclusions; files are judged by sampled contents instead of filename.
- Default exclusions are limited to Windows, System Volume Information, and Windows-managed root
$*paths. - Exclusion matching is case-insensitive and ignores blank or whitespace-only entries.
- Compression progress is byte-aware rather than relying only on file count.
- Incompressible-cache keys now include path, file size, and modification time so changed files are automatically reconsidered.
- The cache backing file is now
incompressible-v2.datto avoid stale path-only entries. - Estimated-savings output has a dedicated legend marker in the GUI.
- Removed decorative button and navigation glyphs from the GUI.
- Updated the compression-mode labels to show LZX as the default.
Fixed
- Correctly treat
DeviceIoControlas returning a Win32BOOLrather than an HRESULT. - Correctly surface Win32 errors while handling
ERROR_COMPRESSION_NOT_BENEFICIALas a normal no-benefit result. - Open WOF targets with the read-data/write-attributes access required by the operation.
- Skip encrypted, sparse, offline, reparse-point, and NTFS-compressed special files before WOF classification.
- Use zero-safe progress calculations and saturating size arithmetic to avoid invalid progress or unsigned underflow/overflow edge cases.
- Preserve clear stopped and cancelled state handling.
Maintenance
- Updated GitHub Actions to current
actions/checkoutandactions/upload-artifactmajors. - Removed deprecated Cargo config naming and legacy WinAPI struct-macro warnings.
- Removed unused background helper code.
- Updated project documentation and package metadata for this maintained fork while preserving upstream attribution.
- Reworked user-facing documentation and About text to use concise project wording.