Skip to content

Releases: illixion/SpatialStash

0.1.0-6ece8b7a

04 Jun 18:55
6ece8b7

Choose a tag to compare

  • Update Xcode on GH runner
  • Update screenshots
  • build-and-sign: support EXTRA_BUILD_SETTINGS from the signing conf
  • Build info: -dirty hash suffix, optional BuildInfo.xcconfig include
  • Make remote slideshow window size restoration reliable
  • Fix video duration race stalling remote slideshow imageReady
  • Unify flip into the adjustments popover; fix JXL background-removal restore
  • Fix remote slideshow stalling on animated images in 3D mode
  • Prevent blank flash when slideshow switches to animated image or video
  • Restore custom window size after visionOS cold relaunch
  • Document RoboFrame protocol ref and no-client-advance constraint in CLAUDE.md
  • Stop local-advancing remote slideshows; let the server drive switching
  • Report video clip length in imageReady so long clips delay the slideshow
  • Only send remote slideshow imageReady for active windows
  • Make remote slideshow purely server-driven
  • Let the server fully track the current tag list
  • Advertise raw aspect ratio in slideshowConfig
  • Suppress remote viewer spinner while a video is playing
  • Prevent native video controls flashing on load when hidden
  • Add reshuffle button to remote viewer; simplify tag list button
  • Make slideshow tag list per-window and per-profile
  • Fix slideshow wedging in .loading after network aborts
  • Add video support to the slideshow
  • Quick Look 3D: press-grow gesture, progressive load, atomic handoff
  • Quick Look 3D: side menu, z-lift over diorama, reduce-motion fade
  • Replace 3D thumbnails with long-press Quick Look preview
  • Add spatial 3D thumbnail style alongside diorama
  • Skip global viewing-mode defaults on restored pop-outs
  • Fix visibility reporting across reconnect + flutter
  • Hide ornaments on restored pop-out windows
  • Debounce ratio-driven slideshowConfig re-sends
  • Fix stuck Remote slideshow + send per-window ratio
  • Skip resize on 3D adjustment preview branch mount
  • Update default values in build script
  • Remove unused variable
  • Prewarm 3D adjustment preview, hide sharpen when meaningless
  • Combine global + per-image adjustments, fix 3D 2D-preview blank
  • Skip 3D regen when only opacity / sharpen changes
  • Guard mod tag preset binding against stale indices
  • Expose slideshow 3D mode in remote preset Display section
  • Send lowmem on slideshowConfig (always false here)
  • Survive slideshow window close mid-Spatial3DImage generation
  • Preserve diorama foreground's full source-frame canvas
  • Render diorama layers via GPU-private MTLTextures
  • Remove Home Assistant web overlay from the remote viewer
  • Trim slideshow look-ahead on system memory warning
  • Pause video ornament auto-hide while a menu or popover is open
  • Restore 3D adjustment regen against CPU-released image data
  • Push slideshow adjustments through Metal shader and Spatial3D bake
  • Render slideshow via Metal textures, add animated WebP support
  • Promote debug logs to info while in-app console is open
  • Gate slideshow imageReady WS event on RealityKit depth-map completion
  • Toggle slideshow 3D/Immersive 3D in place instead of regenerating
  • Fire slideshow 3D nudge mid-crossfade instead of after it
  • Wire slideshow 3D taps through a targeted-entity gesture
  • Extend slideshow tap target to the full window
  • Let taps through the slideshow 3D layer for ornament toggle + nudge
  • Fix slideshow 3D hidden-slot stalls after a missed peek
  • Stop slideshow 3D peek shift from clobbering the pre-generated slot
  • Add Fully Immersive 3D mode for the photo viewer
  • Add slideshow 3D mode with per-mode resolution caps
  • Pin auto-3D pill width so button text never wraps
  • Clear IPC off-axis blur via 1pt window nudge on tap and resume
  • Re-apply @Observable on RemoteViewerModel subclass
  • Actively recover the remote channel on scene resume
  • Scope setTagList to a session so the server can per-channel it
  • Reframe auto-3D pill as a Yes/Never switch prompt
  • Decouple spatial 3D source resolution from 2D display cap
  • Restyle tab bar ornament with Liquid Glass and crossfade tabs
  • Replace chip-based associations with collapsible inline list
  • Give tag/performer chips their own focus region and bigger touch target
  • Add pinch-and-hold to copy on Stash info window fields
  • Keep remote viewer ornament alive while mod tag preset input is open
  • Treat last 3D viewing mode as no preference for default-3D

