Repository navigation
FITS Blaster 1.23-beta.2
Pre-release
Pre-release
·
32 commits
to main
since this release
2026-04-12 — QuickLook previews and thumbnails for all FITS formats
Added
- QuickLook preview and thumbnail support for floating-point FITS files (BITPIX -32 and -64). Previously these showed blank icons in Finder.
- QuickLook preview and thumbnail support for 3-channel RGB colour FITS files (NAXIS3=3), such as stacked integrations from Astro Pixel Processor.
- Asinh stretch (beta=50) for float FITS previews — compresses bright cores while revealing faint nebulosity in linear astrophotography data.
- Large-file subsampling: files over 2048px are stride-sampled during preview to stay within QuickLook's memory limit (~120 MB), enabling previews of 1+ GB stacked integrations.
FITSReader.readForPreview(from:)— dedicated read path that accepts float BITPIX and multi-channel files without affecting the main app's integer-only pipeline.
Improved
- Zero-pixel exclusion in percentile estimation prevents stacking artifacts (unfilled corners) from skewing the preview stretch.
2026-04-12 — SwiftUI review fixes, accessibility, tests, and rejected-view cursor fix
Added
- 111 unit and integration tests covering FITSReader, quality scoring, filter group normalisation, frame metrics, Bayer pattern parsing, histogram computation, and star detection with synthetic images (single star FWHM accuracy, multi-star count, gradient background robustness, noise rejection, elongated star eccentricity, FITS round-trip pipeline, CPU image stretch).
Fixed
- Undo-reject and reject actions now advance the cursor to the next visible entry, matching the flagged-view behaviour.
- VoiceOver: inspector toggle and chart style buttons now have accessible labels instead of empty strings.
- VoiceOver: session chart tap overlay now declares
.isButtontrait. - VoiceOver: filter strip chips are individually focusable (replaced ScrollView with HStack) and announce selected state.
- VoiceOver: inspector panel exposes children to VoiceOver navigation.
Improved
- Settings tabs migrated from deprecated
.tabItem()to theTabAPI. - Filter group header uses cached
GroupStatsinstead of recomputing O(n log n) median on every render. .filter { }.countreplaced with.count(where:)in ExportPanel and BatchProgressBar.- Drag handle uses semantic
.quinary/.quaternarycolours instead of manual opacity. AppDelegateannotated@MainActorfor strict concurrency.- Unnecessary explicit
returnremoved from single-expression switch cases. - Menu command views extracted from
FitsBlasterApp.swiftintoMenuCommands.swift.
2026-04-09 — Session chart bars, filter fix, play mode, flip, and beta channel
Added
- Session chart: optional bar chart mode as alternative to dots. Toggle via the chart header button. Preference is persisted.
- Play mode: press P to auto-advance through images at a configurable speed (0.2–5.0 seconds per frame). A speed slider appears in the toolbar during playback. Manual navigation stops playback automatically.
- Flip 180°: press V to rotate the current image (or batch selection) 180 degrees for display. A rotation indicator appears on the thumbnail. Does not modify FITS files.
- Cursor memory per filter group: switching between filter buttons (R, G, B, etc.) remembers and restores the selected image for each group.
- Beta release channel: tag a version as
v1.23-beta.1to publish a test build without updating the homepage. Beta builds get their own page (beta.html), appcast feed (appcast-beta.xml), and are marked as pre-releases on GitHub. - Beta page on the website with download link and release notes for the latest beta build.
- Release & issue workflow guide (
guide-releases.html) documenting the tag-based release process and GitHub Issues workflow.
Fixed
- Filter buttons above the thumbnail sidebar now work correctly in multi-folder sessions.
- Switching filter group or rejection visibility now auto-selects the first visible entry when the cursor is hidden.
- Unflagging an image in the Flagged view now advances the cursor to the next flagged image instead of losing the selection.
- Playback stops automatically when switching filter group or rejection visibility.
- Playback timer moved out of SwiftUI view modifier to prevent task cancellation during view rebuilds.
Improved
- O(n²) search in image removal replaced with O(n) scan for selecting the next entry.
- GitHub Actions pipeline detects beta tags and adjusts behaviour: marks releases as pre-release, writes to separate appcast and site files.
- Site navigation now includes a Beta link on all pages.