Changelog

Every release,
documented.

Updates ship fast during beta. This page tracks every version — what changed, what got fixed, what’s new.

v1.0.7
Feb 26, 2026
Fixed
  • Crash: duplicate_match_type column missing from photos table
v1.0.6
Feb 26, 2026
New
  • Real-time folder tree updates during NAS discovery
Fixed
  • Post-reset missing tables and stale photo ID cache
  • Prevented vnode-unlinked-while-in-use crash during library reset
  • Corrected INSERT placeholder count in updateDiscoveryTree
  • Per-session discovery debounce for concurrent NAS imports
  • SMB/NFS/AFP mounts now classified as .network in driveInfo
  • DNG thumbnail ImageIO blocking cooperative pool, starving actor hops
  • Resume button silently dropping when thumbnail pool is saturated
  • Activity count frozen at 1,000 during NAS discovery
  • Resume buttons not firing — added Resume All button
  • Activity sidebar frozen at 1,000 on resumed imports
v1.0.5
Feb 26, 2026
Fixed
  • NAS/SMB import stalling at exactly 5,000 files (QNAP FIND_FIRST2 session limit) — switched to per-directory enumeration via FileManager.contentsOfDirectory for network volumes
  • Activity sidebar count frozen at 1,000 during NAS discovery — bypassed UI throttle for discovery-phase progress callbacks
  • Duplicate import sessions launching on wake-from-sleep or rapid taps via activeSessionIDs guard
  • Stale sessions showing 0/N in Activity view after re-discovery via clearSessionFiles before retry
  • Resumable session banner showing active (in-flight) sessions as resumable
  • Non-blocking NAS volume detection preventing actor stall on stale SMB mounts
  • Import completion popup appearing for 0/0/0 results on empty or inaccessible shares
Improvements
  • Stall-guard watchdog: detects discovery stuck for >2 min and retries with exponential backoff
  • Wake-from-sleep handler: auto-resumes network-volume imports after Mac wakes
  • Refactored discoveryInProgress from Bool to counter to support multiple concurrent shares
v1.0.4
Feb 24, 2026
Improvements
  • MultiSourcePicker functionality enhancements
v1.0.3
Feb 24, 2026
Improvements
  • Release Manager version reading and build tooling fixes
v1.0.2
Feb 24, 2026
Improvements
  • Background task and file handling performance improvements
  • Thumbnail management and licensing enhancements
  • Build and release process improvements
v1.0.1
Feb 22, 2026
Fixed
  • Thumbnail startup race condition with deterministic cache gate
  • Empty trash SQLite error 0 and usage statistics in Settings
Improvements
  • SigLIP 2 CoreML integration, mmap crash fix, Ultra/Extreme idle performance
  • NIMA quality scoring model integration, ExternalEditors fix, UI rescore improvements
  • Performance overhaul — duplicate detection, sidebar counts, actor scheduling
  • Security-scoped bookmark management and thumbnail service enhancements
  • Crash reporting dialog and telemetry system
  • Legal flow, debug logger, Smart Enhance fixes
  • AI action management and notification handling
  • Folder management and thumbnail handling improvements
v0.9.0
Feb 14, 2026
New
  • Smart Albums — save any filter combination as a persistent named collection
  • Multi-source concurrent import — run up to 4 simultaneous import sessions
  • Import Mode setting (Conservative / Balanced / Aggressive) for CPU throttling
  • Per-session discovery debounce prevents duplicate file entries on rapid reimport
Fixed
  • Sidebar photo count not updating during NAS discovery on large libraries
  • Race condition in thumbnail gate causing blank thumbnails on first launch
Improvements
  • Refactored filter pipeline for 3× faster filter application on 500k+ libraries
v0.8.0
Feb 3, 2026
New
  • NAS wake-from-sleep handler — auto-resumes interrupted SMB imports after Mac wake
  • Stall-guard watchdog detects and retries discovery sessions stuck for >2 minutes
  • SMB bookmark persistence — NAS mounts survive app restart without re-prompting
  • Face recognition powered by on-device Vision framework — group and name people in your library
Fixed
  • SMB session timing out on QNAP NAS after ~5,000 files in a single enumeration — switched to per-directory enumeration strategy
  • getfsstat blocking actor thread on stale NAS mounts — migrated to MNT_NOWAIT non-blocking variant
Improvements
  • Exponential backoff retry (30s → 60s → 120s → 5min) for network volume reconnection