0.1.0-c6a25f65

18 May 06:47
c6a25f6

Choose a tag to compare

  • Decouple spatial 3D source resolution from 2D display cap
  • Restyle tab bar ornament with Liquid Glass and crossfade tabs
  • Replace chip-based associations with collapsible inline list
  • Give tag/performer chips their own focus region and bigger touch target
  • Add pinch-and-hold to copy on Stash info window fields
  • Keep remote viewer ornament alive while mod tag preset input is open
  • Treat last 3D viewing mode as no preference for default-3D
  • Stabilize swipe gesture modifiers so 3D window survives UI auto-hide

0.1.0-b4a5a2ab

15 May 10:33
b4a5a2a

Choose a tag to compare

  • Stabilize swipe gesture modifiers so 3D window survives UI auto-hide
  • Add per-image spatial 3D resolution override
  • Treat last 2D viewing mode as no preference for default-3D
  • Gate photo swipe navigation on window controls visibility
  • Push slideshow interval to RoboFrame on slider change
  • Hide diorama layers while the history grid is open
  • Replace per-window history with shared /history.json store
  • Queue slideshow advances instead of flashing failure placeholder
  • Await diorama pair before slideshow crossfade
  • Lift slideshow overlays above diorama foreground plane
  • Probe with ping on scene-phase wake instead of forcing reconnect
  • Stop WebSocket reconnect storm at the actual root cause
  • Stop WebSocket reconnect storm on instant ENOTCONN

0.1.0-cf67a288

14 May 14:33
cf67a28

Choose a tag to compare

  • Add per-image spatial 3D resolution override
  • Treat last 2D viewing mode as no preference for default-3D
  • Gate photo swipe navigation on window controls visibility
  • Push slideshow interval to RoboFrame on slider change
  • Hide diorama layers while the history grid is open
  • Replace per-window history with shared /history.json store
  • Queue slideshow advances instead of flashing failure placeholder
  • Await diorama pair before slideshow crossfade
  • Lift slideshow overlays above diorama foreground plane
  • Probe with ping on scene-phase wake instead of forcing reconnect
  • Stop WebSocket reconnect storm at the actual root cause
  • Stop WebSocket reconnect storm on instant ENOTCONN
  • Preserve source frame size in background removal output
  • Skip diorama for transparent-background source images
  • Pause photo ornament auto-hide while More menu is open
  • Gate demo image source behind explicit user confirmation
  • Fix diorama bright halo and include thumbnail diorama cache in clearing
  • Improve diorama backdrop by replacing heavy blur with morphological fill
  • Park WebSocket reconnects when network path is unsatisfied
  • Share one WebSocket across viewer windows via session multiplexing
  • Replay slideshowConfig on every WebSocket reconnect
  • Rebuild URLSession on every WebSocket reconnect
  • Harden WebSocket reconnect for sleep/wake and dead sockets

0.1.0-f748109c

09 May 13:26
f748109

Choose a tag to compare

  • Preserve source frame size in background removal output
  • Skip diorama for transparent-background source images
  • Pause photo ornament auto-hide while More menu is open
  • Gate demo image source behind explicit user confirmation
  • Fix diorama bright halo and include thumbnail diorama cache in clearing
  • Improve diorama backdrop by replacing heavy blur with morphological fill
  • Park WebSocket reconnects when network path is unsatisfied
  • Share one WebSocket across viewer windows via session multiplexing
  • Replay slideshowConfig on every WebSocket reconnect
  • Rebuild URLSession on every WebSocket reconnect
  • Harden WebSocket reconnect for sleep/wake and dead sockets
  • Persist thumbnail dioramas to disk and load both layers in parallel

0.1.0-c1c7ad04

09 May 06:27
c1c7ad0

