Repository navigation
Releases
EzSort v0.4.0: a redesigned desktop experience
EzSort v0.4.0
A redesigned desktop experience. The sorting engine, the CLI, and the
on-disk config/history formats keep working exactly as before; the entire
presentation layer, responsiveness, and large-folder performance were
rebuilt.
Highlights
- One design system, two real themes. A single token scale for spacing,
type, radii, and color, with independently tuned warm-slate dark and warm-paper
light palettes. Every text/background pair the UI uses is checked against
WCAG AA in the test suite. - All six pages rebuilt. Dashboard, Organizer, Categories & Rules,
History & Undo, Activity, and Settings now share the same sidebar, page
header, cards, tables, badges, banners, dialogs, toasts, and empty states. - Truthful state everywhere. Statistics, folder badges, table counts,
progress, history rows, and activity entries come from the live engine,
config, history, and activity log. There are no placeholder numbers and no
dead controls. - Responsive at the minimum size. Tables re-proportion columns instead of
forcing the page wider, scrollbars hide themselves when content fits, and
toolbars switch to compact labels at narrow widths. Every page was captured
and inspected at the 1281x851 physical minimum. - Search and filtering. Organizer filters by move/rename/skip and searches
file, category, and destination; History and Activity have live search;
Categories filters by name; Activity has kind chips. - Persistent activity log. The last 500 events survive restarts in
activity.json, v0.3.0 entries load unchanged, and an unreadable file is
moved aside rather than deleted. - Faster large folders. Planning is now O(n), the scanner reuses
DirEntrymetadata, and table inserts avoid a quadratic empty-state check.
A 10k-file preview dropped from roughly 100 seconds to under 10 seconds on
the test machine.
Safety and compatibility
- No files are deleted, overwritten, extracted, or uploaded. Existing files at
a destination are renamed, never replaced. - Undo stays conflict-safe: occupied original paths are skipped and the
remaining work stays in history for a later retry. - Cancellation is per task, so cancelling a scan never stops a sort or watch.
- v0.3.0 config, custom rules, history, and activity files load unchanged.
History additions (status,cancelled,total_planned, undo tombstones)
are additive and old readers ignore them. - A golden test runs the CLI and the GUI against identical synthetic folders
and asserts the resulting file trees match.
Keyboard shortcuts
| Key | Action |
|---|---|
Ctrl+1 … Ctrl+6 |
Jump to a page |
F5 |
Refresh the current page |
Ctrl+F |
Focus the current page's search |
Ctrl+O |
Choose a folder |
F1 |
Show the shortcut sheet |
Enter |
Run a preview from the folder box |
Esc |
Close an overlay / leave search |
Downloads
| Asset | Contents |
|---|---|
EzSort-gui-windows.zip |
Standalone desktop app (EzSort.exe), no Python required |
ezsort-cli-windows.zip |
Standalone CLI (ezsort.exe) |
SHA256SUMS.txt |
SHA-256 checksums for both zips |
Extract a zip and run the executable inside it. Verify a download with:
Get-FileHash .\EzSort-gui-windows.zip -Algorithm SHA256The release build runs the full test suite, builds both executables, and
verifies them end to end (version, real sort, undo, GUI launch, screenshot,
persistence, clean close) before publishing these assets.
Upgrading
pip install --upgrade ezsort for the CLI and module entry points, or replace
your extracted Windows folder with the new zip. Existing configuration and
history are picked up automatically.
Full details: CHANGELOG.md
and docs/DECISIONS.md.
EzSort v0.3.0
EzSort 0.3.0
A stability-and-polish release: no new commands — the focus was making every
existing path correct and making the desktop app feel finished.
Highlights
- Every GUI sort was failing. The organizer passed a
cancel_checkname
that no longer existed after the cancel-token refactor, so every run ended
with "Sorting failed" and moved nothing. Fixed, with an end-to-end test that
runs a real sort. - Stale previews could sort the wrong folder. Picking a new folder while a
previous scan was still running let the old plan land afterwards. Scans now
carry a sequence number and superseded results are dropped. - "Sort unfinished downloads too" was inverted — ticking it stopped
partials being sorted, and unticking them let half-finished.crdownload
files be moved mid-download. - Cancel could hit the wrong task (organizer vs. watch mode); tokens are
now per-task. - Light theme leaked dark colors — the sidebar brand block stayed black
after switching. Fixed. - Clipped scan summary — short windows squashed the options card and cut
the "N file(s) scanned | N move(s) planned" line in half. Only the
scrollable table row flexes now. - History detail rows keyed by operation index (duplicate filenames showed the
wrong file), frozen EXE icon lookup, scanner O(n²) exclusion check, and
wave-based watch-mode history batching. - Premium UX pass: WCAG AA contrast on both themes, visible keyboard
focus,Ctrl+1..6/F5shortcuts, striped table rows, Per-Monitor V2 DPI,
real app icon, and Windows version metadata in both executables.
Verification
- 172 tests (170 passed, 2 skipped — up from 120 at 0.2.0), including 45
new desktop-app tests with real end-to-end sort and cancel runs. - GUI smoke test: 28/28 checks.
- Both executables verified end-to-end on disposable temp folders:
CLI 32/32, GUI 16/16 (launch, screenshot, close, config/geometry
persistence, relaunch). - Explorer Properties shows 0.3.0.0 / Kritagya Dubey for both EXEs.
Install
Download the zip for what you need and extract it:
EzSort-gui-windows.zip— the desktop app (EzSort.exe), no Python requiredezsort-cli-windows.zip— the command-line tool (ezsort.exe)
No files are ever deleted or overwritten; every sort is undoable from
History or ezsort undo.
Full changelog: https://github.com/kritagyadubey/EzSort/blob/main/CHANGELOG.md
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- Update README with new files in Downloads directory by @kritagyadubey in #1
New Contributors
- @kritagyadubey made their first contribution in #1
Full Changelog: https://github.com/kritagyadubey/EzSort/commits/v0.2.0
