Any changes made to the program are documented here for your reference.
0.9.4
- Scanning a card now shows files found and shots read as it goes, and Cancel stops the scan at once instead of after it finishes, for better feedback during imports.
- Performance optimisations: Scans read far less data from the card prior to the copy phase, the device list counts shots faster, the settings preview reads only the shots it shows, and Organize mode reads each file's metadata once (it would previously read multiple times).
- Import history is indexed locally and read incrementally, so opening History or starting an import no longer re-reads every manifest from disk in full. The manifest file in each destination is unchanged, and remains the record for import history. Session file lists load when expanded.
- (Pro license only) Experimental and off by default: overall focus measurement, image quality assessment, and subject focus measurement (faces and common objects, local sharpness). Photoshovel can now mark "best of a group" shots with a green marker or "nothing in focus" shots with a red marker in XMP sidecars to speed up selection in your favourite editor.
0.9.3
- Various security hardening fixes to protect data against corruption from maliciously-structured SD cards and other attack vectors.
- Empty file name templates are now treated as a hard error.
- Symlink treatment improvements to avoid potential issues caused by following links on cards.
- Metadata reads are now bounded (an 8 MiB prefix for RAW/TIFF files, a 256 MiB ceiling on the rare full read, and a 64 MiB window for JPEG/HEIF) so a maliciously-structured file cannot crash the app through memory exhaustion.
- Overwrites now re-read the written file before final atomic renames are conducted.
0.9.2
- Fixed a rare edge case where two source files could be planned to the same destination in a single import and only one would survive - for example IMG_0001.CR2 in both 100CANON and 101CANON after a counter reset, or burst frames sharing a second with a folder template that drops the original filename. Both files are now copied, and shots are grouped per card folder so same-named files in different folders are never mistaken for one another.
- Cleanup re-checks every file on the card against what was verified before deleting it. If a different card from the same body was swapped into the reader while a delete confirmation was waiting, nothing is deleted and the import says why.
- Same-shot overwrite rules now require a camera body serial, and any sub-second or frame number present on one side must match on the other. Bodies that do not write a serial keep both files instead, as the option promises.
- Video clips correctly use local time, not UTC, for dates, so an evening clip lands in the same folder as the stills shot around it.
- A card that briefly looks disconnected (for instance while cleanup empties it) no longer cancels the running import or re-triggers auto-import.
- Mac resource-fork files (._IMG_0001.JPG) and hidden system folders on the card are skipped instead of being imported as photos.
- Source modified time is now preserved on copies, so Finder and Explorer sort them by shoot date.
- A card already in the reader when Photoshovel starts is now auto-imported reliably.
- Adding an allow-list rule by card name now asks for confirmation first when your auto-import pipeline deletes from the card, since a name rule matches every card formatted in that body.
- Support for card readers that present as fixed disks (CFexpress and UHS-II readers, USB bridges) added on Windows. Internal disks are never scanned and the system drive is always excluded. An empty reader slot can no longer pop up a "Please insert a disk" dialog.
- Linux: cards show their volume label instead of a device path, and built-in SD readers are detected alongside USB ones.
- Only one instance can run at a time to prevent confusion; launching Photoshovel again brings the existing window forward.
- Startup no longer waits on a sweep of every destination folder, which could stall launch on a large library or a NAS.
- RAW files are now not read in full for metadata reads, and metadata gathered during the card scan is reused during the copy, speeding up transfers further.
- Far fewer status messages while a slow backup verifies, and reading history or saving settings no longer blocks the interface. Sizes and durations are formatted consistently across every panel.
0.9.1
- Added support for HEIF stills (.HEIC, .HEIF and Canon/Sony/Fujifilm .HIF), including their embedded capture dates and camera details - they organize into date folders and pair with RAW files exactly like JPEGs do.
- Added audio support: voice notes attached to photos (e.g. Nikon's DSC_0002.WAV) travel with their photo, and standalone recorder files (Zoom, Tascam) are imported too. Broadcast Wave timestamps are used for date folders, and a new "Audio" file-type toggle controls all of it per destination.
- Canon CR3 raw files now have their metadata read (capture date, camera, serial number), so CR3-only shoots get proper date and camera folders instead of "unknown".
- Video camera support for Blackmagic, DJI, GoPro and Insta360 cameras: .braw, .insv/.insp, GoPro .360, low-resolution proxies (LRV/LRF) and drone telemetry (.SRT) files are all recognized and copied. Blackmagic and Insta360 cards are detected even when they have no DCIM folder.
- GoPro chaptered recordings (GX010001 + GX020001) and Insta360 proxy/dual-lens files are now grouped as single recordings during import.
0.9.0
- Fixed a potential data loss bug which could occur in a multi-card backup scenario where the user deleted the first card's import after it imported but before the other card started importing; on-disk reverification was not performed in this case but if a previous import confirmed it as written successfully, the source file could have been erased if auto-cleanup was enabled. Previous imports' verification checks are now ignored, which guards against this case by requiring re-validation of files on disk prior to cleanup.
- Made deduplication destination-root aware; files will be duplicated/verified in the new destination if the destination changes between imports, rather than assumed present in a previous root location.
- Fixed a number of rare user interface bugs and keyboard shortcut mappings.
- Fixed two mismatched-lifetime bugs which could result in photos not being re-verified on the second import of a card.
- Improved the onboarding user interface to select the most appropriate deduplication mode by asking a new user if they shoot on A+B cards or on single cards, and to prompt for a destination prior to closing the onboarding flow.