Choose a tag to compare

  • Persist thumbnail dioramas to disk and load both layers in parallel
  • Restore always-on thumbnail diorama and gate behind a new setting
  • Drop main ornament z-lift and tie viewer/slideshow lift to diorama
  • Add Reduce Motion setting that mirrors system Accessibility
  • Soften diorama transitions in viewers and tame thumbnail hover scale
  • Switch thumbnail diorama to scale-on-hover instead of opacity reveal
  • Pin hover content shape on diorama overlay so reveal can activate
  • Reveal thumbnail diorama only while gaze is on the cell
  • Revert "Crossfade gallery thumbnails into diorama mode"
  • Crossfade gallery thumbnails into diorama mode
  • Revert "Bump gallery thumbnails to 384px"
  • Lift tab bar ornament in z so diorama thumbnails don't poke through
  • Bump gallery thumbnails to 384px
  • Add gaze-driven diorama parallax to gallery thumbnails
  • Restore original display before clearing bg removal for diorama / 3D
  • Make background removal mutually exclusive with diorama / 3D
  • Decouple diorama generation from gallery swipe animation
  • Make diorama default robust against 3D restore prompt
  • Promote slideshow settings to global defaults
  • Update settings labels
  • Add Spatial 3D resolution and Diorama Distance settings
  • Fix animation issues with prev/next image switching
  • Remove multiplexed WebSocket from Remote API, update mod tag UI
  • Fix remote API viewer WS multiplexer ignoring display ID
  • Diorama: fix ornament occlusion
  • Diorama: adjust distance to 25
  • Improve websocket reconnect and file download handling
  • Update docs
  • Drop the blocked WS frame parser — block lists are server-only now
  • Move diorama from enhancement to viewing mode + default mode setting
  • Slideshow: hide diorama on menu open + anchor ornament below window
  • Diorama: subject color extension via CIMaskedVariableBlur to remove halos
  • Downgrade diorama foreground generation log from info to debug
  • Diorama: replace CIColorKernel firming with CIColorMatrix; force RGBA8 output
  • Diorama: revert foreground to blendWithMask, keep firming + decontamination elsewhere
  • Diorama: smoothstep mask firming so foreground composites opaquely
  • Diorama: firm up mask interior so foreground composites opaquely
  • Fix main app window state being cloned incorrectly, fix slideshow image source confusion for local images
  • Diorama: revert to forward parallax, hide while ornament menu is open
  • Send imageReady so the orchestrator's readiness barrier closes promptly
  • Color decontamination kernel + soften mask refinement
  • Diorama: push backdrop behind window plane instead of foreground forward
  • Diorama: flood-fill enclosed mask holes, tighten backdrop edge
  • Diorama: dilate backdrop mask, bias foreground refinement
  • Clamp refined mask to [0,1] to fix deep-fried composite
  • Refine Vision mask: morphological close + contrast steepen
  • Diorama: blur subject in backdrop layer, lower z, hide on popover
  • Add Diorama mode — masked foreground popped forward in z
  • Add RCAS sharpen + SSAA, preserve deep color, downsample for bg removal
  • Surface WS auth failure and broadcast tag list switches
  • Add accessToken to remote viewer config
  • Block on cold-start wait during remote-driven force-advance
  • Trust the engine's prefetched lookahead on playback advance
  • Wake prefetch when a playback frame queues a new lookahead
  • Add ModTagManager: locally-curated mod-tag presets, server-applied
  • Treat server as source of truth for tag and blocked lists
  • Drop the playVideo / stopVideo RPC pathway
  • Play notification sounds via the system alert channel
  • Fix remote playback startup race
  • Drop wsEndpoint config field, log every WS rx + playback decision
  • Allow HTTP for Tailscale-only deployments + verbose WS errors
  • Adopt RoboFrame's playback channel protocol
  • Sync remote viewer with new RoboFrame WebSocket protocol
  • Do not show 3D auto restore for snapped windows
  • Sync RoboFrame API with release version
  • Add A-B loop feature to 2D video player
  • Scope video auto-resume to scene-phase transition window
  • Implement remote viewer window management and enhance duplicate handling
  • Implement window session management and enhance image processing features
  • Update build script
  • Use local source for prev/next on local image viewers
  • Restore Show Debug Console tab visibility toggle
  • Move console log polling off the main thread
  • Move Settings tab to rightmost position
  • Tie console log capture to open console views
  • Make slideshow Display tab toggles update live
  • Add Dynamic Brightness toggle to slideshow
  • Guarantee slideshow advances at the configured interval
  • Track slideshow timer precisely across background cycles
  • Sync docs with recent viewer and slideshow changes
  • Use generic visionOS destination for build command
  • Move sensor emoji to the right of the value
  • Auto-dismiss 3D restore prompt after 10s and on image switch
  • Share WebSocket connections and sync slideshows locally
  • Simplify memory management for slideshows to prevent getting stuck

