Version 1.5.2
Categories:
Version 1.5.2 - April 16, 2026
Important
Version 1.5.2 is stable, but additional UI updates may be released before the next version is submitted for review on the Apple App Store, likely sometime next week.
RawCull changes summary β v1.5.0 β v1.5.2
Changelog: v1.5.0 β latest (main)
Repository: rsyncOSX/RawCull
Range: v1.5.0...main
Generated: 2026-04-16
π Features
Burst grouping workflow
- Added
indexAndGroupBursts()to index embeddings and then cluster files into bursts. - Added
reGroupBursts()to re-run clustering when sensitivity changes. - Added
keepBestInGroup()to auto-rate the sharpest frame as β β β and reject the rest.
Files
RawCull/Model/ViewModels/RawCullViewModel+BurstGrouping.swiftRawCull/Model/ViewModels/SimilarityScoringModel.swiftRawCull/Views/GridView/GridThumbnailSelectionView.swiftRawCull/Views/GridView/SimilarityControlsView.swift
Burst grouping model/state
- Added
BurstGroupmodel. - Added burst-related state:
burstGroupsburstGroupLookupburstSensitivityburstModeActiveisGrouping
- Added async sequential grouping pass over embeddings in shot order.
Burst-aware grid UI
- Grid now supports burst-mode sections.
- Added per-group header with:
- burst frame count
- best-frame display (and optional sharpness %)
- Keep Best
- Reject All
- Added crown marker overlay for the best frame inside burst groups.
New Focus settings tab
- Added Settings β Focus tab.
- Moved focus-mask tuning controls from image overlay into settings.
- Added centralized focus-point marker-size control.
Files
RawCull/Views/Settings/FocusSettingsTab.swiftRawCull/Views/Settings/SettingsView.swiftRawCull/Main/RawCullApp.swift(environment injection for settings)
π Fixes
Zoom clamp fix
- Fixed zoom-in clamping logic:
- from
max(0.5, currentScale + 0.4)(incorrect for upper bound) - to
min(5.0, currentScale + 0.4).
- from
Files
RawCull/Views/ZoomViews/ZoomableFocusePeekCSImageView.swiftRawCull/Views/ZoomViews/ZoomableFocusePeekNSImageView.swift
Settings environment propagation
- Ensured settings views receive the shared
viewModelvia.environment(viewModel).
β‘ Performance / Responsiveness
- Burst grouping work runs in a detached async task.
- Grouping path uses a sequential O(n) pass over precomputed embeddings.
- Added grouping progress indicator (
Grouping burstsβ¦) while clustering is running.
β»οΈ Refactors / UX Simplification
Overlay controls simplified
- Removed the expanded in-overlay focus-mask slider panel.
- Overlay controls now focus on:
- focus-mask toggle
- focus-point toggle
- zoom controls
- Advanced focus controls moved to Settings β Focus.
Focus point marker size centralized
- Moved marker size to shared view model state:
RawCullViewModel.focusPointMarkerSize
- Applied consistently across main image + zoom surfaces + settings.
Grid toolbar layout cleanup
- Header reorganized into two rows:
- Row 1: analysis tools
- Row 2: rating/culling filters
- Sharpness controls are hidden during burst mode to reduce clutter.
π§ͺ Tests / Tooling
- Updated
.periphery.ymlexcludes to include:RawCull/RawCullTests/SharpnessScoringTests.swiftRawCull/RawCullTests/SimilarityScoringTests.swift
β οΈ Breaking changes
No clear API-breaking change detected in this range.
Behavioral UX change to note:
- Focus mask tuning moved from in-overlay controls to Settings β Focus.