Repository navigation
Releases: illixion/Convolution
Releases · illixion/Convolution
Release list
0.1.0-bc3f9c7c
- Show the app on iPhone, Apple TV and Mac in the README
- Replace the June screenshots with current visionOS captures
- Bring the README, CLAUDE.md and plan docs back in line with the app
- Clone DebugTrace in CI so package resolution can succeed
- Point the README clone steps at the renamed Convolution repo
- Rename the user-facing app name from Hypnos to Convolution
- Clip each diorama thumbnail layer to its cell before lifting it
- Preserve native rounded Library corners on visionOS
- Unify video and film controls through RAVESDK
- Add a disposable dev Nextcloud and vary the dev Stash photo shapes
- Add an original-aspect Pictures grid, and cut thumbnails' cropping and wasted fetches
- Keep Stash's credential when an incomplete Nextcloud config shares its host
- Start the DebugTrace debug server when a launch asks for it
- Forward RAVENet's log messages with their privacy intact
- Log through DebugTrace's DebugLogger with audited privacy
- Show a retry card instead of an empty video window; unmute Library titles
- Fix Jellyfin streams: full quality, per-play sessions, no Stash key
- Revoke the Jellyfin session on the server when signing out
- Drop Dolby/Atmos trademarks from user-facing text
- Redact credentials in spatial-3D image URL logs
- Fix Jellyfin HLS transcode fallback and redact api_key in logs
- Make the Library tab reachable on visionOS and add a browse/search grid
- Split tvOS/macOS port detail out of CLAUDE.md into path-scoped rules
- Set up an Apple TV by scanning a QR code from another device
- Add a Developer page and debug Console tab to tvOS Settings
- Lay out tvOS Settings as pages of full-width rows
- Give the tvOS film player head-tracked object audio
- Probe PHASE with forced binaural output too
- Add a tvOS spatial audio probe to the Apple TV bench
- Redesign the Library screens after the Apple TV app
- Give the dev Jellyfin artwork the shape of real artwork
- Stop the macOS keychain password prompt on rebuilt debug builds
- Phase 5: wire Library playback into FilmPlayer/the generic player, with progress sync
- Phase 4: Library UI on visionOS, iOS and macOS
- Phase 3: tvOS Library UI — hero, shelves, detail, seasons/episodes
- Phase 2: Jellyfin settings, sign-in, and a Library tab on every platform
- Phase 1: seed a Library dev dataset and verify JellyfinLibrary against it
- Add server-agnostic Library data layer and Jellyfin implementation
- Find the EAC3 cut's start with ffmpeg, not a slow ffprobe seek
- Retry films the TrueHD-only plugin marked unsupported
- Make Test Connection actually verify media access, not just GraphQL
- Reject auth-redirect HTML masquerading as image data
0.1.0-80bd93b4
- Fit iOS photos to the whole screen, not the safe area
- Cover the video player ornament's layout with a UI test
- Show the app on iPhone, Apple TV and Mac in the README
- Replace the June screenshots with current visionOS captures
- Bring the README, CLAUDE.md and plan docs back in line with the app
- Clone DebugTrace in CI so package resolution can succeed
- Point the README clone steps at the renamed Convolution repo
- Rename the user-facing app name from Hypnos to Convolution
- Clip each diorama thumbnail layer to its cell before lifting it
- Preserve native rounded Library corners on visionOS
- Unify video and film controls through RAVESDK
- Add a disposable dev Nextcloud and vary the dev Stash photo shapes
- Add an original-aspect Pictures grid, and cut thumbnails' cropping and wasted fetches
- Keep Stash's credential when an incomplete Nextcloud config shares its host
- Start the DebugTrace debug server when a launch asks for it
- Forward RAVENet's log messages with their privacy intact
- Log through DebugTrace's DebugLogger with audited privacy
- Show a retry card instead of an empty video window; unmute Library titles
- Fix Jellyfin streams: full quality, per-play sessions, no Stash key
- Revoke the Jellyfin session on the server when signing out
- Drop Dolby/Atmos trademarks from user-facing text
- Redact credentials in spatial-3D image URL logs
- Fix Jellyfin HLS transcode fallback and redact api_key in logs
- Make the Library tab reachable on visionOS and add a browse/search grid
- Split tvOS/macOS port detail out of CLAUDE.md into path-scoped rules
- Set up an Apple TV by scanning a QR code from another device
- Add a Developer page and debug Console tab to tvOS Settings
- Lay out tvOS Settings as pages of full-width rows
- Give the tvOS film player head-tracked object audio
- Probe PHASE with forced binaural output too
- Add a tvOS spatial audio probe to the Apple TV bench
- Redesign the Library screens after the Apple TV app
- Give the dev Jellyfin artwork the shape of real artwork
- Stop the macOS keychain password prompt on rebuilt debug builds
- Phase 5: wire Library playback into FilmPlayer/the generic player, with progress sync
- Phase 4: Library UI on visionOS, iOS and macOS
- Phase 3: tvOS Library UI — hero, shelves, detail, seasons/episodes
- Phase 2: Jellyfin settings, sign-in, and a Library tab on every platform
- Phase 1: seed a Library dev dataset and verify JellyfinLibrary against it
- Add server-agnostic Library data layer and Jellyfin implementation
- Find the EAC3 cut's start with ffmpeg, not a slow ffprobe seek
- Retry films the TrueHD-only plugin marked unsupported
0.1.0-02663c58
- Release the iPhone/iPad app from CI for the AltStore source
- Fit iOS photos to the whole screen, not the safe area
- Cover the video player ornament's layout with a UI test
0.1.0-e4139d1d
- Remove BuildInfo.xcconfig from tracking (already in .gitignore)
- Refresh the project README for the current platform mix
- Let dev-jellyfin.sh restart an already-configured instance
- Stream the EAC3 cut into Cavern instead of extracting to the end first
- Add scripts/dev-jellyfin.sh: disposable Jellyfin for plugin testing
- Add THIRD_PARTY_NOTICES.md for Cavern, truehdd and Depth Anything V2
- Add EAC3/JOC Atmos decoding via Cavern alongside TrueHD
- Add a native macOS port: real windows, sidebar, menu bar
- Make Stash, Nextcloud and Photos first-class sources on tvOS
- Add a disposable dev Stash for testing the Stash source
- Document the tvOS port in CLAUDE.md
- Let a DEBUG launch argument pick TVRootView's initial tab
- Add the tvOS root UI: a real Apple TV app, not a squeezed iPad UI
- Add tvOS to the app target and make the shared module compile there
- Fence Hypnos's WebKit files for the coming tvOS build
- Take the film player from RAVESDK's RAVEFilm, move the TV bench to TVLab
- Add an on-device YouTube playback spike to the Apple TV bench
- Never run gallery thumbnail diorama generation on iOS
- Add an Apple TV bench and state display criteria for the film picture
- Add the film player window, replacing the Atmos spike
- Carry HDR10 static metadata into the film picture's format
- Play the film's Atmos objects on the same clock as its picture
- Survive TrueHD timestamps that drift off the sample grid
- Add a film player package that plays the plugin's video on the Mac
- Serve the film's video from the Atmos plugin in film time
- Predict head orientation to cover Bluetooth output latency
- Anchor the Atmos spike to a player window and bring it to iOS
- Add spatial audio probe for window-anchored app audio
- Decode Atmos scenes live so playback can start or seek anywhere
- Stream Atmos spike scenes from the Jellyfin plugin
- Add Atmos Objects Jellyfin plugin serving object stems and positions
- Add Atmos object spike: DAMF objects as RealityKit spatial sources
- Cap remote gallery thumbnails so dioramas stop running at full size
- Route the remaining download paths through MediaAuthorization
- Fix search paging: firstresult must be in the SearchDAV namespace
- Fix oc:size being read as a child count, and cover folder listing with tests
- Authenticate every AVFoundation path, and back up Nextcloud's config
- Add the Nextcloud settings section: Login Flow v2 and a root picker
- Add Nextcloud as a library source
- Register the Stash credential at launch, not just on settings edits
- Unify Stash/Nextcloud auth behind a shared MediaAuthorization seam
- Add Nextcloud folder listing for a root picker, and fix bench buffering
- Stop exporting credentials in settings backups
- Move the Stash API key from UserDefaults into the Keychain
- Add a Nextcloud media client as a host-testable local package
- Generalize the local-network prompt beyond Stash
- Stop the local-network prompt from hanging the iOS launch
- Adopt the shared slideshow engine in Hypnos
- Debounce and animate tap-to-open across Pictures, Videos, and Local
- Hide the iOS status bar in sync with viewer ornaments
- Let the iOS ornament bar scroll again
- Stop the photo viewer restating geometry requests it already made
- Expose the depth pipeline spike under Settings → Developer
- Rename app from Spatial Stash to Hypnos codename
- Restore the visionOS hover and sizing the ornaments lost to .raveChrome
- Remove the private ImagePresentation tuning now that visionOS 27 RC is fixed
- Establish that iOS cannot serve ImagePresentationComponent, and why
- Build the app for iPhone and iPad from the same target
- Stop a broken thumbnail response from being cached as permanent
- Section the remote history grid by display, not one merged list
- Stop a stalled or failing image fetch from jamming the photo viewer
- Add the EntitlementProviding seam for App Store commerce
- Rename SPATIALSTASH_PRIVATE_API flags to HYPNOS_PRIVATE_API
- Rename O Counter/O Count to Activity in user-facing strings
- Make the library-switch popover rows spacious touch targets
- Replace the library switch's Menu with a Button + custom popover
- Always offer Local — drop the Settings toggle gating it
- Offer Photos access and a media server inline from empty grids
- Turn the library switch into a dropdown, not a cycling button
- Make Local a third library source, with a folder browser under Albums
- Declare the app's required-reason API usage in a privacy manifest
- Add an XCUITest target so the UI can be driven without synthetic clicks
- Lay the welcome intro out as a modal panel, and keep flat photos out of RealityKit
- Introduce a first-run flow that shows the app before configuring it
- Keep thumbnails across tab switches, and stop refresh cancelling itself
- Stop reloads painting an empty grid before content arrives
- Make the album banner a back control, and add Stash groups
- Add an Albums tab browsing containers from either library
- Filter by what has already been converted to 3D
- Keep saved views separate per library
- Stop the photo grid reloading when nothing changed
- Index the photo library so it can be filtered properly
- Read the window-nudge base from the scene, not from the caller
- Give the photo library its own filter dimensions
- Apply EXIF orientation on the full-decode paths
- Resolve Photos assets everywhere a local file is needed
- Reload the gallery after Photos access is granted with a server configured
- Let the ornament switch between the Photos and Stash libraries
- Play videos from the device photo library
- Explain the photo library's state instead of showing an empty grid
- Read the device photo library as an image source
- Fix three defects found reviewing the identity split
- Give images a typed source and a derived identity
- Separate a video's identity from its Stash id
- Drop the build-signing config example
- Give local media an identity that survives a relaunch
- Point DEVELOPMENT_TEAM at the shipping account
- Narrow the ATS exception to local networking
- Remove the web-yt-dlp integration
- Clone the RAVE packages in CI so package resolution can succeed
- Document the RAVESDK/RAVEEngine dependencies in Installation
- Centralize the 1px window nudge behind a suppressible switch
- Remove the outdated in-repo build-and-sign.sh in favor of ~/bin/build-and-sign
- Stop an immersive photo window being left at the scene default size
- Hand the generated Spatial3DImage to a popped-out window
- Promote the window manager to a tab, on RAVEUI's shared implementation
- Add a window manager to Settings (visionOS 27 invisible-window mitigation)
- Fix remote 3D slideshow crossfading in a stale unrelated image
- Adopt RAVEMedia's shared depth-model setup view
- Persist window sizes through RAVEUI's RAVECodableSize
- Adopt RAVEOpenMainWindowIntent and move onto RAVEWindowSessionRegistry
- Move the fake-3D pipeline onto RAVEMedia
- Move the tab bar and the console onto RAVEUI / RAVEConsole
- Move the GPU memory monitor onto RAVEMemoryProbe
- Move the remote viewer WebSocket onto RAVENet
- Mitigate visionOS 27 dead-window bug on cross-room summon
0.1.0-71c68d57
- Make Test Connection actually verify media access, not just GraphQL
- Reject auth-redirect HTML masquerading as image data
- Remove BuildInfo.xcconfig from tracking (already in .gitignore)
- Refresh the project README for the current platform mix
- Let dev-jellyfin.sh restart an already-configured instance
- Stream the EAC3 cut into Cavern instead of extracting to the end first
- Add scripts/dev-jellyfin.sh: disposable Jellyfin for plugin testing
- Add THIRD_PARTY_NOTICES.md for Cavern, truehdd and Depth Anything V2
- Add EAC3/JOC Atmos decoding via Cavern alongside TrueHD
- Add a native macOS port: real windows, sidebar, menu bar
- Make Stash, Nextcloud and Photos first-class sources on tvOS
- Add a disposable dev Stash for testing the Stash source
- Document the tvOS port in CLAUDE.md
- Let a DEBUG launch argument pick TVRootView's initial tab
- Add the tvOS root UI: a real Apple TV app, not a squeezed iPad UI
- Add tvOS to the app target and make the shared module compile there
- Fence Hypnos's WebKit files for the coming tvOS build
- Take the film player from RAVESDK's RAVEFilm, move the TV bench to TVLab
- Add an on-device YouTube playback spike to the Apple TV bench
- Never run gallery thumbnail diorama generation on iOS
- Add an Apple TV bench and state display criteria for the film picture
- Add the film player window, replacing the Atmos spike
- Carry HDR10 static metadata into the film picture's format
- Play the film's Atmos objects on the same clock as its picture
- Survive TrueHD timestamps that drift off the sample grid
- Add a film player package that plays the plugin's video on the Mac
- Serve the film's video from the Atmos plugin in film time
- Predict head orientation to cover Bluetooth output latency
- Anchor the Atmos spike to a player window and bring it to iOS
- Add spatial audio probe for window-anchored app audio
- Decode Atmos scenes live so playback can start or seek anywhere
- Stream Atmos spike scenes from the Jellyfin plugin
- Add Atmos Objects Jellyfin plugin serving object stems and positions
- Add Atmos object spike: DAMF objects as RealityKit spatial sources
- Cap remote gallery thumbnails so dioramas stop running at full size
- Route the remaining download paths through MediaAuthorization
- Fix search paging: firstresult must be in the SearchDAV namespace
- Fix oc:size being read as a child count, and cover folder listing with tests
- Authenticate every AVFoundation path, and back up Nextcloud's config
- Add the Nextcloud settings section: Login Flow v2 and a root picker
- Add Nextcloud as a library source
- Register the Stash credential at launch, not just on settings edits
- Unify Stash/Nextcloud auth behind a shared MediaAuthorization seam
- Add Nextcloud folder listing for a root picker, and fix bench buffering
- Stop exporting credentials in settings backups
- Move the Stash API key from UserDefaults into the Keychain
- Add a Nextcloud media client as a host-testable local package
- Generalize the local-network prompt beyond Stash
- Stop the local-network prompt from hanging the iOS launch
- Adopt the shared slideshow engine in Hypnos
- Debounce and animate tap-to-open across Pictures, Videos, and Local
- Hide the iOS status bar in sync with viewer ornaments
- Let the iOS ornament bar scroll again
- Stop the photo viewer restating geometry requests it already made
- Expose the depth pipeline spike under Settings → Developer
- Rename app from Spatial Stash to Hypnos codename
- Restore the visionOS hover and sizing the ornaments lost to .raveChrome
- Remove the private ImagePresentation tuning now that visionOS 27 RC is fixed
- Establish that iOS cannot serve ImagePresentationComponent, and why
- Build the app for iPhone and iPad from the same target
- Stop a broken thumbnail response from being cached as permanent
- Section the remote history grid by display, not one merged list
- Stop a stalled or failing image fetch from jamming the photo viewer
- Add the EntitlementProviding seam for App Store commerce
- Rename SPATIALSTASH_PRIVATE_API flags to HYPNOS_PRIVATE_API
- Rename O Counter/O Count to Activity in user-facing strings
- Make the library-switch popover rows spacious touch targets
- Replace the library switch's Menu with a Button + custom popover
- Always offer Local — drop the Settings toggle gating it
- Offer Photos access and a media server inline from empty grids
- Turn the library switch into a dropdown, not a cycling button
- Make Local a third library source, with a folder browser under Albums
- Declare the app's required-reason API usage in a privacy manifest
- Add an XCUITest target so the UI can be driven without synthetic clicks
- Lay the welcome intro out as a modal panel, and keep flat photos out of RealityKit
- Introduce a first-run flow that shows the app before configuring it
- Keep thumbnails across tab switches, and stop refresh cancelling itself
- Stop reloads painting an empty grid before content arrives
- Make the album banner a back control, and add Stash groups
- Add an Albums tab browsing containers from either library
- Filter by what has already been converted to 3D
- Keep saved views separate per library
- Stop the photo grid reloading when nothing changed
- Index the photo library so it can be filtered properly
- Read the window-nudge base from the scene, not from the caller
- Give the photo library its own filter dimensions
- Apply EXIF orientation on the full-decode paths
- Resolve Photos assets everywhere a local file is needed
- Reload the gallery after Photos access is granted with a server configured
- Let the ornament switch between the Photos and Stash libraries
- Play videos from the device photo library
- Explain the photo library's state instead of showing an empty grid
- Read the device photo library as an image source
- Fix three defects found reviewing the identity split
- Give images a typed source and a derived identity
- Separate a video's identity from its Stash id
- Drop the build-signing config example
- Give local media an identity that survives a relaunch
- Point DEVELOPMENT_TEAM at the shipping account
- Narrow the ATS exception to local networking
- Remove the web-yt-dlp integration
0.1.0-e2cc7425
- Clone the RAVE packages in CI so package resolution can succeed
- Document the RAVESDK/RAVEEngine dependencies in Installation
- Centralize the 1px window nudge behind a suppressible switch
- Remove the outdated in-repo build-and-sign.sh in favor of ~/bin/build-and-sign
- Stop an immersive photo window being left at the scene default size
- Hand the generated Spatial3DImage to a popped-out window
- Promote the window manager to a tab, on RAVEUI's shared implementation
- Add a window manager to Settings (visionOS 27 invisible-window mitigation)
- Fix remote 3D slideshow crossfading in a stale unrelated image
- Adopt RAVEMedia's shared depth-model setup view
- Persist window sizes through RAVEUI's RAVECodableSize
- Adopt RAVEOpenMainWindowIntent and move onto RAVEWindowSessionRegistry
- Move the fake-3D pipeline onto RAVEMedia
- Move the tab bar and the console onto RAVEUI / RAVEConsole
- Move the GPU memory monitor onto RAVEMemoryProbe
- Move the remote viewer WebSocket onto RAVENet
- Mitigate visionOS 27 dead-window bug on cross-room summon
- Update CLAUDE.md for the profile editor and slideshow rework
- Add a play button to the tab bar for a slideshow of what's on screen
- Refuse RoboFrame profiles with no endpoint; make mode the source
- Keep the gallery and video slideshow profiles out of the saved list
- Stop viewer windows writing their whole snapshot back to a profile
- Make the Remote tab editor say which profile it would overwrite
- Name the viewer modes after what they actually drive
- Name the viewer in the Remote slideshow ornament
- Store every window type in a saved window group
- Track video windows and remember each window's live size
- Let a Remote profile pin a web page instead of a slideshow
- Apply private spatial-3D tuning to the other three 3D paths
- Don't persist an unmodified per-window fake-3D override
- Default fake-3D convergence to 1.0
- Drop stale CLAUDE.md references to the removed depth presets
- Remove auto-convergence; document the convergence polarity correctly
- Convert slideshow videos to 3D in real time when slideshow 3D is on
- Record confirmed reposition-mode mapping and add one-tap restore
- Add scene reposition mode knob; record on-device knob findings
- Fix device lookup breaking when the device is actively connected
- Document per-repo toolchain and private-API build settings
- Add GitHub-only private tuning for visionOS 27 spatial-3D behavior
- Recover stalled restored window renderers
- Instrument transparent restored windows
- Stop stale receives from reviving suspended sockets
- Retry restored window rendering until drawable exists
- Move window identity into slideshow sessions
- Keep RoboFrame MQTT device IDs stable
- Give each slideshow window its own RoboFrame channel
- Improve pseudo-3D conversion responsiveness
- Stop the slideshow window from persisting a collapsed size
- Reconnect the shared socket when a window attaches to it
- Let every slideshow window rejoin on return, not just the lucky one
- Make sharing a video into the app actually open a player
0.1.0-0a151926
- Update CLAUDE.md for the profile editor and slideshow rework
- Add a play button to the tab bar for a slideshow of what's on screen
- Refuse RoboFrame profiles with no endpoint; make mode the source
- Keep the gallery and video slideshow profiles out of the saved list
- Stop viewer windows writing their whole snapshot back to a profile
- Make the Remote tab editor say which profile it would overwrite
- Name the viewer modes after what they actually drive
- Name the viewer in the Remote slideshow ornament
- Store every window type in a saved window group
- Track video windows and remember each window's live size
- Let a Remote profile pin a web page instead of a slideshow
- Apply private spatial-3D tuning to the other three 3D paths
- Don't persist an unmodified per-window fake-3D override
- Default fake-3D convergence to 1.0
- Drop stale CLAUDE.md references to the removed depth presets
- Remove auto-convergence; document the convergence polarity correctly
- Convert slideshow videos to 3D in real time when slideshow 3D is on
- Record confirmed reposition-mode mapping and add one-tap restore
- Add scene reposition mode knob; record on-device knob findings
- Fix device lookup breaking when the device is actively connected
- Document per-repo toolchain and private-API build settings
- Add GitHub-only private tuning for visionOS 27 spatial-3D behavior
- Recover stalled restored window renderers
- Instrument transparent restored windows
- Stop stale receives from reviving suspended sockets
- Retry restored window rendering until drawable exists
- Move window identity into slideshow sessions
- Keep RoboFrame MQTT device IDs stable
- Give each slideshow window its own RoboFrame channel
- Improve pseudo-3D conversion responsiveness
- Stop the slideshow window from persisting a collapsed size
- Reconnect the shared socket when a window attaches to it
- Let every slideshow window rejoin on return, not just the lucky one
- Make sharing a video into the app actually open a player
- Kick WebKit autoplay from the navigation delegate, not a play() catch
- Play WebM on-device, transcode only when something needs it
- Make remote-slideshow presence and freshness match the protocol
- Enable the ornament 3D menu for animated images
- Convert animated GIF/JXL to HEVC (with
- Fix large animated JXL showing a broken-image square
- Tune animated H.264 for quality, not encode speed
- Play cached animated GIF/JXL via
-video; show source immediately
- Restore animated 3D pill; make its "Never" actually stick
- Unify animated GIF and JXL on one HEVC cache; drop APNG caching
- Cache decoded animated JXL; stop offering 3D on every animation
- Show a loading spinner while an animated JXL decodes
- Make info-sheet tags open a tag-filtered gallery; close window on disk delete
- Open Stash media by ID via spatialstash:// callback URLs
- Offer 3D via pill for animated content; never auto-3D/diorama it
- Detect animated JXL in split-jxlp containers
- Tier video playback: native
→ native
- Play animated JPEG XL on-device via a WASM libjxl decoder
- Render RoboFrame animated posts and videos via video-in-
- Engage progressive 3D paused mid-conversion to avoid decode contention
- Retry transient depth-conversion decode failures automatically
- Fix settings backup omitting display settings + silent file-picker import
- web-yt-dlp: configurable codec/height + docs + Shortcut link
- web-yt-dlp: request h265 height=2160 by default
0.1.0-051e6bb3
- Kick WebKit autoplay from the navigation delegate, not a play() catch
- Play WebM on-device, transcode only when something needs it
- Make remote-slideshow presence and freshness match the protocol
- Enable the ornament 3D menu for animated images
- Convert animated GIF/JXL to HEVC (with
- Fix large animated JXL showing a broken-image square
- Tune animated H.264 for quality, not encode speed
- Play cached animated GIF/JXL via
-video; show source immediately
- Restore animated 3D pill; make its "Never" actually stick
- Unify animated GIF and JXL on one HEVC cache; drop APNG caching
- Cache decoded animated JXL; stop offering 3D on every animation
- Show a loading spinner while an animated JXL decodes
- Make info-sheet tags open a tag-filtered gallery; close window on disk delete
- Open Stash media by ID via spatialstash:// callback URLs
- Offer 3D via pill for animated content; never auto-3D/diorama it
- Detect animated JXL in split-jxlp containers
- Tier video playback: native
→ native
- Play animated JPEG XL on-device via a WASM libjxl decoder
- Render RoboFrame animated posts and videos via video-in-
- Engage progressive 3D paused mid-conversion to avoid decode contention
- Retry transient depth-conversion decode failures automatically
- Fix settings backup omitting display settings + silent file-picker import
- web-yt-dlp: configurable codec/height + docs + Shortcut link
- web-yt-dlp: request h265 height=2160 by default
- Fix A→B→C→B flicker in server-driven slideshow 3D pre-generation
- Fix 3D pre-generation in server-driven remote slideshow
- Handle spatialstash:// handoffs from any window, not just the main one
- Fix stereo spatialization via per-player experience; dedup URL handoff
- Only spatialize true multichannel audio, not stereo
- Pin fake-3D strength to Subtle; gate temporal depth window by similarity
- Encode depth at 2x model resolution (guided upsample) + video 3D restore pill
- Fix plane-size scaling regression: attenuate-only disparity + 769x433 grid
- Make fake-3D depth comfortable beyond Subtle: physical disparity + edge feather
- Fix silhouette stairstepping in fake-3D: dense warp grid (cached) + 4x MSAA
- Play arbitrary stream URLs (incl. web-yt-dlp) in the rich 3D pipeline
0.1.0-46898e50
- Fix A→B→C→B flicker in server-driven slideshow 3D pre-generation
- Fix 3D pre-generation in server-driven remote slideshow
- Handle spatialstash:// handoffs from any window, not just the main one
- Fix stereo spatialization via per-player experience; dedup URL handoff
- Only spatialize true multichannel audio, not stereo
- Pin fake-3D strength to Subtle; gate temporal depth window by similarity
- Encode depth at 2x model resolution (guided upsample) + video 3D restore pill
- Fix plane-size scaling regression: attenuate-only disparity + 769x433 grid
- Make fake-3D depth comfortable beyond Subtle: physical disparity + edge feather
- Fix silhouette stairstepping in fake-3D: dense warp grid (cached) + 4x MSAA
- Play arbitrary stream URLs (incl. web-yt-dlp) in the rich 3D pipeline
- Fix native video freezing ~1s after being pushed from the gallery
- Fix native video freeze ~1s in and play/pause button desync
- Fix tap-miss during conversion: isolate manager observation from the Menu
- Fix tap-miss during conversion: pin ornament status to a fixed width
- Match video ViewMode button to pictures: icon-only view.3d at .title3
- Unify 2D/3D dropdowns as native menus; fix video menu tap-miss during conversion
- Report present/visibility OFF eagerly on background
- Enable webm 3D conversion via Stash MP4 transcode
- Let SBS 3D 'Playback Error' popup receive taps
- Keep 3D menu ornament height stable during conversion spinner
- Match video ViewMode label to photo ornament; give 2D menu row a rectangle icon
- Match stereo format badge to glass ornament style; give the 2D menu row a real icon
- Stop rendering view.2d/view.3d glyph icons alongside literal 2D/3D text
- Respect "Fit to Window Aspect Ratio" toggle in remote slideshow
0.1.0-62d76e7f
- Fix native video freezing ~1s after being pushed from the gallery
- Fix native video freeze ~1s in and play/pause button desync
- Fix tap-miss during conversion: isolate manager observation from the Menu
- Fix tap-miss during conversion: pin ornament status to a fixed width
- Match video ViewMode button to pictures: icon-only view.3d at .title3
- Unify 2D/3D dropdowns as native menus; fix video menu tap-miss during conversion
- Report present/visibility OFF eagerly on background
- Enable webm 3D conversion via Stash MP4 transcode
- Let SBS 3D 'Playback Error' popup receive taps
- Keep 3D menu ornament height stable during conversion spinner
- Match video ViewMode label to photo ornament; give 2D menu row a rectangle icon
- Match stereo format badge to glass ornament style; give the 2D menu row a real icon
- Stop rendering view.2d/view.3d glyph icons alongside literal 2D/3D text
- Respect "Fit to Window Aspect Ratio" toggle in remote slideshow
- Report present separately from visibility in remote slideshow
- Trim whitespace from the stored Stash API key
- WebKit player: never-started autoplay counts as playing at room exit
- Log media URLs public with the apikey redacted
- Surface AVPlayer load failures; fix quick look poster aspect and quality
- Always autoplay videos; add default-mute setting
- Add long-press quick look for videos with real-time 3D + unmute
- Realtime fake-3D at 60fps video + motion-adaptive inference skipping
- Two-pass depth conversion: high-fps videos watchable in 3D at half the wait
- Reword Pseudo 3D video section