0.1.0-7e7aa817

07 May 07:06
7e7aa81

Choose a tag to compare

  • Restore always-on thumbnail diorama and gate behind a new setting
  • Drop main ornament z-lift and tie viewer/slideshow lift to diorama
  • Add Reduce Motion setting that mirrors system Accessibility
  • Soften diorama transitions in viewers and tame thumbnail hover scale
  • Switch thumbnail diorama to scale-on-hover instead of opacity reveal
  • Pin hover content shape on diorama overlay so reveal can activate
  • Reveal thumbnail diorama only while gaze is on the cell
  • Revert "Crossfade gallery thumbnails into diorama mode"
  • Crossfade gallery thumbnails into diorama mode
  • Revert "Bump gallery thumbnails to 384px"
  • Lift tab bar ornament in z so diorama thumbnails don't poke through
  • Bump gallery thumbnails to 384px
  • Add gaze-driven diorama parallax to gallery thumbnails
  • Restore original display before clearing bg removal for diorama / 3D
  • Make background removal mutually exclusive with diorama / 3D
  • Decouple diorama generation from gallery swipe animation
  • Make diorama default robust against 3D restore prompt
  • Promote slideshow settings to global defaults
  • Update settings labels
  • Add Spatial 3D resolution and Diorama Distance settings
  • Fix animation issues with prev/next image switching
  • Remove multiplexed WebSocket from Remote API, update mod tag UI
  • Fix remote API viewer WS multiplexer ignoring display ID
  • Diorama: fix ornament occlusion
  • Diorama: adjust distance to 25
  • Improve websocket reconnect and file download handling
  • Update docs
  • Drop the blocked WS frame parser — block lists are server-only now
  • Move diorama from enhancement to viewing mode + default mode setting
  • Slideshow: hide diorama on menu open + anchor ornament below window
  • Diorama: subject color extension via CIMaskedVariableBlur to remove halos
  • Downgrade diorama foreground generation log from info to debug
  • Diorama: replace CIColorKernel firming with CIColorMatrix; force RGBA8 output
  • Diorama: revert foreground to blendWithMask, keep firming + decontamination elsewhere
  • Diorama: smoothstep mask firming so foreground composites opaquely
  • Diorama: firm up mask interior so foreground composites opaquely
  • Fix main app window state being cloned incorrectly, fix slideshow image source confusion for local images
  • Diorama: revert to forward parallax, hide while ornament menu is open
  • Send imageReady so the orchestrator's readiness barrier closes promptly
  • Color decontamination kernel + soften mask refinement
  • Diorama: push backdrop behind window plane instead of foreground forward
  • Diorama: flood-fill enclosed mask holes, tighten backdrop edge
  • Diorama: dilate backdrop mask, bias foreground refinement
  • Clamp refined mask to [0,1] to fix deep-fried composite
  • Refine Vision mask: morphological close + contrast steepen
  • Diorama: blur subject in backdrop layer, lower z, hide on popover
  • Add Diorama mode — masked foreground popped forward in z
  • Add RCAS sharpen + SSAA, preserve deep color, downsample for bg removal
  • Surface WS auth failure and broadcast tag list switches
  • Add accessToken to remote viewer config
  • Block on cold-start wait during remote-driven force-advance
  • Trust the engine's prefetched lookahead on playback advance
  • Wake prefetch when a playback frame queues a new lookahead
  • Add ModTagManager: locally-curated mod-tag presets, server-applied
  • Treat server as source of truth for tag and blocked lists
  • Drop the playVideo / stopVideo RPC pathway
  • Play notification sounds via the system alert channel
  • Fix remote playback startup race
  • Drop wsEndpoint config field, log every WS rx + playback decision
  • Allow HTTP for Tailscale-only deployments + verbose WS errors
  • Adopt RoboFrame's playback channel protocol
  • Sync remote viewer with new RoboFrame WebSocket protocol
  • Do not show 3D auto restore for snapped windows
  • Sync RoboFrame API with release version
  • Add A-B loop feature to 2D video player
  • Scope video auto-resume to scene-phase transition window
  • Implement remote viewer window management and enhance duplicate handling
  • Implement window session management and enhance image processing features
  • Update build script
  • Use local source for prev/next on local image viewers
  • Restore Show Debug Console tab visibility toggle
  • Move console log polling off the main thread
  • Move Settings tab to rightmost position
  • Tie console log capture to open console views
  • Make slideshow Display tab toggles update live
  • Add Dynamic Brightness toggle to slideshow
  • Guarantee slideshow advances at the configured interval
  • Track slideshow timer precisely across background cycles
  • Sync docs with recent viewer and slideshow changes
  • Use generic visionOS destination for build command
  • Move sensor emoji to the right of the value
  • Auto-dismiss 3D restore prompt after 10s and on image switch
  • Share WebSocket connections and sync slideshows locally
  • Simplify memory management for slideshows to prevent getting stuck
  • Fix slideshow view tap gesture not toggling ornament visibility
  • Use SF 7 symbols for 3D icons

