Releases: walujanle/file-rename-plus
Releases · walujanle/file-rename-plus
Release list
v1.1.0 - Stable Version
Stable Version v1.1.0
This official release only provide binary files for Windows 10/11 64-bit only.
For other platforms, you can build this application manually, but this information has not been verified to work properly or not because it has not been tested on those platforms.
[1.1.0]
Added
- Drag and drop. Folders can be dropped straight onto the window. Individual
files work too, and a multi-item drop is handled one item at a time. The file
panel shows a prompt while a drag is over the window. - Platform-aware filename validation, with the Unix branch covered by its own
tests. Both the Windows and the Unix branch are compiled and run before release. - Build prerequisites for macOS and Linux are documented, including the system
packages the GUI stack needs. build_release_unix.sh, the macOS/Linux counterpart to the Windows build
script. Same gate, same packaging, handles thestatandsha256sumspelling
differences between the two.- A test that
off_threadresolves inside a tokio runtime. Every scan and rename
goes throughspawn_blocking, which panics without one; nothing else in the
suite exercises the async layer, so a broken executor assumption would otherwise
have surfaced on the user's first click.
Changed
- After a rename the list is rewritten in place rather than re-read from disk.
The previews already record what each file became, so this needs no filesystem
access, preserves any ordering set with Up/Down, and — unlike a re-scan — does
not pull in unrelated files when the list was built by dropping individual ones. - Filename validation now follows the host's rules. The Windows character set,
trailing dot/space rule and reserved device names were previously applied on
every platform, which rejected names that are legal on macOS and Linux —
Artist: Title.mp3among them.
Fixed
- Execute offered to run batches that would change nothing. Iteration emits a
row per file, so re-running it on an already-numbered folder produced previews
where every target equalled the current name. The button counted them and then
reported "Renamed 0 file(s)". It now counts only previews that would move a
file, and disables when none would. - Test fixtures used hardcoded
C:\tmp\…paths. A backslash is not a separator on
Unix, so those paths collapsed to a single component and the directory-aware
conflict tests would have silently mis-asserted there. Fixtures now build paths
withjoin.
[1.0.0]
First stable release. The project is feature-complete and archived; see
ARCHIVE.md.
Fixed
Deleteno longer removes a file from the batch while you are typing. The
keyboard subscription discarded iced'sevent::Status, so aDeletepress
consumed by a focused text field also fired the list shortcut — silently
changing the batch during ordinary editing. Shortcuts now respect focus, while
the unambiguousCtrlchords stay global.- Conflicts against unchanged files are detected. Only files the pattern
altered entered the preview list, and conflict detection counted just those. A
rename onto the name of a file that was staying put therefore showed a clean
preview, enabled Execute, and failed at run time. Detection now considers every
file in the list. - Conflict detection is directory-aware. Two files with the same name in
different folders were reported as colliding when they do not. - Case-only collisions are detected, both in the preview and in the pre-flight
check, matching how Windows and macOS actually treat filenames. - Access checks test the right permission. Each file was opened for writing to
decide whether it could be renamed. Renaming needs write access to the
containing directory, so read-only files — and files merely open in another
application — were wrongly refused. Verified by a test showing a read-only file
cannot be opened for writing yet renames without complaint. rust-versioncorrected from1.80to1.89. The declared floor was wrong
by nine minor versions, so the documented build instructions could not succeed
on a clean toolchain.- Settings failures are reported instead of being silently discarded.
- Non-numeric input in the Start and Padding fields is rejected at the field,
rather than displayed and then silently reinterpreted as a default.
Changed
- Settings are debounced. Typing in the iteration fields performed a directory
creation, a connection, aCREATE TABLEand six upserts per keystroke. They
now use the same 300 ms debounce as the preview. - Filesystem work runs off the UI executor via the blocking pool, so scanning a
large folder or running a long batch cannot stall the interface. - Colours come from the active theme's palette. They were fixed constants tuned
for the dark theme, leaving light mode with bright-green success text and grey
status text on white. - The file list reloads after a rename instead of being cleared, so results are
visible and a second pass needs no re-adding. - File cap lowered from 10 000 to 2000 to match what the non-virtualised list
renderer actually sustains. The old figure was documented but never achievable. - Execute states the batch size, and explains itself with a tooltip when disabled.
- The window has a minimum size, and the lists grow with it rather than sitting at
a fixed 300 px. Ctrl+↑/Ctrl+↓move the selected file.
Removed
- The
windowsandlibcdependencies. Both existed solely for an
administrator/root check used to decide whether a read-only file could be
modified — a question renaming never needed to ask. Removing it took the
dependency graph from 272 crates to 262, and left the project with no
platform-specific dependencies at all.
Added
rust-toolchain.tomlpinning the verified compiler (1.95.0).- ARCHIVE.md — what the binary depends on, what a future rebuild
needs, and the limitations that are accepted rather than outstanding. - Self-verifying documentation. Tests assert that the crate version,
PROJECT_VERSIONand the README badge agree, that the declared MSRV appears in
the README, and that every numeric limit in the code is documented. Doc drift is
now a build failure. - Test suite grown from 11 to 37, covering conflict detection, settings
round-trips, access checks, keyboard handling and a full scan-preview-rename
pass against a real directory — none of which had any coverage. - The current folder is named in the UI.
Internal
src/app/mod.rs(696 lines, with a 215-lineupdate) split intomod.rs,
update.rsandview.rs.- Domain limits moved out of
theme.rsintolimits.rs;renameandsettings
no longer import a presentation module to get validation bounds. - Single-file module directories flattened to plain files.
- De-duplicated: the two near-identical preview-summary blocks, the settings
database preamble shared by load and save, the setting-key literals written
twice, and the labelled-input pattern repeated five times in the view. status_message: Option<String>plusis_error: boolreplaced with aStatus
enum, removing the representable-but-invalid "error with no message" state.cargo clippy -W clippy::pedantic -W clippy::nurseryis clean.
[0.1.1] — 2026-07-28
Changed
- Dependency majors:
iced0.13 → 0.14,rfd0.15 → 0.17,rusqlite0.32 →
0.40,dirs5 → 6,windows0.59 → 0.62,regex1.11 → 1.13. - Dropped
thiserror.
Added
- Two-phase rename with best-effort rollback.
is_invalidon previews; conflicts and illegal filenames disable Execute rather
than failing mid-batch.- First unit tests (11), covering rename strategies and file operations.
[0.1.0]
- Initial release: find & replace, iteration numbering, natural sort, live
preview, dark/light theme, SQLite settings persistence.
Checksums (SHA-256)
file-rename-plus-windows-x64-v1.1.0.zip
sha256:9451f2c6df8c70b8421132603012f9c147e8cb2d06c9dcf141ea7c196cdb3e73
v0.1.0 - Beta Version
Beta Version v0.1.0
This official release only provide binary files for Windows 10/11 64-bit only.
For other platforms, you can build this application manually, but this information has not been verified to work properly or not because it has not been tested on those platforms.
Checksums (SHA-256)
file-rename-plus-windows-x64-v0.1.0-beta.zip
sha256:c7c4dcd4adb32a2c7e49b6db8a432f677c11b72328690c71f9db49416389bfa3