Skip to content

Releases: skeel-x/stash-vr

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 23:42

Added

  • Delete a stored HereSphere profile from the Setup page (and DELETE /profiles/{id}), so an accidental headset save can be undone.
  • Scene details are sent to HereSphere as the scene description.
  • STASH_TLS_INSECURE to opt out of certificate verification for a self-signed https Stash.
  • The Setup page can clear the Stash API key, so a Stash without authentication can be configured on a new host.
  • A warning at startup when a setting given as an environment variable or flag is overridden by config.json.
  • A warning on the Players page when it was opened via localhost, where the shown addresses would not work from a headset.

Changed

  • The server starts listening before the library index is built, so the Setup page is reachable while a slow Stash indexes.
  • Stash's TLS certificate is now verified (earlier releases never checked it); see STASH_TLS_INSECURE.
  • A bare Stash host address gets /graphql appended automatically; pasted settings are trimmed and whitespace inside the API key is rejected.
  • Reset buttons ask twice and sit away from Save; the rules table is saved together with Save changes; the form warns before leaving with unsaved changes.
  • The Sections and rules pages never save an empty list by accident after a Stash error.
  • Playa: the video page is built from the scene cache one page at a time, random order is stable across pages, posters are served through the cover loader without re-encoding, and categories read from the tag cache.
  • Covers are rendered into a single image, one at a time per cover, under a memory budget; the heatmap height is part of the cover URL so changing it refreshes the covers.
  • Tag matching compares names case-insensitively without allocating copies.

Fixed

  • A malformed saved filter (for example a NOT_NULL criterion without a value) no longer crashes the service into a restart loop; it is skipped with a log line naming it.
  • A panic in a background task (scene write-back, index prefetch, cover render, Playa lookup) no longer takes the server down.
  • One scene without a video file no longer fails the whole /scan or the DeoVR index.
  • A transient Stash error no longer caches an empty library for a minute; the previous library is kept.
  • Requests to a Stash that stops answering are bounded, and a dropped headset request no longer fails the index for everyone waiting on it.
  • HereSphere library durations are reported in milliseconds (sorting by length was off by 1000x).
  • RF52 and other lens-less fisheye scenes get their configured field of view in HereSphere (a Linear lens is sent so the fov applies).
  • MKX220 and VRCA220 lenses map to DeoVR screen types instead of plain fisheye (please report if DeoVR still shows them as plain fisheye).
  • Generated HereSphere profiles write 6.5 cm camera separation and correct vertical stereo misalignment.
  • A profile learned from another scene is rebased on the scene it serves, so it no longer carries that scene's resume position, duration and tags.
  • HereSphere playback is tracked per client, so play time is attributed to the right scene with several headsets, and play counts survive a restart.
  • Overlapping write-backs for the same scene are serialised, so markers are not duplicated and tag edits are not lost.
  • A just-played scene leaves Recommended for you immediately instead of after 30 minutes.
  • A scene HereSphere deleted is forgotten here right away instead of lingering with a dead stream.
  • The release-date sweeper backs off scenes a stash-box failed on instead of re-scraping them forever, and its last flush is not lost on shutdown; a dates.json holding null no longer panics.
  • Copy buttons on the Players page work over plain http.
  • Profile write-backs that do not decode are refused instead of replacing the good profile; concurrent saves of the same profile no longer race.
  • Funscript variant URLs are keyed to the file they name, so a changed variant list cannot serve the wrong script.
  • Profile titles on the Setup page are looked up in one batch instead of one query per profile; a failed studio profile index build backs off for 30 s.
  • Guards for scenes missing paths or streams, a Playa page index that overflows, and a log_level in config.json that is not lower case.

Security

  • The Stash API key is redacted from player debug logs and the Log page.
  • Stash's TLS certificate is verified by default.

Full Changelog: v0.11.0...v0.12.0

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:43

Added

  • Cover badges on scene covers and Playa posters: quality tier, format (lens/projection), passthrough, duration and frame rate. Each badge can be switched on or off in Setup, with a live preview on a real scene.
  • Tier badges are drawn in slate for scenes tagged Low Detail (files without the detail of their resolution, as measured by the vrQualityTags plugin).
  • "Recommended for you" smart section: unplayed scenes scored against the watch history. By default it follows Continue watching.
  • Learned HereSphere profiles per studio and lens: a profile saved for one scene can serve the other scenes of the same studio and lens (off by default).
  • Default video rule for chroma-keyed passthrough (Chroma Key).

Changed

  • Cover badges sit in the bottom left corner, above the funscript heatmap, clear of HereSphere's own icons.
  • File resolutions are labelled from width and height instead of height alone.
  • Rendered covers are kept in a bounded cache; cover URLs change when the badge settings change so players fetch the new covers.
  • README brought up to date and shows the logo.

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 15:27

Full Changelog: v0.9.11...v0.10.0