0.1.0-603e37fc

15 Apr 15:26
603e37f

Choose a tag to compare

  • Fix slideshow view tap gesture not toggling ornament visibility
  • Use SF 7 symbols for 3D icons
  • Replace auto-3D restore with opt-in prompt pill and fix ornament UX issues

0.1.0-d30792b3

14 Apr 07:59
d30792b

Choose a tag to compare

  • Consolidate ornament controls with metadata viewing/editing and multi-select
  • Handle animated WebP rendering and split 3D auto-restore setting
  • Fix incorrect bundle id used
  • Fix background unload running when slideshow is paused or not backgrounded
  • Restart Ken Burns animation when returning from background
  • Replace ad-hoc timer management with state machine in SlideshowEngine
  • Fetch tags.json from API endpoint when remote viewer opens
  • Refactor slideshow into modular engine with shared tag list management
  • Add description to releases
  • Add local build script
  • Fix GIF slideshow playback and add slideshow button to video ornament
  • Add video and animated GIF support to slideshow player
  • Refactor slideshow: fix first image display, filter passthrough, local source, and add interval slider
  • Fix restore of remote slideshow list on reboot and slideshow history
  • Fix extra issues in remote slideshow
  • Fix remote slideshow race conditions causing stuck first image and spurious restarts
  • Update .gitignore
  • Replace rename functionality with copy option for remote slideshow configurations
  • Restrict server list overrides to "Server Decides" configuration
  • Fix timing issue in remote slideshow search fetch, add default list option

0.1.0-1c1c1dba

14 Apr 09:13
1c1c1db

Choose a tag to compare

  • Replace auto-3D restore with opt-in prompt pill and fix ornament UX issues
  • Consolidate ornament controls with metadata viewing/editing and multi-select
  • Handle animated WebP rendering and split 3D auto-restore setting
  • Fix incorrect bundle id used
  • Fix background unload running when slideshow is paused or not backgrounded
  • Restart Ken Burns animation when returning from background
  • Replace ad-hoc timer management with state machine in SlideshowEngine
  • Fetch tags.json from API endpoint when remote viewer opens
  • Refactor slideshow into modular engine with shared tag list management
  • Add description to releases
  • Add local build script
  • Fix GIF slideshow playback and add slideshow button to video ornament
  • Add video and animated GIF support to slideshow player
  • Refactor slideshow: fix first image display, filter passthrough, local source, and add interval slider
  • Fix restore of remote slideshow list on reboot and slideshow history
  • Fix extra issues in remote slideshow
  • Fix remote slideshow race conditions causing stuck first image and spurious restarts
  • Update .gitignore
  • Replace rename functionality with copy option for remote slideshow configurations
  • Restrict server list overrides to "Server Decides" configuration