Search one drive instead of all three — and the Activity page finally remembers more than this session
Both platforms. Almost all of this came straight from customer mail — three separate reports from one photographer with a 200,000-photo library across three drives, and, in the Duplicates section at the end, two customers who lost photos to a removal the app let them run without saying anything unusual was happening.
- New — AI Search can search one folder instead of everything you have indexed: With a library and its backup both indexed, every result came back two or three times, and the folder list could not help because it has never governed searching — taking a drive off it only dropped the rows, at the cost of hours to rebuild them. There is now a scope picker beside the search box.
- New — a folder that moved can be pointed at its new home instead of re-read: Rename an external drive in Finder and every indexed path named a volume that no longer existed, so a 150,000-photo library read as unindexed. A missing folder now shows an amber row with a Locate… button; point it at where the folder went and the semantic index, the face index and the free-tier ledger are re-keyed in place, with nothing re-read.
- New — the Activity log shows where each file ended up: “Open destination folder” is the results panel's main button, and it is gone the moment you dismiss the receipt. An hour later the only thing that still knows is the Activity log, which held it as text you could not act on. Every line now has a reveal button.
- New — indexing says which drive and folder it is working through: A running count is proof of life, not information, and on a library spread over several drives it cannot answer the one question a twenty-minute pass leaves you with. It names the drive as well as the folder, because folders called “2012” exist on every drive a photographer owns.
- New — index one folder instead of the whole list: Plug a drive back in and the only button on offer re-read every other folder on the list first. “I cannot just choose this drive” is how the customer put it, and he was right: the control did not exist. Each folder on the list now has its own index button.
- Fixed — naming people and then filing them threw the names away: A name is pinned to the photo it was typed on, so when Split into Folders or Move to Folder moved those photos, the people came back unnamed on the next scan — fifty people named, fifty names gone, with nothing on screen to say why. The photos were never at risk; the names now travel with them, and so do the groups you merged by hand and the faces you marked as “not a person”.
- Fixed — organizing your library made the next People scan start from zero: Every move the app makes tells the search index where the photos went. It never told the face index, so Find a Person could not recognise a single file it had already read and analysed the whole library again. On a large library that is the difference between seconds and an evening.
- Fixed — a drive plugged in while FolioSort was open stayed marked unreadable: The check ran when the panel opened and never again, so a drive connected a minute later kept its amber warning for the rest of the session — and a folder marked that way is dropped from the search scope menu, so the drive quietly disappeared from the list of places you could search. Quitting and reopening was the only way out. The app now notices the drive arriving, and pointing Locate… at a folder that is already back clears the warning instead of refusing.
- New — the app tells you it updated: FolioSort quits, swaps itself and reopens, and by then the window's own version has been replaced — so an update that worked perfectly looked exactly like one that never ran. A strip above the status bar now names the version you are on and links to these notes.
- Fixed — a photo copied onto another drive was filed by the day it was copied: Hundreds of a customer's 2006 photos landed in a 2026 folder. They were resized exports with no EXIF capture date, so the file dates decided — and the creation date was the day they reached his SSD, while the modification date had survived the copy untouched. A copy can only push the creation date forward, never back, so when the two disagree the earlier one is about the photo. Filing by the earlier of the two is now the default wherever a photo has no capture date of its own.
- Fixed — the Activity page promised thirty days and showed only this session: It read a list held in memory and never opened the log file, so it started blank at every launch while months of history sat on disk unread.
- Fixed — a run whose destination filled up failed every remaining file one at a time: In the worst case seen, 156,000 errors over half an hour — asking a full disk for space 156,000 times after the first refusal, then showing a wall of identical errors nobody could act on. The run now stops after ten disk-full failures in a row and says how many files were never tried.
- Fixed — a run that moved nothing now says where your photos already are: A large “0” over “Nothing was moved” has two opposite meanings — everything was already filed, or the run failed — and it is the second one people read. A customer organized 703 files, ran the same folder again minutes later, got that “0”, and wrote in asking where his photos had gone. The panel now names the folder they are already in.
- Fixed — taking a folder off the AI Search list asked the wrong question, destructive answer first: Your action was “take this off a list” and the sheet restated the destructive outcome instead, with the destructive button first and no mention that saying yes costs hours. One customer re-indexed 48,650 photos before finding out.
- Fixed — the collision warning described a run that could not happen: Under two of the three duplicate settings it named an outcome that was never going to occur — promising that both files would be kept with a suffix, over a run that then filed nothing at all. A warning that misdescribes what it is warning about is worse than none.
- Fixed — the wizard would not scan a source it had not picked itself: A folder restored from your last session showed up filled in and let you carry on, but nothing ever scanned it: Review said “0 files found” and Start never enabled.
- Fixed — a failed merge now records what the failures were: A count on its own cannot separate a full disk from a permissions refusal from a drive that went away — all three arrive as the same number, which left one customer's failed merge undiagnosable without asking him to send a log by hand.
- Fixed — the free “organize the next 100” button is offered once per scan: One free install pressed it 97 times across 6.7 hours of runs. The first capped run still ends with a one-click way to keep going, and a fresh scan earns one more.
- New — Duplicates undo survives closing the app: Every other screen that can destroy something — Organize, Merge, Rename, Events, AI Search, Workflows — has kept a journal on disk all along. The one module that removes the most files at once kept its history in memory, so quitting the app threw it away. One customer binned 29,099 files across four sessions and asked for them back twelve days later; the app could offer him nothing, and the only honest answer was to send him to Explorer to restore them by hand. Rounds are now written to disk, up to 50 of them, and the Undo is there at the next launch.
- New — a removal that is out of proportion for the folder now says so: A confirmation that shows you a count, the bytes freed and a list of 9,840 file names is not a review — it is an obstacle you click past. The customer who did exactly that lost two thirds of a folder: her other folders ran 13% duplicates, that one read 68%, and nothing on screen said the run was unusual. The share is now stated above the list, in one sentence, where it is read before the eye reaches a scroll view nobody scrolls.
- New — above 10 GB, the app says the system bin is not a safe place to leave photos: The Recycle Bin and the Trash both have a size limit and both drop the oldest files in them without asking. Nobody had ever been told that before leaving 100 GB of photos there. Past ten gigabytes the confirmation now says the batch may not all still be there weeks from now, and offers the alternative that keeps them: move them to a folder instead.
- New — moving duplicates into the folder you just scanned now asks first: There is no exclusion mechanism in the scanner, so archiving inside the scanned tree means the next scan reads every archived file and reports it as a duplicate of the original it was removed for — the count climbs back, the same photos return, and nothing explains why. It is asked, not refused: someone who will not scan that folder again is entitled to park them there.
- New — Windows: the Activity page finally has its Clear and Export buttons: Both actions had existed in the code since the page was written and neither had a control anywhere in the window. The Mac has had both all along.
- Improved — a duplicates scan over a large library was CPU-bound on its own hashing: On a 22 GB folder the scan sat at “Analyzing photos, 70%” for over thirteen minutes and would have taken about an hour. Reading the disk was never the problem — the content hash itself was running at 5.5 MB/s, throwing away the file buffer and rebuilding it for every chunk. It now runs at 99 MB/s, and that 22 GB scan finishes in about four minutes instead of sixty-eight.
- Fixed — pressing Return went ahead with the very thing the warning was about: Both new cautions above appear over a confirmation whose default button was still the one that removes the files, so Return did the removal with the warning on screen — the app warned you and then handed you the one key people press without reading. On Windows the same fault sat on the “inside the scanned folder” question, where a single Enter moved 12 files into the tree being scanned. Return is no longer wired to the destructive answer on either platform while a caution is up.
- Fixed — Windows: the restored Undo was hidden behind a scan: The bar holding the Undo button only appeared once something had been scanned — so on the launch after binning, which is the only launch the saved history exists for, the history loaded, the Undo was ready, and the button was never drawn. Finding your own undo meant scanning something first, which is not a thing anyone would guess. Failures during an undo were also being recorded and never shown; they are now reported.
Keep Best Shots joins your workflows — and every renamed file carried a millisecond stamp of 000
Both platforms, though they arrived days apart: the Windows build shipped on 12 September and the Mac build followed on the 13th, after a verification pass that compared the two side by side and turned up three faults the Mac had been carrying quietly. The rename fix below affects the name of every file the app has ever renamed with a millisecond preset.
- New — Keep Best Shots is a sixth workflow step: Chain culling into a run like any other step, grouped by burst or by moment, with review on by default so nothing is discarded without you seeing it.
- New — choose who a People split includes: Pick which people the split covers instead of taking all of them, and put several people into one shared folder — for the couple, or the family, who belong together rather than in a folder each.
- New — Organize warns before two different files land on one name: A run whose plan puts different content on the same name is the one case where organizing can destroy something, and it was silent. It now checks the plan rather than the outcome, so nothing has been written by the time you answer.
- New — how long the run will take, before you press Start: The estimate was only ever visible once the run was already going. A move within one disk says so outright — seconds, because nothing is copied.
- New — a free-text template field in Rename, and your saved presets reach it: The engine could always do this; there was no field to type it into. Presets now reach Rename and the workflow steps too. New tokens: {Maker}, {ParentFolder}, {Lat}/{Lon} and {Quarter}.
- New — iCloud exports keep what the export knows: Albums become keywords, favourites become stars, and the album name reaches {Album} so you can file by it. The Exit Report used to tell you to use
{Album} at a point where nothing could actually resolve it.
- Fixed — every renamed file carried a millisecond stamp of 000: Six of the seven rename presets end their timestamp in milliseconds. Those three digits were 000 on every file from every camera, because EXIF does not append the fraction of a second to the capture date — it keeps it in a separate tag that nothing here had ever read. So the field that exists to separate two frames shot in the same second was a constant: two frames in the same second still collided, and the only thing it did was make names longer. Found by a customer.
- Fixed — a Keychain that refused to answer handed out Elite: A brand-new free install could come up reading “FolioSort Elite — all features unlocked”, with every paid gate open. The stored tier was read through a call that returns nothing for both “there is no licence here” and “the Keychain would not answer”, and those mean opposite things. Found while screenshotting the first-run screens.
- Fixed — a refused metadata write was reported as a success: When exiftool declined to write — a read-only file, a format it will not touch — the run said it had worked. Every refusal is now surfaced, and a failed place-name write names the file and the reason.
- Fixed — picking a folder in the Exit Kit froze the window: Up to 22 seconds on a cloud folder, with nothing on screen to say the app was still alive.
- Fixed — two things the Mover got wrong by default: The destination now follows the folder you picked instead of sticking to the first one of the session, and the default folder template is month buckets rather than a folder per shooting day, which on a 20-year library meant thousands of folders.
- Fixed — an AI Search index could be started on top of a live face sweep: All four AI Search tools share one pool and only one may run at a time, but the People sweep was missing from the guard, so “Update Index” stayed enabled during one. On Windows the same gap showed up as a customer report that the button did nothing at all.
- Fixed — “No types selected” over a full set of ticked boxes: The file-type filter's footer worked out that nothing was selected from a count of files rather than from the filter itself, and three of the five screens that use it can hand it a legitimate zero with every type ticked — the Mover once you deselect files by hand, Merge before anything is marked, and Rename before the preview is built. It now asks the filter, which is the only thing that knows. The header also said “0 of 649” under a heading reading “File types”, where it reads as a count of types; it is a count of files, and now says so.
- Fixed — the Videos subfolder is a Pro feature and every free user had it on: It was switched on from the start and only checked when you touched the switch — which a free user never did. Free runs were filing videos into their own subfolder all along. It is now decided where the run reads it, not where the screen draws it.
- Improved — the free hundred is spread across your library: A capped run used to take the first hundred files of the scan, which is one afternoon of one year. It now samples across the whole library, so what you get back shows you what FolioSort does with twenty years of photos. The folder picker also opens at Pictures rather than wherever it was last.
- Improved — a window of our own for updates: The update prompt was a standard alert with a web view inside it, and the web view loaded the GitHub release page — nav bar, “Sign in”, the repository name, and the notes below the fold. It now shows these notes, written for you, and the Install ID is in Settings ▸ About with a Copy button so support can match a mail to an install.
AI Search answers in 62 ms instead of 789 — and in Copy mode, free users could not get past file 100
macOS, with a Windows build of the same version. Two things here were walls rather than slowdowns: a Copy run that could not reach file 101 no matter what you clicked, and an auto-grouped event that has been quietly one photo short for as long as Events has existed.
- AI Search is 12.7× faster: At 100,000 photos a query went from 789 ms to 62 ms, and text-in-photo mode from 446 ms to 45 ms. Nothing about how you search changed — it answers now instead of pausing.
- New — the search box says whether you mean what a photo shows or what it says: A mode picker makes that choice yours instead of leaving it implied. It also fixes a result you could not get rid of: a file-name or OCR match was pinned above the match-strength slider, so dragging the slider could not filter those results out no matter where you put it. Shift-click now selects a range of results, the way it works in Finder.
- New — zoom in the preview windows: Scroll to zoom up to 8×, drag to pan, double-click to fit — both in the single-photo preview and in the duplicate comparison. Choosing between two near-identical photos without being able to zoom was choosing blind. Double-click now fits instead of closing the window, and mice with older scroll wheels are no longer ignored.
- New — Events groups on an interval you pick, from 1 minute to 3 days: It was fixed at one hour, which swallowed a burst of screenshots into a single event and split a long evening in two.
- New — Events can include files that have no capture date: Screenshots, exports and downloads carry no EXIF capture date, so Events used to leave them out entirely — and say nothing about having done it.
- Fixed — every auto-grouped event was one photo short: Auto-grouping dropped a single file from each event, its own last photo, for as long as the feature has existed. Every event now matches the range it says it covers.
- Fixed — in Copy mode, free users could not get past file 100: Copy is the default mode in the Mover, and the free limit was counting the same hundred files over and over: they were re-copied, skipped as already present, and the list never moved. There was no sequence of clicks that reached file 101. A file that is already sitting at the destination no longer permanently occupies one of the hundred either.
- Cloud and NAS folders are free: Where your photos live is no longer a Pro question. The 100-file limit is the whole rule.
- New — clear thousands of Similar groups in one action, in Duplicates: Select suggested only marks copies FolioSort has measured and is confident about, and groups land in the Similar tier precisely because they fall below that bar — so on a large Similar result it marked almost nothing, and because it makes the selection match the suggestion exactly, it cleared the picks you had made by hand in those groups at the same time. The bottom bar's Select suggested is now a menu with two actions: Apply suggestion, unchanged, which marks what FolioSort vouches for; and Keep suggested, mark all the rest, which keeps each group's suggested photo and marks every other copy in every group currently in view, with no confidence bar. The new action is only available with a tier selected in the FILTER list in the sidebar, never on All, so it cannot sweep your whole library by accident, and it tells you how many groups and how many files it is about to mark before it marks anything. Marking is not deleting: Move to Trash is still a separate press. Worth knowing before using it on a large Similar result — the suggested photo is picked by resolution, then RAW over JPEG, then file size, then the oldest timestamp, which is the right question for an identical copy and the wrong one for a burst of similar shots, where the group may be genuinely different frames rather than copies of one. On Windows this action is written but has not yet been through its verification pass.
- Under the hood: Undo history is now written to disk instead of failing silently, and packaging fails loudly when a resource is missing from the app bundle rather than shipping a build that cannot start.
On a brand-new Mac, FolioSort quit the moment you opened it — that is fixed
macOS first. The fault could not happen on Windows, so there was no Windows build on the day; one of the same version followed later that day. If you installed FolioSort for the first time on a Mac since 29 August, this is the release you need.
- Fixed — the app closed itself on a first install, before a window ever appeared: You opened FolioSort, nothing came up, and opening it again did exactly the same thing — no error, no window, nothing to act on. The welcome screen that runs once on a brand-new install looks for the FolioSort logo as it starts, and it was looking in two places that only exist while the app is being built, never in the finished app where the logo actually sits. That lookup was written to stop the app outright rather than carry on without a picture, and because the welcome screen is assembled while the very first window is still being put together, the app ended before there was anything on screen. Present in 4.9.3, 4.9.4 and 4.9.5, and it affected every brand-new Mac install since 29 August. Upgrading was never affected — you had already been past the welcome screen, so it was never shown to you again. Nothing on disk was ever at risk: the app never reached the point of opening a folder. Reported by a customer who could not open the app at all; a test now blocks the whole class of mistake rather than the single line that caused it, because the identical fault had been fixed once before, in AI Search in July, and came back.
- Improved — the welcome screen no longer reads as a frozen app: With the crash out of the way, this screen could be watched running for the first time. It sat completely still for half a second before anything moved, took about a second and a half to finish settling, and the “after” column began so faint that there was no result to compare the “before” against — the payoff was a hole where a picture should have been. It now begins moving almost at once, settles in roughly half the time, and both columns are readable from the first frame. Same sequence, half the wait.
- Improved — two lines on the welcome screen that asked the wrong thing, or asked it too quietly: “Curious how you found FolioSort?” was putting the question to the one person who already knew the answer, and in everyday English how you found it asks what you made of something rather than how you arrived at it — so it could be read as asking your opinion of an app you had not opened yet. It now reads “How did you first hear about FolioSort?”. Separately, the line pointing to the paid tiers was the smallest text on the screen and sat so close to the button above it that it read as that button’s caption. It now has room, is set large enough to find, and opens with what you might want rather than with what the free tier will not do.
Cloud photos are no longer pulled down behind your back — and Duplicates stopped pre-ticking photos it never really compared
macOS, with a Windows build of the same version. Two things here were quietly answering questions they had no way of answering: a scan that skipped half your library and still said “no duplicates found”, and a “% match” that could never drop below 91% no matter what it was looking at.
- Fixed — photos stored in the cloud are no longer downloaded behind your back: If your library lives in OneDrive, iCloud Drive or Dropbox, much of it may not be on your Mac at all — the files appear in Finder, but the contents stay in the cloud until something opens them. Opening one is the first thing FolioSort does with a photo, so pointing it at a synced folder quietly started pulling the entire library down your connection and onto your disk, with nothing on screen explaining why the app had stopped responding. It now recognises those files without opening them, leaves them alone, and says how many it skipped and what to do about it. Organizing is the deliberate exception — it still downloads what it needs, with a progress bar, because a photo cannot be filed by a date nobody has read.
- Fixed — nothing is pre-selected for the Trash unless the files are genuinely identical: In Quick mode Duplicates compares a small fingerprint rather than the photos themselves, and the “% match” shown beside those results was that fingerprint comparison rewritten as a percentage — a number that could never fall below 91%. The safety rule meant to stop weak matches arriving pre-ticked therefore never fired. Quick mode now pre-selects only byte-for-byte identical copies, verified by reading both files end to end. Anything matched visually arrives unticked, labelled possible match rather than a percentage, and grouped under Similar. Select suggested follows the same rule, instead of putting straight back what the app had just decided not to select. Comprehensive mode is unchanged — it really does compare the images, so its percentages mean something.
- Fixed — scrolling a large duplicates result no longer locks up: Every tile asks for its own preview, and scrolling past one stopped the app waiting for that preview without stopping the work. A fast scroll through a big result left hundreds of decodes running for photos no longer on screen, which with RAW files was enough to jam the window. Previews are now limited and genuinely cancelled when they scroll away.
- AI Search finds a photo by its number, whatever your camera calls the file: Searching
4782 found nothing when the file was _DIV4782.NEF, while 2465 happily found DIV_2465.jpg — whether it worked came down to whether your camera puts a separator before the digits, which Canon does and Nikon and Sony often do not. Numbers now match inside the name, including when the camera pads them with a leading zero (1643 finds DSC01643). Matching stays exact: 4645 still does not return IMG_4644.
- Fixed — AI Search says when it could not read a folder: A disconnected drive, or a folder the app had lost access to, reported “0 new photos ready to search” under a green tick — which reads as nothing to do when the truth was I could not look. It now names the folder and asks whether the drive is connected. A folder that is genuinely empty still gets a plain, quiet zero.
- The Mover reports how fast it went: Speed and total size were only ever counted on network volumes, so every run to an internal disk showed a duration with no MB/s and no size beside it. Throughput belongs to the run, not to the network.
Find Duplicates could take the whole machine down — and AI Search can find a file by its name
macOS, with a Windows build of the same version. Every fix in this release came out of one person's reports over a week of emails. If you have ever wondered whether writing in changes anything: this is a release that exists because someone did.
- Fixed — a duplicate scan could ask for 63 GB of memory: Checking a 2 TB drive produced macOS's “Your system has run out of application memory” three reboots in a row, with FolioSort holding 63 GB on a 16 GB Mac. The last step of a duplicate scan reads every candidate pair end to end — two files sharing a size and a hash are only probably identical, and the app is about to offer to bin one of them — but it read in 1 MB pieces and never let go of a single piece, so memory grew in step with the bytes read. Reading 2,400 MB through that step: 2,412 MB held in 4.9.3, 5.8 MB in 4.9.4, and flat however much it reads. The same mistake was in file hashing, which verifies moves and copies; there it was bounded to one file at a time, so it never took a machine down, but a library of large videos could have. Nothing was ever at risk — the step that failed only reads.
- Fixed — “Run in Background” now actually lets you carry on: “I get two choices — deal with it now or in the background. Same amount of time right?” Right on every count: both buttons disabled Organize exactly as hard as each other, and all “in the background” bought you was that the progress bar was out of your face. Worse, the prompt appeared whenever any photo had GPS in it, which is not the same question as whether your run needs the answer — filing into
2019 › 07 July, a place lookup changes where not one photo lands. A background lookup now blocks only when your folder pattern actually contains a place token.
- Fixed — the empty folder you picked is now offered to you: Four Moves with “Tidy up folders a Move leaves empty” switched on left four empty folders standing and said nothing. The cleaner deliberately stops before the folder you chose in the picker — that one is not the app's to throw away unasked — but when your photos sit directly in it there is nothing else to clean, so the run removed nothing and reported nothing, identical with the setting on and off. The results panel now says “The folder you picked is now empty · Move it to the Trash”. Never automatic, whichever way the setting is set; volume roots, your home folder, the destination, packages and system folders are refused outright.
- New — AI Search can find a file by its name: “So with the AI search can it find a file name? Or only AI stuff like ‘show me a cat'?” It could not, and that was a gap rather than a design choice. AI Search knew what a picture looks like and what text is printed inside it; your own file names were never part of it, so typing
DIV_2465 sent a perfectly clear request to the visual side and got back a shelf of unrelated faces. It now searches names too, labelled Filename so you can see why something matched.
- Fixed — “Updated 14 hours ago” was answering a different question: “It says I updated indexing 14 hours ago but I just did it now. Twice!” Both runs worked perfectly. The line underneath showed when the index last changed, not when you last ran it — and on a fully indexed library nothing changes, so the date sat still while the app did exactly the right thing. It now reads Last scanned and moves every time a run finishes.
- New — the index can finally be cleaned out: One index held 127,930 photos for a folder containing 61,258, because removing a folder from the list never removed its photos from the index — and those unreachable leftovers competed for room in every set of results. Removing a folder now asks whether to take its photos out too, and says how many; an index carrying photos from folders you no longer list offers Remove them from the index, instantly, with everything that stays keeping its indexing; and Rebuild index sits next to Clear index for when you would rather start over.
A first screen that shows the work, plans you can compare, and Review rebuilt
macOS only; Windows stayed on 4.7.4 for this one. Mostly about screens that described what they were doing instead of showing it — plus a zoom that had been magnifying a thumbnail of your photograph rather than the photograph.
- The first screen shows the work instead of describing it: Opening FolioSort used to mean reading four sentences about it. It now shows you: camera and phone filenames scattered on the left —
IMG_4821.HEIC, DSC_0032.NEF, PXL_0031.dng — settling into Photos › 2019 › 07 July › Lisbon on the right, with the count running up, and both halves staying on screen so the before and after can be compared rather than remembered. Six things the app does rather than four: keeping the best shot of a burst and running on autopilot were never mentioned there at all. Three of the six are the AI features, and the question they raise is answered beside them instead of in the small print — every one of them runs on your Mac.
- Plans you can actually compare: The upgrade screen was forty-odd ticked boxes in a scrolling column, which described the paid tiers thoroughly and never helped anyone choose between them, because Pro and Elite were never on screen at the same time. They now sit side by side, five lines each, with the full list behind See everything included. What you were doing when the screen opened is the first line rather than a footnote — “Free processes 100 files per batch. Upgrade to handle all 5,809 in one run.” — and the licence key box has stopped competing with the buttons. Two things that were simply wrong also went: someone who already owned Pro was being told what the free tier does, and the Most popular badge was appearing on the Elite card in the one case where Elite is the only card on screen.
- Best Shots → Review, rebuilt: Press
G for the whole folder — Review could previously show one photo and its immediate neighbours and nothing else. The grid shows every photo, with the ones you have already decided dimmed rather than hidden. ⌘-click adds a photo, ⇧-click takes a run, ⌘A takes everything shown, and Copy and Move then act on your selection with the count beside the buttons, so a twelve-photo move can never look like a seven-hundred-photo one. Next left jumps to the next undecided photo and widens the filter first if one was hiding it. The camera settings and histogram are back and on by default, behind a button marked ⓘ Info.
- Zoom shows the photograph, not a thumbnail of it: Zooming a RAW used to magnify the small JPEG preview embedded in the file. On a Canon R6 that preview is the full frame, so nothing was lost. On a Sony A7R V it is 1616 × 1080 against a 9504 × 6336 sensor — 17% coverage — so at 200% you were looking at an eight-fold enlargement of a small JPEG. A DJI drone came in at 24%, a Panasonic DC-L10 at 37%. Zoom now checks each file and reads the real sensor image when the preview cannot honestly serve the magnification. No list of “bad” cameras is involved — the check is per file, so untested bodies get the right answer too, and files whose preview is already the full frame pay nothing.
- Every progress screen says how far along it is: Nine hand-copied progress cards, several of which — Best Shots, Photo Quality and all three AI Search panes — showed a spinning wheel while holding the exact counts internally, so a twenty-minute index gave you no way to tell nine per cent from ninety. They are now one card that leads with what you actually track:
98 of 278, the bar, the time remaining in words, then the rate. The filename, which changes fifty times a second and cannot be read, is a footnote.
- The panel at the end of a run arrives whole: It used to be assembled in front of you — an empty box, then the count, then the destination, then the folders one chip at a time — although all of it was known the moment the run finished. The only thing that still moves is the People strip, which genuinely does arrive later, and it moves into a space already reserved for it. The folders gained a proportion bar, so you can see that one day took a third of the run, and the destination is a full path you can reveal rather than a folder name buried in a sentence.
- Lens names on third-party glass: A Lens row could be blank while Lightroom showed a name, because the EXIF tag is present and empty on third-party lenses and the real identity sits in the maker notes. FolioSort reads those now — and where the camera's lens code is genuinely ambiguous, because Canon reuses one code across makers, it says so (“24-70mm f/2.8 — Sigma or Tamron”) rather than picking one and hiding the doubt.
The runs that failed every single file, and why they never said so
macOS only; Windows stayed on 4.7.4. Two customers hit the same shape from opposite ends and neither was told why — one got 605 permission failures in 70 seconds, the other ran the same job five times across four days, up to eight hours each, and never moved a file.
- Fixed — the destination is tested once, before the run starts: A refused destination used to be rediscovered one file at a time, for hours: 26 minutes, 24 minutes, 2½ hours, 8 hours, 5 hours, across a 459,504-file library, with nothing moved on any of them. If the destination cannot be written to you are now told in seconds. That check already existed in the Mover; it now covers all nine modules that move, copy or delete — Duplicates, Photo Quality, AI Search, Merge Sources, Takeout, Person Split, Culling and card import.
- Fixed — failures name their cause, once: Instead of the same error repeated 605 times, the results panel states what went wrong at the top. In the first case the honest answer turned out not to be permissions at all — the files were locked, which macOS reports with an identical error code. FolioSort now tells those two apart and says which one you are looking at.
- Moving many same-named files no longer slows to a crawl: When files land in one folder under the same name, FolioSort appends
name 2, name 3 and so on — but that ladder restarted from the top for every file, and each probe walked a folder that kept growing, so four times the files cost 176 times the work rather than four. Measured on a real library: 1,000 files went from 6.59 s to 0.16 s, and 4,000 from 156.84 s to 0.69 s. The modules this hit are the ones that relocate duplicates — files that share names by definition — so the worst case was also the normal one.
- Culling, seven fixes: Ratings written into your photos can now be undone · a rescan no longer throws away the stars you just gave · a star rating no longer restamps the photo's date · pressing
0 clears the star and leaves the colour label alone · a trashed photo takes its star and its colour with it · focus is measured on the upright frame, not the raw sensor orientation · a cancelled scan no longer passes a prefix off as the folder name.
- Fixed — things that were quietly losing work: Changing the place-name language silently wiped every cached lookup you had built up · after a failed snapshot, place-name undo could delete the field instead of restoring it · an undo journal that cannot be written is now a failed append rather than a silent replacement of the journal · photos you had thrown away stopped coming back in AI Search results · a People split done as a copy can now be undone, and copy is the default.
- Stop buttons, and a window that stays responsive: A Stop button on the two metadata writes that had none · Import from Card can be stopped and remembers what it already brought in · the People scan no longer freezes the window before it starts · Culling stops recomputing the keeper on every tile of every redraw.
People that aren't people, and Duplicates that no longer looks frozen
macOS only; Windows stayed on 4.7.4. This supersedes 4.8.1, released earlier the same day — it has everything 4.8.1 had, plus the People work and two fixes found afterwards.
- Fixed — a truck tire had earned its own tile in People: Next to a clock face, a door and some blank white frames. That is not a bug in the clustering: the detector is a face detector, not a verifier, so asked where the most face-like thing in a photo is, it answers even when there is no face in it at all. Detections that are not faces are now rejected outright, using two measured gates — how flat the region is, which kills blank and blown-out patches, and whether the eye and mouth geometry is physically possible, which kills collapsed shapes. The thresholds come from 140 real photos, not from taste.
- New — “Not a person”, on any tile: For whatever still slips through. It hides the pile and keeps it hidden across re-scans, with two ways back because hiding is easy to do by accident: Undo right where the tile vanished, and Restore All in Settings. The People grid also stops overstating what it found — the count now reflects what is actually on screen.
- Fixed — Duplicates no longer looks frozen: Reaching “Checking exact copies… 20,902 / 20,902” appeared to hang, sometimes for a very long time. It was not hanging: before FolioSort will mark two files as identical it reads both of them all the way through, byte by byte, because it refuses to arm a file for deletion on a fingerprint alone. That check simply reported nothing while it ran, behind a progress bar already showing 100%. It is now its own step — “Step 3 of 4 · Confirming exact copies… n of m” — and, more importantly, Cancel works during it. Previously the button did nothing for as long as that step ran, which is precisely when people press it.
- Fixed — the People grid no longer freezes the window: Re-grouping faces grows with the square of how many faces you have, and it was running on the same thread that draws the window — so on a large library the whole app froze for over two seconds every time you merged two people, renamed one, hid a tile or undid something. Same results, no freeze.
Same-disk moves are instant, and three things that were misleading you
macOS only; Windows stayed on 4.7.4. Everything here came out of one support thread, from a user organizing a 95,000-photo drive. Superseded the same day by 4.9.0, which contains all of it.
- Moving files on one disk is now nearly instant: With Verify Integrity switched on, moving photos between two folders on the same drive meant fingerprinting the file, writing a complete second copy into the new folder, fingerprinting that copy, and only then deleting the original — around three gigabytes of disk work to move a single 1 GB video that never needed to move at all. A move within one disk copies nothing; the drive just updates where the file lives. FolioSort now does the fast thing there and keeps the full byte-for-byte check for the cases where it genuinely matters, between different drives or to a network drive. One user measured 0.4 files/s with an estimate of over two and a half hours. If you turned Verify Integrity off to work around this, you can turn it back on.
- Place names take a fraction of the time: Sorting by City or Country asks a geocoding service for each location, and that service allows about 40 requests a minute, so a large library could spend hours there. FolioSort now reuses the answer from a photo taken within about 110 metres — the same city and the same street by any measure — and roughly three quarters of those requests disappear. Your existing cache still works.
- Fixed — the Photos / Videos tabs no longer mislead: The All / Photos / Videos / Other tabs above the file list only change what you see. They never changed what gets organized, but nothing said so and the file count beside them never moved — so picking “Photos” and pressing Organize would still file your videos. Those tabs now carry their own counts (
All 607 · Photos 605 · Videos 2), and when one is hiding something a line underneath says it is a view and points at the funnel in the toolbar, which is the control that really does leave a file type out. Select All also respects what is on screen now.
- New — “Rescan needed”: The file-type chips and Include Subfolders are read when the scan runs, so changing one afterwards used to do nothing at all, silently, while the setting sat there looking applied. The Scan button now turns orange and says Rescan needed. It asks rather than rescanning on its own — a big drive or a NAS should not start a full walk because a checkbox was touched.
- New — Clear index: In the AI Search Index Status panel. For the record, because it is a fair question: indexing does not put a file next to each photo and never writes anything into your photo folders. It writes one file, about 1.1 KB per photo — roughly 40 MB for 35,000 photos — and the button deletes that one file.
Place names written into your photos
macOS only; Windows stayed on 4.7.4. FolioSort has always turned coordinates into a place and used that place to name things — folders, filenames, the file list — but never wrote the word anywhere a cataloguing app would read it. So the moment you left FolioSort, the place was gone.
- New — the place goes into the file: After a scan that resolves places, FolioSort offers to write them, and names the ones it found rather than counting them — “Lisboa, Porto, Sintra and 1 more” — so you can judge them before anything is written. It writes both of the places Lightroom, Bridge, Photo Mechanic and Apple Photos actually read: the legacy IPTC block and the Photoshop XMP namespace. JPEG, HEIC, TIFF and DNG are written in place; proprietary RAW files get a sidecar and are not touched. It needs no destination folder and moves nothing — if you are leaving Lightroom, this is the part that survives the move.
- It is reversible, precisely: FolioSort remembers what each tag said before it wrote, and putting it back restores exactly that. A tag that did not exist before is removed on revert, not blanked — an empty city is a different thing from no city, and cataloguers show them differently. The date on your files does not move either: a place name is a fact about when the photo was taken, not an edit.
- Resolving place names is now free, up to 100 photos per scan: It used to have a padlock on it and that was the wrong lock. The geocoder is the one built into macOS — free, cached, and the only thing it costs you is your own wait — and “does it get my towns right?” is a question nobody can answer from a screenshot. Per scan, not per lifetime; Pro removes the cap.
- Fixed — the Review that 4.7.4's notes promised is actually there: 4.7.4 announced photo-by-photo Review and the build shipped without it — it was switched off at the last minute and the notes went out anyway. That was our mistake. Bursts | Review is back on screen, keyboard driven, one photo at a time.
- A results panel that leads with what you did: The panel used to lead with a table — processed, successful, duplicates, verified, elapsed — at the exact moment you most want to know your photos are safe. Now the count is the size of the thing it describes, the destination is named beside it, and the folders the run built are chips you can click straight into Finder. The full receipt is one click down.
- New — tidy up the folders a Move leaves empty: A Move leaves the folder tree exactly as it was, so re-organising an already-organised library — Year/Month/Day into Year/Month, say — left hundreds of empty day folders standing, which at a glance looks like your photos are gone. There is now a switch in Settings ▸ Safety nets, off unless you turn it on: only folders this Move emptied are considered, a folder holding any file at all is kept, the source and destination you picked yourself are never removed, and what goes, goes to the Trash. The panel tells you how many went — a cleanup nobody is told about is indistinguishable from folders going missing.
- Fixed — “Zero KB available” on a drive with terabytes free: On drives that are not APFS — exFAT, FAT32, most network shares — FolioSort read the free space as zero and warned about disk space on every single run. It was reading the wrong number, not your drive; continuing was always safe. Also fixed: the scan overlay's countdown was telling the truth about one stage only, so “25 s left” meant 25 seconds of that stage, not of the scan.
Intel Macs can run FolioSort again — and Best Shots judges the subject, not the background
macOS and Windows. Two large things: every macOS build until now was Apple Silicon only and nothing in the pipeline noticed, so this one is a universal binary — and Best Shots stopped scoring the whole frame. It now looks at the subject, recognises an exposure bracket, keeps a RAW and its own JPEG together, and scans RAW several times faster.
- Fixed — Intel Macs can run FolioSort again (macOS): Every macOS build until now was compiled on an Apple Silicon Mac, and nothing in the pipeline noticed. On an Intel Mac the app simply refused to launch — Rosetta translates Intel code to run on Apple Silicon, never the other way round, so there was no fallback and no useful error. This build is a universal binary, both architectures in one download, and the build now fails outright if either is missing. If you asked for a refund because of this, write in — the app you paid for now runs.
- Best Shots picks on the subject: A portrait is judged on the eyes, a group photo on whoever came out worst, and sharpness is measured where the picture is meant to be sharp — not across the whole frame.
- An exposure bracket has no loser: Brackets are recognised instead of having their darkest and lightest frames thrown away. And a RAW and its own JPEG export now count as one photograph, so “Keep only best” can no longer send the keeper's own RAW to the bin.
- New — Moments, Rate Picks and Best only: Moments groups the same scene shot again, not just press-and-hold bursts. Rate Picks puts five stars on every keeper and marks the frames it beat as rejected, written where Lightroom, Bridge and Capture One read them — nothing is moved and nothing is deleted. Best only shows one tile per group instead of every frame.
- Scanning RAW is several times faster: Eight separate code paths were developing the full sensor data just to look at a thumbnail; they now read the preview the camera already wrote. On Windows a cold scan of 299 Canon CR3s went from 130.1 s to 100.6 s. Duplicate scans of RAW folders get the same treatment — RAW files now hash from their embedded preview. Both scans also say how much longer they have to run.
- New — Import from Card (macOS): FolioSort spots a camera card when it appears, copies only what is new — a ledger means the same file is never imported twice — and ejects the card when it is done.
- The sidebar can get out of the way (Windows): A toggle in the title bar, or
Ctrl+B. macOS has been able to hide its sidebar since it was built; on Windows the pane was nailed open, so Best Shots and the wizard never got the full window.
- Fixed — scanning the same folder twice could name a different best shot: Two frames with identical scores were separated by whatever order the disk happened to return them in, so the same shoot could produce two different answers. Ties now break on something stable. Photos taken seconds apart but of different things are no longer grouped together either — a group has to agree on what it is looking at, not just on when it was taken.
- Fixed — a third of the scan ran behind a finished progress bar: The bar reached 100% while the slowest stage was still working, which is indistinguishable from a hung app. On Windows the overlay now names the step it is on —
Step 5 of 6 · Reading camera previews… 56 / 59 — because the stages run at wildly different rates and one honest bar across all of them is not possible.
- Fixed — the most destructive button on three pages was an unreadable empty box (Windows): “Move N to Recycle Bin” on Duplicates, Blurry and Screenshots had been rendering as a bare number in every build ever shipped, and its disabled state left white text on light grey at about 1.05:1. It now reads “Move 6 829 to Recycle Bin”, and simply “Move to Recycle Bin” when nothing is selected.
- Fixed — using both scans on one folder threw the cache away (Windows): Duplicates and Best Shots fill in different halves of the same per-file entry, and each one used to replace the other's outright — so anyone who used both features on one folder never had a warm cache in either, and silently paid the full decode again every time.
- Fixed — undo checkpoints cost the whole history, not what they added: A mid-batch checkpoint re-serialised every batch in the history, so a long run was quadratic in file count. At 20,000 records: 25.2 s and 3.3 GB written → 1.7 s and 7.8 MB. Because a checkpoint is cheap again they now happen every five seconds, which is also the most undo history a crash can cost.
- Also fixed: a Move no longer leaves the files it moved sitting on the list, so pressing Organize again can't report errors for files the app itself moved · cleaning up a duplicate group no longer scrolls the list back to the top · a cancelled duplicates scan keeps what it learned instead of starting from zero · the duplicates cleanup has a real counter and a Cancel that works · a cache written by an older version is no longer trusted as current · organising a folder full of repeated filenames no longer slows down the further it gets · the integrity check says what it costs before you switch it on · search matches Turkish dotted
İ correctly · previews extracted during a scan are cleaned up even when the app is killed mid-scan · quitting no longer crashes while the last event is being flushed.
Reverse geocoding in the Mover — on Windows, for the first time
Reported by a user on 4.7.2: “Geotagging doesn't work 100% of the time… All photos are ‘unknown' city”. It was worse than that — on Windows it had never worked. The {City}, {Country} and {State} tokens wrote “Unknown” for every file, on every run, since the feature shipped. Windows only — macOS already behaved correctly, and there is no 4.7.3 macOS build.
- The post-scan prompt now exists: The code behind it had been complete for months but was never connected to the interface, so nothing ever asked, nothing ever ran, and no photo ever got a location. It now offers Resolve now, Run in background or Skip, and it tells you what it will cost: the lookup service allows one request every 1.5 seconds, so a thousand photos is roughly twenty-five minutes. Photos taken in the same place count as one.
- A lookup can be stopped: Both the progress window and the background strip have a working Stop, and everything resolved before the stop is kept.
- Organize stays disabled while locations resolve: A run can no longer start mid-lookup and file the whole batch under “Unknown”.
- iPhone videos get their location:
.MOV and .MP4 files store coordinates in a place the Windows build never read, so a clip taken beside a photo went to “Unknown” while the photo resolved — which is exactly what made this look intermittent. Photos whose GPS block could not be decoded are now recovered through a second reader instead of being treated as having no location.
- A Reverse Geocoding switch, with an honest lock: Free users now see why their folders say “Unknown” — with the count of their own geotagged files — rather than being left to guess. The Events page was never affected and is unchanged.
A smaller question, asked in the one place it never was
There is no analytics in FolioSort, so the only way I learn how anyone found it is to ask. This release fixes the gap in that asking and makes the question shorter.
- The question now appears after an AI Search job: Semantic search, Screenshots and Find a Person were the only modules that never asked, so everyone who came to FolioSort for search specifically was invisible to me. It appears once, after the work is finished — never during it.
- The wording got shorter: “How did you first hear about FolioSort?” became “Curious how you found FolioSort?”. Answering is optional, the answer stays a single tap, and — as with everything else here — nothing about it leaves your Mac unless you send it.
AI Search finds what you asked for — and admits when it hasn't
This release came out of measuring AI Search against a real 1,136-photo library instead of a test folder. Two of the things it turned up were silent: Macs that had used AI Search before version 4.2.0 were still running the old search model, and a single word printed inside a photo could push every genuine match off your results. Both are fixed, and the pane is now honest about how sure it is.
- Fixed — your Mac may have been searching with the old model: The compiled model was cached under a filename that never changed, so the better encoder shipped in 4.2.0 silently never took effect on any Mac that had used AI Search before it. Your photo index rebuilds itself once, automatically — and it doesn't cost anything against the free allowance.
- Fixed — a word printed inside a photo could hijack your results: Searching
bar returned a single photo, because a wrapper in it read “Barebells” — and that one match pushed every genuine visual result off the list. Text found inside photos now has to match a whole word, not a fragment. Fixed on both platforms.
- Match strength now reads Strong / Fair / Weak: The old percentage could never fall below 43%, so noise turned up looking like a 53% match. A word is honest about how much the number is worth. Find a Person keeps its number, because that one is a calibrated face distance and it means something.
- Weak results are labelled as weak: When nothing matches your description closely, the results say so instead of presenting the nearest photos as though they were confident matches. Nothing is hidden from you — the list is the same, the claim about it is smaller.
- “No matches” now tells you what was actually searched: It names how many photos are indexed and which folders they came from, with buttons to add more folders or update the index. A search can only find what it has been shown, and the old message read like “you don't have that photo”.
- One-word searches in other languages are now translated: “bolo”, “piscina”, “neve” and their equivalents in Spanish, French, German and Italian used to be sent untranslated to an English-trained model. One word was too short to trip the language detector.
- Find by Photo says what it found: A finished scan now leads with the number of matches instead of quietly repainting the grid, and a scan that found nothing names the control that fixes it.
- Fixed — reopening the app landed on the wrong pane (macOS): Quitting while on AI Search or Find a Person reopened FolioSort on Screenshots, sitting under the wrong sidebar heading. Clicking the already-selected row couldn't fix it either.
- Fixed — upgrade buttons in the app: They now land on the upgrade page instead of the full pricing page, and the leftover “Unlock Unlimited” button in Rename and Merge names your own file count like every other wall does.
The screen at the end of a run now shows your photos, not a table of counts
When a run finishes, FolioSort used to open on five numbers. It now opens on proof: thumbnails of files it actually wrote, the destination folder as a chip you can click, and Undo. The upgrade prompts around it were rewritten too — they name what you were trying to do, never a plan you haven't chosen.
- Proof first, counts second: The completion panel leads with three thumbnails of the photos the run wrote, the destination folder, and an Undo button. The processed / successful / duplicates / verified / elapsed table moves behind a Details link — and opens by itself if anything failed.
- A progress bar that means something: When a run left files behind, the panel shows “100 of 598 organized” instead of leaving you to work it out. When it didn't, there's no bar at all.
- People preview for everyone: The strip of faces the panel finds after a run used to be Elite-only. It now appears on the free plan too, because the free plan can already read that sample — there was nothing to lock.
- Windows gets the same panel: The completion dialog on Windows was ported over, and Rename on Windows finally says something when it finishes — it used to rename your files and leave the page sitting there, still offering to rename names that no longer existed.
- Upgrade prompts stopped naming the wrong plan: Where both Pro and Elite lift a limit, the wall now says “What lifts this limit” and states the fact instead of steering you to the cheaper one before you've seen the choice. Where only Elite lifts it, it says Elite — fixing a real bug on Find a Person, whose button offered Pro for a limit Pro doesn't remove.
- Upgrade buttons no longer borrow the run button's verb: “Unlock all 598” sits next to “Organize 100 now”, so the button that opens a purchase can't be mistaken for the one that files your photos.
- Fixed — Windows RAW count: The stats strip counted HEIC as RAW, so it reported “2,051 RAW” while the notice directly beneath it said 978 files needed Pro. Both were counting something real; only one of them was answering the question.
- Fixed — Windows number formatting: On a non-English system, one window could show “3,423” and “3 423” a line apart. Every number now follows your locale.
- Fixed — Windows results panel: A run that ended in errors could sprout a cheerful row of faces a few seconds later, once the People sample finished arriving.
- Fixed — macOS merge menu: The “Same as…” menu for merging two people drew each face hundreds of points tall instead of as a small thumbnail beside the name.
People detection, a File-Type Filter, and a clearer free plan
The biggest feature release yet: FolioSort now finds and groups the people in your library on-device, lets you restrict any run to exact file types, and is more upfront about what the free plan actually covers.
- People: Point FolioSort at a folder and it finds every face, groups the ones that belong to the same person, and shows you a grid as it goes — no example photo, no upload, no account. Name a cluster once, tell it two piles are the same person if it split someone in two, and open anyone to see only their photos.
- People into XMP sidecars: Capture One has no face recognition — FolioSort supplies the names and writes them into standard
.xmp sidecars beside each photo, so your existing catalogue starts searching by person with no plugin and no new library.
- File-Type Filter: After a scan, FolioSort shows you the file types it actually found and lets you pick exactly which ones get copied or moved — just the RAWs, just the videos — instead of everything in the source folder.
- Custom folder-pattern card: Building a custom folder template during setup now has its own dedicated card instead of being buried in an options panel.
- Free plan cleanup, stated plainly: Scanning and reviewing Duplicates, Blurry and Screenshots stays free and unlimited — the free plan's cleanup action is capped at 20 lifetime, with clearer prompts pointing to Pro or Elite once you reach it.
- Free-wall polish: Fixed a window-clipping bug in the free-limit banner, and cleaned up the upsell copy around the limits above.
A redesigned scan screen — Windows
The progress window shown during every scan gets a visual overhaul on Windows, plus a live time estimate. macOS moves to 4.5.1 too, to keep both platforms on the same version number.
- Redesigned scan modal: The plain stacked-text progress window now has an icon, a proper shadow, and a card that no longer resizes mid-scan as the counter grows. Shared by all eight scan-driven flows — Organize, Events, Rename, Duplicates, Merge, Blurry, Best Shots and AI Search.
- Time remaining, when it means something: Organize, Events and Rename now show an ETA that only appears once progress passes 8% — earlier than that, the estimate is still dominated by cold-cache reads and would just be noise.
- macOS version alignment: No functional changes on macOS in this release — it moves to 4.5.1 so both platforms report the same version.
First-run activation — one screen, straight to trying it
The four-slide tour is gone. New users now see one screen with a single "Try It on a Folder" button — and Organize is no longer stuck disabled waiting for a destination you were never asked to pick.
- One-screen first run: The onboarding tour used to bury its "Try It on a Folder" button on the last of four slides. It's now one screen, with that button front and center and "Explore on my own" as the alternative — on both macOS and Windows.
- A working default destination: If you'd never chosen a destination, Organize sat disabled after your first scan. It now defaults to
<source>/Organized (macOS) or <source>\Organized (Windows) — an explicit pick still always wins.
- Clearer empty states (macOS): The preview panel now names the state you're actually in — no source, scanning, source picked but not scanned, or scanned with nothing selected — instead of one generic message for all four.
Reliability hardening — 112 fixes, on both platforms
A subsystem-by-subsystem safety review of the whole app. No new screens to learn: the moves you already make are now harder to get wrong, and always reversible.
- Undo is always there: Cancel or fail a Merge, Organize, Move to Folder or Workflow step and the files it already moved keep a working Undo. Previously a stopped run could leave those moves with nothing to reverse them.
- Undo can't trip over itself: A second Undo press mid-revert, or an Undo fired while a Rename or Organize is still running on the same files, no longer destroys the record it needs. Destructive actions now hold a single app-wide lock.
- Never deletes what it didn't create: When an operation fails partway, cleanup only removes destinations that run actually wrote — an existing file that happened to sit in the way is left alone.
- Counts you can trust: The Rename, Organize and Merge buttons — and the confirmation before them — now count only the files the run will genuinely touch, and the Archive Report totals what was written rather than what was scanned.
- Licensing that doesn't lock you out: A network hiccup, an unreadable credential store or an error page from the store is no longer read as "not licensed", and re-activating no longer burns one of your device slots.
- Identical folder names on macOS and Windows: Reserved Windows names, invisible Unicode, emoji, control characters and non-Latin album names now sanitize the same way on both platforms — so the same library organizes into the same folders wherever you run it.
- Search that stays in sync: Every mover now tells the AI Search index where files went, so results stop pointing at folders that were emptied — and a scan can no longer start on top of a running index build.
- Fewer repeated questions: Duplicate review offers "do this for all" once your answer starts repeating, and implausible EXIF dates are rejected instead of filing photos under a sentinel year.
Takeout Auto-Sync & the Archive Report
A Google Photos release — keep a Takeout folder syncing on its own, and turn the end of every import into a clear archive summary.
- Takeout Auto-Sync: Point FolioSort at your ongoing Takeout folder and it watches for new exports, merging them in incrementally and skipping duplicates — no re-importing the whole archive.
- Archive Report: Every Takeout import now ends with a plain-language summary of what came in — photos, videos, people and years — so you can see your library at a glance.
- Auto-Sync where you expect it: The Auto-Sync controls now live right on the Google Photos screen instead of being tucked away, so they're easy to find and turn on.
- Windows Takeout fixes: All-orphan imports no longer freeze the app, the report no longer overlaps the config panel, dialogs render on a solid backdrop, and Scan Now always confirms it ran.
- macOS fix: Auto-Sync settings toggles now update reliably the moment you flip them.
Safer moves, smarter search & one-click activation
A hardening and polish release — dozens of data-safety fixes, a sharper AI search, and a smoother way to unlock Pro.
- Smarter AI search: Upgraded on-device semantic model for better recall, and non-English searches are now translated before matching — so queries in any language find the right photos.
- Safer file operations: Mover, Merge and Takeout import now clean up cleanly after a cancelled or failed run, keep undo available, and never touch an ambiguous destination.
- One-click activation: A new
foliosort://activate link unlocks your license in a single click, plus a friendlier "Try It on a Folder" first run.
- Faster large imports: Google Takeout sidecar detection is dramatically faster on big libraries, and Rename/Events no longer freeze on network drives.
- Licensing reliability: Offline grace now keeps paid users paid through server hiccups, and tier restores land on the correct plan.
Windows visual parity
The Windows app now closely mirrors the macOS design, top to bottom.
- Refined typography: New control-content font tokens bring text sizing in line with macOS across the whole app.
- Polished controls: Cleaner Primary buttons and headings, completing a large Windows parity pass — macOS-style surfaces, sidebar section headers, and tier badges.
Elite tier — AI suite, Smart Folders & AI Culling
A new Elite tier brings the full AI suite out of beta and adds power-user tools for large libraries.
- Three tiers: Free, Pro, and the new Elite — with a redesigned upgrade screen and tri-color sidebar badges (Beta / Pro / Elite).
- AI suite leaves beta as Elite: Semantic search, Find a Person, conversational search, and Auto-Events are now Elite features.
- AI Culling (Best Shots): Automatically picks the best frame from a burst of near-identical shots.
- Smart Folders: Saved live searches that stay up to date as your library grows.
- Workflows & Watch Folders are now part of Elite.
- iCloud export: Recover original capture dates from exported CSV/JSON.
Sharper Find a Person & hands-free Watch Folders
A big accuracy upgrade for face search, plus automation that runs on its own.
- Watch Folders: Automatically run a workflow whenever new files land in a folder.
- Better face matching: Find a Person moved to a new on-device face model (AuraFace) for more accurate matches, with a face-quality gate that ignores low-quality faces.
- Smarter blur detection: Blurry now scores the sharpest region of each photo, so intentional background blur (bokeh) is no longer flagged as blurry.
Stability & honest gating
A critical AI Search crash fix and clearer boundaries between Free and Pro.
- AI Search crash fixed: A packaged-resource bug that crashed AI Search on every installed copy now resolves correctly.
- Honest gating: Reverse Geocoding and Auto-Events place names are correctly Pro features, and Free clearly shows where the line is.
- Workflows polish: Clearer duplicate review, a live-tuning slider, an Organize template palette, and reliable undo when a run is cancelled.
- Exit Kit safety: Original capture dates are never overwritten, and you're no longer stranded mid-run.
Packaging hardening
Build safeguards so a broken release can't ship.
- Fail-fast builds: The macOS build now stops immediately if a required resource bundle is missing, preventing broken releases.
- Windows sidebar polish to better match the macOS look.
FolioSort 4 — Workflows, AI Search & Exit Kit
The biggest release yet: chainable Workflows, an on-device AI suite, and a guided Exit Kit for leaving the cloud.
- Workflows: Chain Organize, Duplicates, Rename, Screenshots and Blurry into a single, repeatable run.
- AI Search suite (100% on-device): Semantic search (e.g. "my dog on the beach"), OCR text search, Auto-Events suggestions, date inference for undated files, and conversational search powered by a local LLM.
- Exit Kit: A guided flow to move off Google Photos, iCloud, WhatsApp, Amazon Photos and OneDrive — with filename/CSV date recovery and an Exit Report.
- NAS-ready: NAS-safe folder names plus Synology and Immich destination presets.
- Reorganized sidebar into Wizard-aligned sections for easier navigation.
Wizard Revamp & Safety Hardening
A new intent-based Get Started hub and guided flows for all major features, plus extensive data-safety hardening.
- Wizard Revamp: New intent-based Get Started hub covering all features. Guided flows for Google Photos Takeout, Duplicates, and Blurry photo cleanup. Guided AI Search flows (Find a Person, Screenshots) with quick-pick folder chips. Refreshed onboarding.
- Data-Safety Hardening: Extensive destructive-path audit closed: undo is now non-destructive and retryable, network moves never delete the only copy, merge/duplicate cleanup re-verifies before trashing, symlink/junction traversal guarded, and per-feature undo isolation.
- AI Search improvements: Reference photos now accumulate across picks; Person/Screenshot scans are mutually exclusive.
- Pricing: Price removed from in-app UI (shown on website / checkout only).
AI Search (beta) — find people & screenshots, 100% on-device
A new AI Search section brings on-device intelligence to your library — no photo or face data ever leaves your machine.
- Find a Person: On-device face search (YuNet detection + SFace embeddings) gathers every photo of a given person, with one-click Move to Folder on the matches.
- Screenshots: Automatically detect screenshots mixed into a folder and move them out of your photos in one click — now using content-based detection for better accuracy.
- Presets remember folders: Presets now store their source and destination, so reusing a workflow is a single click.
- Profiles always visible: The PROFILES picker is no longer hidden behind Advanced on the Organize page.
- Merge flags screenshots: Merge review now points out screenshots and suggests skipping them.
- Polish: Fixed-size processing dialog (no more sub-second size jitter) and a clearer free-tier notice. AI Search is free to try with a lifetime allowance; Pro unlocks the rest.
Merge: one-click "Keep All"
A faster way through the Merge Review step when you just want to keep everything.
- "Keep All" in Review: A new button beside Accept All Suggestions rejects every suggestion and merges all files — including duplicates and blurry photos — in one click. Nothing is ever deleted.
Windows dialogs fixed
Two display bugs that made the Windows app feel broken after an operation are resolved.
- Dialogs no longer break the app: The "Operation Complete" screen (and other dialogs) rendered raw and full-window, leaving the app unusable. They now appear as proper centered, modal cards.
- No more washed-out UI: The dialog host was permanently dimming the window; it now only dims while a dialog is actually open. Affects Organize, Events, Duplicates, Blurry and Merge.
Sticky Rename-with-Date & polish
Small but persistent fixes across the Organizer, Google Photos and duplicate flows — the kind that quietly make daily use smoother.
- Sticky "Rename with date": The Organizer toggle now persists across sessions instead of resetting to off on every launch.
- Google Photos header: The toolbar now shows a title, so the bar isn't empty before a scan.
- Smarter folder pickers: They now open at the field's current folder rather than the last-used path.
- Skip-All sticks: Choosing Skip-All in the duplicate dialog now persists correctly through the whole batch.
- Analytics: Organizer module rename and a first-launch event.
NAS scan — much faster & more responsive
Organizing photos straight off a NAS or SMB share is dramatically faster on both platforms — and on macOS the app no longer freezes while it scans.
- No more beachball (macOS): Folder listing and metadata reads now run off the main thread, so the window stays responsive throughout the scan.
- Much faster NAS scans: The metadata scan was rewritten around a single header read plus one file open per photo with real concurrency — roughly 0.2 → 15.3 files/s on a 10 MB/s NAS, matching the link's ceiling.
- iCloud accuracy: Online-only files are now downloaded before their metadata is read, so photos sort by capture date instead of sync date.
- Clearer feedback: A "Connecting to NAS…" message, a more accurate ETA, and a fixed exit after Pro activation.
- Windows: A single self-contained
FolioSort.exe, a network-wait hint while connecting to the source, and the same higher NAS scan concurrency.
RAW previews, unified icons & Google Photos lightbox
A polish release across all four modules — RAW and HEIC files finally show real thumbnails everywhere, icons are consistent, and you can send feedback without leaving the app.
- RAW & HEIC thumbnails everywhere: CR2/CR3/NEF and some JPEGs that showed a generic document icon in Blurry, Duplicates, Merge and the source grids now render real, higher-resolution previews.
- Consistent folder icons: Every source picker uses a blue filled-folder icon and every destination a green one, matching the Blurry/Duplicates look.
- Google Photos lightbox: Click any preview filename to view it larger — the same enlarge experience already in Duplicates and Blurry.
- Send feedback: A new sidebar button sends feedback straight to the team, with an email fallback when you're offline. Available on macOS and Windows.
Windows UX overhaul
A major usability rework of the Windows app — clearer page layouts, fewer duplicated controls, and two important persistence fixes — plus a telemetry parity fix on both platforms.
- Organize button restored (Windows): The primary action on the Organizer page is back — it had been unreachable outside the Wizard since the 2.19 visual refactor.
- Unified page headers: Organizer, Events, Rename and Google Photos now share one layout — utilities left, stats centre, search and primary action right. Duplicated source pickers and Scan buttons removed.
- Progressive disclosure: Destination options stay dormant until a scan loads files; filters, search and stat tiles appear only when they mean something. Move mode now warns that originals are removed from the source.
- Settings persistence fix (Windows): Theme and wizard/onboarding completion were silently reset on every launch — fixed. Pages also keep their scan results when you switch sections.
- Cleaner navigation (Windows): Grouped sidebar (Wizard / tools / Activity), consistent modal scan progress with a working Cancel, thumbnails toggle on Events and Rename, and Check for updates moved to Settings → About.
Privacy-first analytics overhaul
A cleaner, more private telemetry schema — less data leaves your computer, and what remains is anonymous and consistent across all four modules.
- Unified event schema: Organizer, Events, Rename and Google Photos Takeout now share the same anonymous lifecycle events (scan, operation, cancel, duplicate, file limit, undo), tagged by module.
- Less data collected: The masked license key was removed from launch telemetry.
- Upgrade-sheet fix: Choosing SHA-256 or a Pro duplicate strategy as a Free user now correctly opens the upgrade sheet (previously nothing happened).
- Accurate stats: Undo actions are now reflected in usage statistics, and upgrade prompts are counted once per presentation.
Cross-platform QA hardening
A unified macOS and Windows release that rolls up the quality-audit fixes from the 2.18.x line, with extra safety around overwrites and folder naming.
- Overwrite safety: If a copy or move fails, the original file is now restored in place instead of being orphaned in the Trash.
- Folder-name sanitizer fix: Invisible and zero-width Unicode characters are now stripped from generated folder names instead of being turned into
_.
- Windows QA hardening: All P0 and P1 issues plus the first P2 batch resolved, including a license-activation fix.
- macOS distribution: Signed with Developer ID, notarized by Apple, with Sparkle auto-update.
- Windows distribution: Portable self-contained x64 build — unzip and run
FolioSort.exe (see the included Install First guide).
FolioSort comes to Windows
FolioSort is now available natively on Windows 10 (1809) and Windows 11, alongside the existing macOS build. Same engine, same features, same Pro license unlocks both platforms.
- Native Windows build: 64-bit (x64), Windows 10 build 17763 (1809) or later. Distributed as a portable ZIP — no installer required.
- Feature parity: Organizer, Rename, Events, Google Photos Takeout import, smart folder templates, regex rename, and checksum verification all work identically on Windows.
- Auto-update on both platforms: Sparkle (macOS) and a matching update channel for Windows keep both builds current from a single appcast feed.
- Same Pro license: Your €14.99 Pro license now activates on both macOS and Windows.
- Pro features on Windows: RAW, cinema RAW (BRAW, R3D, ARRI), SHA-256, regex rename, persistent undo history. GPS reverse geocoding on Windows uses an equivalent provider to Apple's CLGeocoder.
Security & Stability — 14 issues resolved
A focused security hardening and stability patch covering license protection, data safety, and a wide range of edge-case fixes.
- License protection: ProManager no longer grants Pro status before server validation — Keychain injection no longer bypasses activation. Keychain items now use
WhenUnlocked accessibility and are non-synchronizable via iCloud.
- Data safety: Files overwritten in Organizer and Events now go to Trash, so they can be recovered if a copy or move fails. Pre-move size check prevents corrupted staging files from reaching the final destination.
- Undo reliability: Actor reentrancy in
undoLastBatch fixed — batch removed by ID, not by position. EventViewModel project save/load errors now surface to the UI.
- Events fixes: 3 simultaneous sheet modifiers consolidated into 1; drop-onto-source now triggers a file scan; directory creation for undo tracking is now atomic.
- Rename: Progress bar shows indeterminate animation during scan phase. Preview regex match count no longer updates on cancelled tasks.
- Accessibility: VoiceOver labels added to icon-only toolbar buttons (Undo, Thumbnails, Advanced Options) and file checkboxes.
Expanded Takeout Format Support
Significantly broader format coverage for Google Photos Takeout and general use, with smarter detection that goes beyond file extensions.
- New free photo formats: JFIF and JPEG XL (JXL) now supported.
- New free video formats: ASF, RealMedia (RM/RMVB), DivX, and XviD.
- New Pro RAW format: Leaf/Creo MOS.
- Magic-byte sniffing: Format detection now identifies JPEG XL, TIFF, WebP, and AVIF by file content, regardless of extension.
- CR2/CR3 masquerade detection: Google Photos stores Canon RAW uploads as JPEGs with the original extension — FolioSort now detects and processes them correctly.
Undo Button, Stats Bars & Sidebar Reorder
Three quality-of-life improvements that make batch organizing faster and more transparent across all modules.
- Undo button in toolbar: All main views (Organizer, Events, Rename) now show an undo button (↩) that activates after any organize or rename operation, letting you reverse the last batch instantly.
- Stats bar in Events and Rename: After scanning, Events and Rename now show the same stats strip as Organizer — Files, Photos, Videos, RAW, and Total Size at a glance.
- Stats bar in Google Photos: A new stats strip shows Files, Photos, Videos, Matched (with JSON sidecar), and files with No date after scanning.
- Sidebar reordered: The sidebar now follows a more natural workflow order: Wizard → Organizer → Events → Rename → Google Photos → Activity → Settings.
- Rename undo support: Rename operations are now tracked in the undo history, just like Organizer and Events.
Expanded Format Support — 20+ new file types
FolioSort now recognises significantly more photo, video, and RAW formats across all screens — Organizer, Rename, and Events.
- New free photo formats: WebP, AVIF, BMP, GIF, JPEG 2000 (jp2, j2k, jpf, jpx), and JPEG XR (jxr, wdp, hdp).
- New free video formats: 3G2, DV, VOB, MP2, F4V, OGV, OGG, M2T.
- New Pro RAW formats: PTX (Pentax), RAW (Leica), CAP (Phase One), K25 (Kodak), MEF (Mamiya), BAY (Casio), STI (Sinar).
- New Pro video formats: ARX (ARRI), CINE (Phantom), INSV (Insta360), LRV (GoPro proxy), OP1/OP2 (Panasonic P2), DNxHD (Avid), FCPVID (Final Cut Pro).
QA Audit — 30 bugs resolved
The most thorough quality audit since launch. 30 issues fixed across security, data integrity, UX, and correctness.
- Security: License validation now rejects HTTP 4xx responses, closing a potential MITM/proxy spoofing vector. Deactivation is blocked if the server can't confirm — your activation slot is never lost on a failed network call.
- Data integrity: Undo directory cleanup now skips old batches, preventing accidental deletion of user folders. Geocoding cache writes are atomic to prevent file truncation on crash.
- Template engine: Invalid patterns like
{Counter:-5} now show a clear error. Templates that evaluate to only dots fall back to "Unknown" instead of creating broken folders.
- UI fixes: Source folder picker is locked during operations. Start button disabled when folder template is invalid. Sidebar tab selection is now persisted across launches.
- Performance: iCloud downloads abort after 30 s without progress.
recentBytesLog capped to prevent memory growth on fast storage.
Stability hardening — ReDoS protection & safety fixes
A focused stability release addressing edge cases that could cause freezes, data loss, or incorrect behavior on large libraries.
- ReDoS protection: Regex preview now runs on a background thread with per-file cancellation. Pathological patterns like
(a+)+b can no longer freeze the UI.
- Back-reference validation: Regex replacement shows an error if
$N references a non-existent capture group, preventing silent rename failures.
- 255-byte path limit: Template engine validates and truncates folder/file components to the macOS filesystem limit, with a clear warning.
- Null Island GPS rejected: Coordinates
(0.0, 0.0) from cameras with no satellite fix are no longer geocoded or cached.
- License grace period survives cache cleaners:
lastValidated now stored in Keychain — third-party cache cleaners can no longer reset the offline grace period.
- Duplicate overwrite safety: "Replace if larger" fails explicitly if the existing file's size can't be read, instead of silently treating it as 0.
Auto-update — FolioSort now keeps itself up to date
FolioSort now checks for updates automatically (once daily) and notifies you when a new version is ready. No more manually visiting the website to stay current.
- Update notifications use the industry-standard Sparkle framework, signed with ed25519 — safe and verified.
- New menu item: Help → Check for Updates… for on-demand checks.
- No functional changes to Organizer, Rename, Events, or Google Photos in this release.
Maintenance update & site synchronization
Routine sync update accompanying the massive FolioSort website overhaul.
Google Photos Takeout Organizer
FolioSort Pro now features a dedicated tool to completely fix Google Photos Takeout metadata loss prior to organizing.
- JSON Sidecar Parsing: Automatically reads
.json sidecar files and restores the precise photoTakenTime.timestamp into the actual EXIF data of the image.
- GPS Restoration: Extracts GPS data from Takeout sidecars and writes them as standard EXIF tags.
- Duplicate Removal: Deduplicates photos that Google exported multiple times across different album folders.
- Truncated Filename Matching: Intelligently matches 47-character truncated filenames to their sidecars.
Events layout redesign & Wizard flow overhaul
The Events tab has been completely redesigned and the Wizard now guides you through every step without leaving the flow.
- Events tab — new layout: Left panel handles event creation (groups & sub-events with time ranges); middle panel combines source folder, destination, Copy/Move toggle, Unmatched option and scan settings in one place. Panels are resizable by dragging the dividers.
- Wizard — Events flow reworked: Step 1 defines event groups and sub-events; Step 2 sets source & destination, mode and scan; Step 3 shows a full preview of which files go where before you start.
- Wizard — Organizer & Rename review step: After the file integrity message, a FILE PREVIEW now shows a sample of files with their before → after transformation.
Events Wizard step-by-step flow & bug fixes
The Events mode in the Wizard now walks you through all steps inline, plus a round of targeted fixes:
- Events Wizard: Step 1 — select source (auto-scan); Step 2 — configure event groups, time ranges and destination; Step 3 — review summary before starting. Kicks off the operation and takes you straight to the Events tab with live progress.
- Fix: Event undo and duplicate actions were incorrectly tracked as Organizer analytics events — fixed.
- Fix: Organize analytics now only fires after all validation passes.
- Fix: Events organizer now correctly counts verified files (was always showing 0).
- Fix: Organizer duplicate resolver now has Esc (Skip) and Enter (Replace if Larger) keyboard shortcuts, matching the Events duplicate sheet.
- Fix: Events tab in the sidebar is now disabled for Free users instead of showing the full UI before hitting the paywall.
Setup wizard is easier to navigate
Small but important tweaks to the new step-by-step setup flow introduced in the previous version:
- The "Next" and "Start" buttons no longer disappear behind the status bar at the bottom of the screen.
- Choosing "Events" mode now takes you straight to the Events tab — no extra steps.
- The Organizer and Rename tabs now show a direct link to advanced options like folder templates and regex rename (Pro).
Step-by-step setup wizard for new users
Getting started with FolioSort just got much simpler. A new Wizard tab walks you through organizing your files in four clear steps — choose what you want to do, pick your files, configure the settings, and press Start. No manual needed. Also: FolioSort has a fresh new icon designed to match its identity.
Faster, more reliable transfers — especially on external drives
Under-the-hood stability improvements that matter when moving large batches of files:
- Moving multiple files in parallel is now more stable and no longer stalls unexpectedly.
- Large operations complete noticeably faster.
- Files stored on ExFAT drives (common on external hard drives and SD cards) are handled correctly.
Pro license activation now works reliably
Some users were entering their license key and seeing an error even when the purchase was valid. This is now fixed — activating your Pro license works correctly every time.
Installation is simpler — guide included in the download
The FolioSort download file (DMG) now includes a built-in "How to Install" guide so you always know what to do — even if you don't have an internet connection. The installer also has a drag-to-Applications shortcut right inside, making setup faster.
New app icon and a cleaner installer
FolioSort now has a distinctive icon — a navy background with layered photo cards and an orange folder accent — so it's easy to spot in your dock and Applications folder. The installer has also been refreshed with a cleaner layout.
Fixed "App is damaged" error on first launch
Some Macs were showing a "the application is damaged" error from macOS Gatekeeper when launching FolioSort for the first time. This is now resolved. Also fixed: Pro features were incorrectly appearing as active for free users.
FolioSort Pro is now available — one-time purchase, no subscription
You can now unlock FolioSort Pro directly from within the app. It's a one-time payment (no recurring fees) and your license is stored securely in your Mac's Keychain.
- Works on multiple Macs — transfer your license anytime.
- 7-day grace period if you're temporarily offline.
- License is re-validated automatically every 24 hours in the background.
86 bug fixes — the most thorough QA pass yet
A comprehensive round of quality assurance addressing 86 issues found during testing. The most important fixes:
- Prevented rare cases where an operation could keep running after being cancelled.
- Fixed a crash that could occur when processing certain files.
- Eliminated a potential data race that could cause unexpected behavior during large transfers.
- Improved accuracy of the time-remaining estimate shown during operations.
- Fixed several edge cases with duplicate file handling and folder scanning.
Organize directly from NAS drives, Synology, and iCloud (Pro)
FolioSort Pro can now read from and write to network locations — Synology, QNAP, SMB/AFP network shares, and even iCloud Drive. No need to copy files to your Mac first.
- Your network volumes are detected automatically and shown with a clear badge.
- iCloud-only files are downloaded on demand before processing.
- Transfer speed is shown in real time, and retries happen automatically if the connection drops briefly.
- A warning appears if you're running low on disk space before starting a large operation.
FolioSort 2.0 — Free tier and Pro unlock
FolioSort now has two tiers: a free version for everyday use, and a Pro upgrade for power users who need unlimited operations and advanced features.
- Free includes: up to 100 files per operation, 3 saved presets, standard photo and video formats, file integrity verification, and undo.
- Pro unlocks: unlimited files, all 7+ folder and rename presets, custom template builder, saved profiles, RAW formats, SHA-256 verification, 50 undo batches, GPS reverse geocoding, and regex rename.
Custom folder patterns, GPS location sorting, and regex rename
A major feature update that brings professional-grade organization tools to FolioSort:
- Custom folder templates: build your own folder structure using tokens like year, month, camera model, ISO, aperture, and more.
- GPS reverse geocoding: automatically sort photos into folders named after the city or country where they were taken — powered by Apple Maps.
- Regex rename: use Find & Replace with regular expressions for advanced file renaming.
- Presets & profiles: save your favourite configurations and switch between them instantly.
- Onboarding wizard: a 3-step guide that appears when you first launch FolioSort.
Cleaner folder settings and faster scanning
The folder structure panel is now simpler by default, with a dropdown to pick common patterns — and an "Advanced" toggle that reveals the full template builder when you need it. You can also now skip thumbnail generation to scan large folders significantly faster.
Drag & drop support and real-time progress with ETA
The first major usability update — making FolioSort feel like a native macOS app:
- Drag a folder directly from Finder into FolioSort to add it instantly.
- A progress bar now shows you how far along an operation is, with a live estimate of time remaining.
- Operations can be cancelled at any point.
- File thumbnails are shown next to each file after scanning, so you know exactly what FolioSort found.
- Operations can now run on multiple files at the same time for faster throughput.