Last night was busy – three releases!
v2026.4.7-beta
This was the big one.
-
PhotoStructure can now install photo and video tooling (like ffmpeg and libheif) on your behalf. Docker users: visit the docker compose wizard (just load the page, it’ll remember what you typed last!) and fetch a new (much simpler)
compose.yml. -
Inline log and sync report viewers (with follow!) in the browser
-
Clickable lens tags in the asset info panel
-
The Sync page now shows live per-file transcode progress with ETAs
-
New welcome overlay for first-time users
-
Press ? anytime for keyboard shortcuts
-
Over 130 bug fixes (!!)
-
Docker moves to Debian 13 (trixie)
-
Hung ffmpegs are detected and recycled automatically–previously they were timing out after 10 minutes regardless of progress.
-
Support ffmpegThreads=0
-
Stricter fuzzy-date duplicate matching
-
bnameImageHashmatching: RAW/JPEG and Google Takeout derivative pairs now match on basename + perceptual hash even when capture dates are unreliable -
Window position remembered per monitor arrangement
-
Close-to-tray toggle in the View menu
-
web --resetCLI flag to clear caches and codec consent in one command
v2026.4.8-beta
-
macOS users without Homebrew no longer need to install it (or wait 30 minutes for xcode to decide to install command line tools) — PhotoStructure now uses Pixi to set up ffmpeg automatically, no admin password required.
-
Fixed spurious “Update Check Failed” dialogs on flaky networks
-
Fixed close button overlapping macOS traffic lights in the overlay
-
Fixed empty tags persisting after asset removal (inactive asset links)
-
Fixed busy-dots spinner rendering too small and not animating
-
Reduced noisy sync warnings for routine cleanup states
-
Fixed crash bugs in fs-metadata and @photostructure/sqlite
-
Fixed Azure Trusted Signing Tools installation in desktop CI
-
Excluded sqlite test extension from desktop RPM builds
v2026.4.9-beta
- Quick follow-up: fixes header icon click targets (back, forward, sidebar toggle) that .8’s traffic-light fix accidentally shrank
More details here: