Repository navigation
Cmdr v0.52.0
The big highlight is multi-rename, which I've been missing for a long time! It lets you rename many files at once,
with patterns, counters, search and replace, presets, a live preview, and Undo. Huge thanks to
Jiri Slovacek for the core functionality, which I then pimped with some fixes and a bunch of
UI polish.
Secondary highlight: proper file-level progress for copy/move/compress transfers, in a tree-view thing. Looks really
nice in my opinion.
Then also a truckload of fixes and improvements, mostly based on user feedback (thanks!) and my own testing.
Added
- Add Multi-rename (⌃M, alpha), contributed by Jiri Slovacek: name and extension masks, counters, search and replace
with regex, case changes, transliteration, a live preview, presets, per-field history, editing the new names in your
text editor, and one-step Undo (b3b2d58, 35fb93c, 83a359b, 450686a, a243220, c266397, 12fc47c,
cf26149, 6b3be9b, 5df8c2a, 1bb91e9, f2b3e4d, c26ea2e, ae9207c, c6a48a2, cf605a1, 2821a6c,
8c918db, 112a6d3, 5d92089, 233feac, 4cd0036, 9b3bd93, 087417e, 07b1f0d, 4292c05, 232e887,
50084d5, 1752f6d, 73c4074, c37ef50, 37b49cc, 802c552, 65612fc, 60ff2ca, 15b5227, 0d174c7,
45cc68e, 285f45e, 8fb4276, 520b846, 7eee055, 4d8b656, 5710c32) - Add a live file tree to copy, move, and compress progress, in the dialog and the queue: the folder and file in flight,
what landed, what got skipped, and what couldn't finish, plus how many files are left (a3130f0, 78181a6,
efd7824, f8c83f0, 3a5c604, 05187ec, 80753d2, 027537e, d138cdf, 29bc11f, 5963209, 2e8983f,
1e2dbff, 6aeded1, c4a0e39, eb1aeb7, 04cbb10, e37f393, e742fcb, f4f5733, 779f92e, 4789208,
8e46624, 8547331, f22e90d) - Keep creation dates, permissions, and Locked and Hidden on copies to and from servers and phones, wherever they can
store them: SMB, SFTP, S3, Nextcloud, and ADB (d8ee97a, 6195a6c, d5f0dd3, b0f191f, a69f0a5, ff0d892,
944c89c, b57edfc) - Say once after a copy or move which metadata the destination couldn't keep (389ceef, ad0bfb5, 80c4c26,
b2e7ac5) - Send a copy, move, compress, or trash straight to the background with F2 or the new Background button (8eaae4f,
fe9e76a, ca47d4c, 966ead5, db28267, de9df80, 5b90136, 3ca1290, ea71de9, 052cf32, 8ae9b18,
5cf0de6, 89b4c1a, 51a2e19, 2544f3b) - Drive the operation queue from the keyboard: arrows, Space, Enter, ⌫, one-letter row keys (S, P, C, B), and ⌥↑ / ⌥↓ to
reorder waiting jobs (5bb02e1, 8fd4ebf, f0c6ba7, f247252, e60c534, 415cba4) - Retry a failed background copy or move right from its queue row (5395936, e954068, f77bf6c)
- Wait up to 15 minutes for a NAS that drops off the network mid-copy, then finish the copy (a38e707, 0b3941a,
d54c4f2, b82717b, c35a393) - Ask whether to move the rest when files a queued operation was waiting on got moved or deleted meanwhile (e455495,
3184e9c, ea2fd5b, 87c691e) - Let Copy and Move take a full destination name: rename on the way, or copy beside the source, contributed by Gábor
Gyebnár (ce24aeb, 5f54ebc, 49a69f6, bbc6763, 9332cf7) - Answer "file already exists" and error prompts with one key (S Skip, O Overwrite, R Rename, and more), contributed by
Jiri Slovacek (34489fa, 7c76bb2, 6b84bc6, 42ecf4b) - Delete permanently with ⇧Delete and ⌥⌘⌫ too, contributed by Jiri Slovacek (07dea53, 796c4eb, 681e8de)
- Add a "Skip confirmation" setting that starts copy, move, and trash in one keypress (permanent deletes still ask)
(e133ff0) - Favorite folders on SFTP, WebDAV, and S3 servers and on phones, and keep favorites on offline shares: picking one
connects (6dbd79d, 0ab9512, 5f1efdc, 687477c, a6e20b1, 6ad6743, a3a9c8e, f6bca9e, 78d96c5,
d3af5a5) - Show favorites as a foldable section in the volume switcher and in the Dock menu (8fa8823, e577050, d0b2786)
- Change a saved server's address without losing its passwords, favorites, or tabs, with Eject and save for a NAS that
got a new IP (5aa41c1, 137817b, 54982ce, 46424a0, 1a5ce7d, 74003e6, a479dba, 62bed75, 9d86401,
e0a1e3d, 14beed5) - Extract Finder-made zips and macOS tars with their Finder tags and icons and without
__MACOSXclutter, and keep tags
when compressing (20a12be, d515b65, 9b2e79f) - Offer "Send error report…" on every failure, and on operations that take long (61717d5, 43f1bf8, 7c9278a,
4494adc) - Let agents send a copy, move, or trash to the background (1991166, 507ee74, a9cd624)
Changed
- Make Copy path and Copy filename copy every selected item, one per line (c6eeba3, 1ea4e50, 019d39b, 607f09b,
ca67c52, a80179f) - Copy, move, and compress folder by folder in name order, whatever the pane sorts by (bd8e945)
- Start each file sooner in copies between a server and your Mac, and keep one slow disk from holding up other copies
(9a20405, 407a0ed, c365eff, d50e6e9) - Make Nextcloud about five times faster per request (d37b8ba)
- Keep panes responsive while the index updates folder sizes or a pane re-sorts (dbfb855, c7b5859, 4c65f8b,
831a0ee) - Always offer a plain Cancel on the "file exists" prompt that keeps what's copied, as a full-size button (03e1a46,
cf78b1d) - Stop offering drive indexing for mounts that can't be indexed (NFS, AFP, WebDAV, FUSE), and ask to connect a phone
instead of restarting Cmdr (b4563cb, 799c778, d6f782e, d16f5e6, dae803f) - Hand an open volume switcher or favorites menu to the other pane with ⌥F1 / ⌥F2 (2b119a1)
Fixed
- Fix copies and moves across drives losing creation dates, tags, custom icons, permissions, and Locked and Hidden, on
folders too (82b7f6f, 6e04eb6, 75261bd, e4cb1e4, 9a51e4f, 249ce82, 9f6862a) - Fix copying a Locked file failing and leaving an undeletable temp file behind (eb10e06, 941e247, ee29321,
d3d272a) - Fix files with long names failing to copy or move, especially onto Synology shares (86c89ce, c14de08)
- Fix copies and zip edits on Finder-mounted SMB shares failing with "Couldn't flush destination to disk" (c03dbca,
d968321) - Fix copying a symlinked folder like ~/Dropbox to a NAS, phone, or server (1fd54c1)
- Fix copies from FAT, exFAT, and some SMB drives adding stray hidden
._files (3f47cad, 9b8419a) - Fix Finder refusing to open zips Cmdr made with folders inside (8d411b9)
- Fix large files on SMB shares timing out in the viewer, and files over 256 MiB refusing to open (f5c135b, b24eca2,
f49dd3d) - Fix Retry now, Cancel, and Disconnect doing nothing on a reconnecting server (95b16b3, f42387f)
- Fix adding a folder on a slow SMB server to favorites (309ac74, 066ee0e, b9522d8, 7cfb4ec, 9aad86d)
- Fix a crash when dragging some files from a phone or server to Finder (2f694e9)
- Fix a rare crash while rotating log files (8baff7e)
- Fix Cancel on a move's "file exists" prompt leaving the prompt on screen, contributed by Jiri Slovacek (af35957,
96f6695, 5986b9b) - Fix the error dialog naming a hidden temp file instead of the file it couldn't write (9dd8995)
- Fix a slow cancel claiming it's "finishing USB transfers" on SMB and local copies (6b3cb43, 50f61fe, cfc226a)
- Fix selection after copies: a ⌘A copy deselects files as they finish, and the other pane's files stay selected
(ac64cb4, c7ef21f, ffb6b6a) - Fix Space not closing Quick view, and ⇧Space closing and reopening it (039f8d1)
- Fix viewer zoom keys needing a click on the image first, contributed by Jiri Slovacek (0741561, f07c01e)
- Fix ⌘⌥ shortcuts like ⌘⌥R not firing on keyboard layouts where ⌥ types a symbol (debd848)
- Fix favorites and Go to folder landing on a remembered folder instead of a drive's or share's root (8205d72,
6542285, ef245b5) - Fix the copy dialog missing "into its own subfolder" on external drives, and refusing some cross-drive copies
(2c4892a) - Fix trusting a server's new host key rejecting its saved password (7462059)
- Fix an eject blocked by a background macOS process asking you to close files you didn't have open (c3111c7)
- Fix a file created as you open its folder staying missing until you navigate away (314eb0c)
- Fix a slow refresh occasionally showing an older listing over a newer one (abba69e)
- Fix a new local folder adding a phantom row to an SFTP pane (09164a0)
- Fix dialog buttons wrapping in longer translations (5363605, a23fc6d, f133618, b658512)
- Fix Voice Control not finding the function key bar, search chips, and Background buttons by their visible words
(19207e1, 9c6724c, 11487be) - Fix short toasts breaking mid-word, and tooltips drawing over open menus (bfd0c02, b7aadab)
- Fix password-protected or custom-port SMB shares mounted through GNOME on Linux opening the wrong folder (d00f6bf,
f26f1eb)
Security
- Keep Gatekeeper's quarantine on files extracted from a downloaded archive (792f15c)
- Keep private files and folders private while copying them (82b7f6f, 9a51e4f)
- Stop a tiny crafted
.xzor.zstarchive from reserving gigabytes of memory (4ee0701) - Update the network and SFTP libraries for upstream security fixes (6fe59c8, 287f74e)
Non-app
- Pin how copies preserve every metadata class with a test matrix that each fix flips (0f7ddfd, 6600e20, 0b55031,
e431847, b289e1f, 87eef5b, f27e8cf, 4dda6c3) - Extract the listing engine into its own Tauri-free crate (1646cc7, 733c4b6, 5ce7336, 357af15, c04f8cf,
fb8faed, 67d3e64) - Move to SvelteKit 3, Rust 1.99, Go 1.27.2, Vitest 5, pnpm 12, Tauri 2.12.2, and Svelte 5.57, and halve the git crate's
clean build (4538a46, fb29947, 90334fc, f44c721, 5011199, 10d6409, 970abf4, 33ab595, f50cf74,
d500879, aa1e23e, e2ef385, b5542ec, 90a3346) - Make
pnpm check --fasttake ~6 s instead of ~55 s and run it on every push (547b50e, deb0c54, 4ae3496) - Fail the build on a command with no keyboard path or a mouse-only click handler (6ab7e40, 05f3220)
- Report the reason behind an Objective-C exception crash, redacted like a panic message (1f578b9)
- Replace Prettier with oxfmt everywhere (005d268, 4a52960)
- Claim SLSA Build Level 3 on the trust page, and fix the Homebrew tap skipping its version bump (ff3dede, 60a6428)
- Fix flaky watcher, downloads, Nextcloud, SMB, and website test lanes (dbe06ca, eceb5ea, 51c39c8, 559192e,
f92a03e, 434e1c7, 3f13e47)