Release Notes
v0.31.0 - 2026-03-30
✨ New Features
- Added support for image phash generation and filtering. (#6497)
- Added minimum/maximum number of sprites and sprite size options to support customised scene sprite generation. (#6588)
- Added support for merging performers. (#5910)
- Added
Reveal in file managerbutton to file info panel when running locally. (#6587) - Added
.stashignoresupport for gitignore-style scan exclusions. (#6485) - Added Selective generate option. (#6621)
- Added
From Clipboardoption to Set Image dropdown button (on secure connections). (#6637) - Added Tags tagger view. (#6559, #6620)
- Added loop option for markers. (#6510)
- Added support for custom favicon and title. (#6366)
- Added Troubleshooting Mode to help identify and resolve common issues. (#6343)
🎨 Improvements
- Sidebars are now used for lists of galleries (#6157), images (#6607), groups (#6573), performers (#6547), studios (#6549), tags (#6610), and scene markers (#6603).
- Added folder sidebar criterion option for scenes, images and galleries. (#6636)
- Custom field support has been added to scenes (#6584), galleries (#6592), images (#6598), groups (#6596) studios (#6156) and tags (#6546).
- Bulk edit dialogs have been refactored to include more fields. (#6647)
- Extended duplicate criterion to filter by duplicated titles and stash IDs. (#6344)
- Extended missing criterion to add full coverage of fields. (#6565)
- Identify settings now allows for selecting included genders. (#6557)
- Added option to ignore files in zip files while cleaning. (#6700)
- Backup now provides an option to include blobs in a backup zip. (#6586)
- Added checkbox selection on wall and tagger views. (#6476)
- Performer career length field has been replaced with career start and end fields. (#6449)
- Added organised flag to studios. (#6303)
- Merging tags now shows a dialog to edit the merged tag's details. (#6552)
- New object pages now support for saving and creating another object. (#6438)
- Default performer images have been updated to be consistent with other card images. (#6566)
- Unsupported filter criteria are now indicated in the UI. (#6604)
- Marker screenshots can now be generated independently of marker previews. (#6433)
- Added invert selection option to list menus. (#6491)
- Added Generate task option for galleries. (#6442)
- Scene resolution and duration is now shown in the tagger view. (#6663)
- Added button to delete scene cover. (#6444)
- Duplicate aliases are now silently removed. (#6514)
- Image query now includes image details field. (#6673)
- Select scene/performer/studio/tag dropdowns now accept stash-ids as input. (#6709)
- Volume when hovering over a scene preview is now configurable. (#6712)
- Added non-binary gender icon. (#6489)
- Transgender icons are now coloured by their presented gender. (#6489)
- It is now possible to add a library path to a non-existing directory (useful for disconnected network paths). (#6644)
- Added activity tracking for DLNA resume/view counts. (#6407, #6483)
- SFW Mode now shows performer ages. (#6450)
- Added support for sorting scenes and images by resolution. (#6441)
- Added support for sorting performers and studios by latest scene. (#6501)
- Added support for sorting performers, studios and tags by total scene file size. (#6642)
- Added support for filtering by stash ID count. (#6437)
- Added support for filtering group by scene count. (#6593)
- Updated Tag list view to be consistent with other list views. (#6703)
- Added confirmation dialog to Auto Tag task. (#6735)
- Studio now shows the studio name instead of the studio image if the image is not set or if (new)
Show studio as textis true. (#6716) - Installed plugins/scrapers no longer show in the available list. (#6443)
- Name is now populated when searching by stash-box. (#6447)
- Improved performance of group queries on large systems. (#6478)
- Search input is now focused when opening the scraper menu. (#6704)
- Added
d dkeyboard shortcut to delete scene in scene details page. (#6755) - VAAPI dri device can now be overridden using
STASH_HW_DRI_DEVICEenvironment variable. (#6728) - Added support for
{phash}inqueryURLscraper field. (#6701) - Systray notification now shows the port stash is running on. (#6448)
🐛 Bug fixes
- Fixed certain unicode characters in library path causing panic in scan task. (#6431, #6589, #6635)
- Fixed bad network path error preventing rename detection during scanning. (#6680)
- Fixed duplicate files in zips being incorrectly reported as renames. (#6493)
- Fixed merging scene causing cover to be lost. (#6542)
- Improved scanning algorithm to prevent creation of orphaned folders and handle missing parent folders. (#6608)
- Scanning no longer scans zip contents when the zip file is unchanged. (#6633)
- Captions are now correctly detected in a single scan. (#6634)
- Fixed galleries not being linked to scenes when scanning a matching file. (#6705)
- Fixed mis-clicks on cards navigating to new page when selecting items. (#6599, #6649)
- Select dropdown now retains focus after creating a new option. (#6697)
- Fixed custom field filtering not working correctly when query value was provided. (#6614)
- Fixed
not equalscustom field filtering to include results where the field is not set. (#6742) - Fixed
Scale up to fitlightbox option not persisting correctly in some circumstances. (#6743) - Fixed stale thumbnails after file content is changed. (#6622)
- Clicking on the scrubber in the scene player no longer pauses the video. (#6336)
- Tagger search results and states are now refreshed when changing the selected source in the tagger views. (#6766)
- Current selected source items are now excluded from the destination selector and vice versa in the merge dialogs. (#6764)
- Fixed heatmap still appearing in the scene detail page after associated funscript was removed from scene. (#6746)
- Fixed string-based hash filtering not functioning correctly. (#6654)
- Fixed hardware decoding detection for 10-bit videos on rkmpp. (#6420)
- Fixed race condition in package cache initialisation. (#6741)
- Unicode characters are no longer stripped when performing a metadata export. (#6748)
Api Changes
- Many new components are now patchable. (#6468, #6463, #6482, #6492, #6470)
- Added access to
ReactFontAwesomein the plugin API. (#6487) - Added
destroyFilesmutation to delete file entries from the database. (#6437) - Added
destroy_file_entryflag to destroy inputs to destroy file entries when destroying scenes, images, and galleries. (#6437) - Added
basenameandparent_foldersfields to thefoldertype. (#6494) - Added
basenamefilter field toFolderFilterType. (#6494) - Added
parent_folderfilter field toGalleryFilterType. (#6636) - Performer
career_lengthfield is deprecated in favour ofcareer_startandcareer_end.