v0.7.0
Jan 19, 2026
New
  • Local AI scene and object tagging powered by SigLIP 2 Core ML model
  • NIMA quality scoring model — automatically ranks photos by technical quality
  • NSFW content detection — optional, fully on-device, toggle in Settings > AI Features
  • AI tagging queue with background processing and progress indicator in sidebar
  • Filter by AI tag in smart filter bar
Fixed
  • Core ML model loading race on launch causing crash on first AI tag request
  • mmap crash in SigLIP model file when library cache was cleared while model was loaded
Improvements
  • All AI inference runs on Apple Neural Engine when available; falls back to CPU
v0.6.0
Jan 5, 2026
New
  • Full NAS support — import from SMB, NFS, and AFP network shares
  • NAS speed profile auto-detection using I/O latency and throughput sampling
  • Pre-flight SMB access check with user-friendly "Reconnect" banner on stale bookmarks
  • Synology, QNAP, and Asustor tested and confirmed compatible
Fixed
  • statfs() blocking the main actor on disconnected SMB mounts — app would freeze for 30+ seconds
  • NFS mounts incorrectly classified as local storage
Improvements
  • NAS imports now show estimated time remaining based on discovery count and measured throughput
v0.5.0
Dec 14, 2025
New
  • Duplicate detection — SHA-256 content hashing flags exact duplicates regardless of filename or location
  • Visual duplicate comparison view with side-by-side image display
  • Batch duplicate resolution — keep highest resolution, keep oldest, or keep newest
  • Geolocation reverse-geocoding — shows city/country name from GPS EXIF data
Fixed
  • Hash worker starvation causing import to hang on large RAW files (>50MB)
  • HEIC files with rotation flags displaying sideways in duplicate comparison view
Improvements
  • Hash computation moved to concurrent background queue; no longer blocks EXIF extraction pipeline
v0.4.0
Nov 30, 2025
New
  • RAW file support — CR2, CR3, ARW, NEF, DNG, RAF, ORF, RW2, PEF, SRW
  • RAW thumbnail generation via ImageIO — no external tool required
  • Per-format import concurrency tuning (DNG and CR3 get lower concurrency due to higher decode cost)
  • Smart filter bar — filter by camera model, lens, focal length, ISO, aperture, date range
Fixed
  • DNG thumbnail ImageIO blocking the main thread, causing UI freeze during large imports
  • Orientation flag not applied to RAW thumbnails — photos displayed rotated
Improvements
  • ImageIO thumbnail generation now runs off-actor in a cooperative thread pool
v0.3.0
Nov 8, 2025
New
  • Timeline view — browse photos organized by year → month → day using EXIF capture date
  • Star ratings (1–5 stars) and color labels — stored in FocusSort database, don't modify original files
  • Thumbnail grid with variable zoom (3× to 8× columns)
  • Sidebar source tree showing folder hierarchy with photo counts
  • Resume interrupted imports — session state persisted in SQLite, resumes from exact position on next launch
Fixed
  • EXIF datetime parsing failing for photos with non-standard timezone offset formats
  • Thumbnail cache invalidation not triggering when files were modified externally
Improvements
  • Thumbnail generation uses CGImageSource with kCGImageSourceShouldCacheImmediately: false to reduce peak memory usage by 60%
v0.2.0
Oct 12, 2025
New
  • EXIF metadata extraction — camera, lens, focal length, ISO, shutter speed, aperture, GPS, capture date, orientation
  • SQLite database for photo metadata storage — non-destructive, original files never modified
  • Import progress view with per-file status, files/second throughput, and ETA
  • Security-scoped bookmark management for accessing folders outside sandbox
  • Full Disk Access detection and permission request flow
Fixed
  • App crashing on launch when Photos.app library was set as source (incompatible access pattern)
  • EXIF extraction hanging on corrupt JPEG files with truncated APP1 segments
Improvements
  • Parallel EXIF extraction pipeline — 8 concurrent workers on Apple Silicon for maximum throughput
v0.1.0
Sep 1, 2025
New
  • Initial private alpha release
  • Core photo discovery: recursive folder enumeration using FileManager.contentsOfDirectory
  • Basic JPEG + HEIF import with file count and progress tracking
  • Simple grid view with system thumbnail provider
  • Settings: dark mode only, import source path configuration
  • SwiftUI-based, macOS 13 Ventura minimum
  • SQLite database schema v1 — photos table with path, filename, file size, import date