Repository navigation
Releases: msjurset/stash-mac
Releases · msjurset/stash-mac
Release list
v1.11.7
Features
- Add User Guide (
docs/USER_GUIDE.md), Practical Cookbook (docs/COOKBOOK.md), and automated annotated screenshot suite with clean companion views. - Add AI failover services for title/tag generation.
Bug Fixes
- Fix CI builds by wrapping
makeSuggestionin#if canImport(FoundationModels)and enabling Swift 5 language mode with bare slash regex literals.
v1.11.6
Bug Fixes
- Gemini Model 404 Fix: Defaulted model selection to
gemini-3.5-flashand added automatic mapping forgemini-3.1-flashto prevent 404 endpoint errors. - Ask Gemini Enter Key: Passed
onSubmitintoFilterFieldinitializer so pressing Enter submits follow-up prompts in Notes. - Inline Title Editing: Updated
FilterField'supdateNSViewto check active field editor state (currentEditor()), fixing single-keystroke editing interruption. - Prompt Alignment: Unified default identification prompt across platforms with detailed confusion-species and key visual feature instructions.
v1.11.5
Features & Improvements
- Vim-Aware Notes Field: Replaced separate view/edit modes with unified inline VimAwareEditor for seamless interaction.
- Precision Hit-Testing: Native character bounding-box hit testing distinguishes double-clicks on words (word selection) from double-clicks on padding/whitespace (launches popover editor).
- Full-Frame Focus: Overrode
hitTestand scroll-view height tiling so single-clicking anywhere inside the field immediately focuses, places the cursor, and expands the view to 150px. - Click-Off Dismissal: Integrated
.onClickOutsidemonitor to save edits and collapse the Notes field upon clicking away. - Clean Styling: Standardized background fill to match app design tokens.
v1.11.4: Fix inline edit double-click focus regression
- Swallowed unmatched leftMouseUp events on double click in ClickCatcher to prevent text field editing abortion
- Assigned explicit SwiftUI IDs to InlineEditField instances to prevent destruction and recreation during unrelated hover state redraws
v1.11.3: Fix scroll beachball regression
- Restored crucial silence rendering optimization in CompositeWaveformView
- Extended silence rendering optimization to WaveformTrackView
- Fixed hover flicker during scrolling by debouncing mouseExited events in HoverTrackingView
v1.11.2
v1.11.2
Bug Fixes
- XRay Audio Scroll Beachball: Fixed a severe CPU saturation hang caused by
HoverTrackingViewrecreating its internalNSTrackingArea60 times a second during active scrolling. It now relies fully on AppKit's native.inVisibleRectgeometry synchronization.
v1.11.1
v1.11.1
Bug Fixes
- XRay Audio Waveform Stability: Replaced SwiftUI's native
.onContinuousHoverwith a customHoverTrackingViewoverlay to prevent internal tracking area corruption and infinite loops when mounting and unmounting text fields over the waveform. - Waveform Performance Optimization: Dramatically reduced CPU math and
Pathallocation overhead when rendering wide zoomed waveforms by increasing the drawing stride. This eliminates the "beachball" hangs caused by hovering over dense tracks. - Track Name Editor Closing: Fixed an issue where the inline edit field for track names would instantly dismiss itself due to a zero-bounds hit-test check triggering the click-outside monitor inappropriately.
v1.11.0
Features
- Add non-destructive remixing and auto-select primary mix on X-Ray load
- Add inline help summaries and contextual help buttons to Remix Options
- Add inline caption editing for X-Ray tracks via double-click
Improvements
- Optimize audio alignment and envelope extraction using Accelerate vDSP vector operations
- Optimize X-Ray composite waveform rendering with batch drawing, precomputed amplitudes, and GPU acceleration
- Optimize main thread performance by decoupling hover state and leveraging SwiftUI native event coalescing
Bug Fixes
- Fix beachball/hang on main thread during XRay scrolling by fixing layout loops and eliminating dictionary caching logic
- Fix integer/double overflow crashes when converting to AVAudioFrameCount
- Fix crash in loadPCM due to Double-to-UInt32 conversion
- Fix crash in InlineEditField
- Ignore mouse down events with clickCount > 1 in InlineEditField click-outside monitor
Release v1.10.0
Features
- Rule Template Editor: Embedded new YAML highlighter, code completion provider, and vim-aware text editor wrapper (
VimAwareCodeEditor) for rule templates. - Settings Budgeting & Paid Tier Preferences: Added UI configurations in Gemini Settings view for paid tier budgeting limits, usage thresholds, and active model providers.
- X-Ray Audio View: Enhanced multi-track audio mix view with magnifier lens, zoom controls, loop points, playback controls, and track selection.
- Location Map Popover: Upgraded maps popover to show additional points from attached media files.
Improvements
- Markdown Blocks Parser: Support for parsing block elements like rules, headers, lists, tables, and code blocks with backticks.
- Custom Text Editors: Suppressed predictive text, inline prediction, and autofill popup interfaces on Sequoia.
Bug Fixes
- Layout & selection freeze: Resolved a 100% CPU main thread hang when switching detail selections by keying
ItemDetailViewwith.id(item.id). - Dirty edit saves: Prevented popover text editor from saving to newly selected item ID during transition.