### ✨ New Features

* Added support for image phash generation and filtering. ([#6497](https://github.com/stashapp/stash/pull/6497))
* Added minimum/maximum number of sprites and sprite size options to support customised scene sprite generation. ([#6588](https://github.com/stashapp/stash/pull/6588))
* Added support for merging performers. ([#5910](https://github.com/stashapp/stash/pull/5910))
* Added `Reveal in file manager` button to file info panel when running locally. ([#6587](https://github.com/stashapp/stash/pull/6587))
* Added `.stashignore` support for gitignore-style scan exclusions. ([#6485](https://github.com/stashapp/stash/pull/6485))
* Added Selective generate option. ([#6621](https://github.com/stashapp/stash/pull/6621))
* Added `From Clipboard` option to Set Image dropdown button (on secure connections). ([#6637](https://github.com/stashapp/stash/pull/6637))
* Added Tags tagger view. ([#6559](https://github.com/stashapp/stash/pull/6559), [#6620](https://github.com/stashapp/stash/pull/6620))
* Added loop option for markers. ([#6510](https://github.com/stashapp/stash/pull/6510))
* Added support for custom favicon and title. ([#6366](https://github.com/stashapp/stash/pull/6366))
* Added Troubleshooting Mode to help identify and resolve common issues. ([#6343](https://github.com/stashapp/stash/pull/6343))

### 🎨 Improvements

* Sidebars are now used for lists of galleries ([#6157](https://github.com/stashapp/stash/pull/6157)), images ([#6607](https://github.com/stashapp/stash/pull/6607)), groups ([#6573](https://github.com/stashapp/stash/pull/6573)), performers ([#6547](https://github.com/stashapp/stash/pull/6547)), studios ([#6549](https://github.com/stashapp/stash/pull/6549)), tags ([#6610](https://github.com/stashapp/stash/pull/6610)), and scene markers ([#6603](https://github.com/stashapp/stash/pull/6603)).
* Added folder sidebar criterion option for scenes, images and galleries. ([#6636](https://github.com/stashapp/stash/pull/6636))
* Custom field support has been added to scenes ([#6584](https://github.com/stashapp/stash/pull/6584)), galleries ([#6592](https://github.com/stashapp/stash/pull/6592)), images ([#6598](https://github.com/stashapp/stash/pull/6598)), groups ([#6596](https://github.com/stashapp/stash/pull/6596)) studios ([#6156](https://github.com/stashapp/stash/pull/6156)) and tags ([#6546](https://github.com/stashapp/stash/pull/6546)). 
* Bulk edit dialogs have been refactored to include more fields. ([#6647](https://github.com/stashapp/stash/pull/6647))
* Extended duplicate criterion to filter by duplicated titles and stash IDs. ([#6344](https://github.com/stashapp/stash/pull/6344))
* Extended missing criterion to add full coverage of fields. ([#6565](https://github.com/stashapp/stash/pull/6565))
* Identify settings now allows for selecting included genders. ([#6557](https://github.com/stashapp/stash/pull/6557))
* Added option to ignore files in zip files while cleaning. ([#6700](https://github.com/stashapp/stash/pull/6700))
* Backup now provides an option to include blobs in a backup zip. ([#6586](https://github.com/stashapp/stash/pull/6586))
* Added checkbox selection on wall and tagger views. ([#6476](https://github.com/stashapp/stash/pull/6476))
* Performer career length field has been replaced with career start and end fields. ([#6449](https://github.com/stashapp/stash/pull/6449))
* Added organised flag to studios. ([#6303](https://github.com/stashapp/stash/pull/6303))
* Merging tags now shows a dialog to edit the merged tag's details. ([#6552](https://github.com/stashapp/stash/pull/6552))
* New object pages now support for saving and creating another object. ([#6438](https://github.com/stashapp/stash/pull/6438))
* Default performer images have been updated to be consistent with other card images. ([#6566](https://github.com/stashapp/stash/pull/6566))
* Unsupported filter criteria are now indicated in the UI. ([#6604](https://github.com/stashapp/stash/pull/6604))
* Marker screenshots can now be generated independently of marker previews. ([#6433](https://github.com/stashapp/stash/pull/6433))
* Added invert selection option to list menus. ([#6491](https://github.com/stashapp/stash/pull/6491))
* Added Generate task option for galleries. ([#6442](https://github.com/stashapp/stash/pull/6442))
* Scene resolution and duration is now shown in the tagger view. ([#6663](https://github.com/stashapp/stash/pull/6663))
* Added button to delete scene cover. ([#6444](https://github.com/stashapp/stash/pull/6444))
* Duplicate aliases are now silently removed. ([#6514](https://github.com/stashapp/stash/pull/6514))
* Image query now includes image details field. ([#6673](https://github.com/stashapp/stash/pull/6673))
* Select scene/performer/studio/tag dropdowns now accept stash-ids as input. ([#6709](https://github.com/stashapp/stash/pull/6709)) 
* Volume when hovering over a scene preview is now configurable. ([#6712](https://github.com/stashapp/stash/pull/6712))
* Added non-binary gender icon. ([#6489](https://github.com/stashapp/stash/pull/6489))
* Transgender icons are now coloured by their presented gender. ([#6489](https://github.com/stashapp/stash/pull/6489))
* It is now possible to add a library path to a non-existing directory (useful for disconnected network paths). ([#6644](https://github.com/stashapp/stash/pull/6644))
* Added activity tracking for DLNA resume/view counts. ([#6407](https://github.com/stashapp/stash/pull/6407), [#6483](https://github.com/stashapp/stash/pull/6483))
* SFW Mode now shows performer ages. ([#6450](https://github.com/stashapp/stash/pull/6450))
* Added support for sorting scenes and images by resolution. ([#6441](https://github.com/stashapp/stash/pull/6441))
* Added support for sorting performers and studios by latest scene. ([#6501](https://github.com/stashapp/stash/pull/6501))
* Added support for sorting performers, studios and tags by total scene file size. ([#6642](https://github.com/stashapp/stash/pull/6642))
* Added support for filtering by stash ID count. ([#6437](https://github.com/stashapp/stash/pull/6437))
* Added support for filtering group by scene count. ([#6593](https://github.com/stashapp/stash/pull/6593))
* Updated Tag list view to be consistent with other list views. ([#6703](https://github.com/stashapp/stash/pull/6703))
* Added confirmation dialog to Auto Tag task. ([#6735](https://github.com/stashapp/stash/pull/6735))
* Studio now shows the studio name instead of the studio image if the image is not set or if (new) `Show studio as text` is true. ([#6716](https://github.com/stashapp/stash/pull/6716))
* Installed plugins/scrapers no longer show in the available list. ([#6443](https://github.com/stashapp/stash/pull/6443))
* Name is now populated when searching by stash-box. ([#6447](https://github.com/stashapp/stash/pull/6447))
* Improved performance of group queries on large systems. ([#6478](https://github.com/stashapp/stash/pull/6478))
* Search input is now focused when opening the scraper menu. ([#6704](https://github.com/stashapp/stash/pull/6704))
* Added `d d` keyboard shortcut to delete scene in scene details page. ([#6755](https://github.com/stashapp/stash/pull/6755))
* VAAPI dri device can now be overridden using `STASH_HW_DRI_DEVICE` environment variable. ([#6728](https://github.com/stashapp/stash/pull/6728))
* Added support for `{phash}` in `queryURL` scraper field. ([#6701](https://github.com/stashapp/stash/pull/6701))
* Systray notification now shows the port stash is running on. ([#6448](https://github.com/stashapp/stash/pull/6448))

### 🐛 Bug fixes

* Fixed certain unicode characters in library path causing panic in scan task. ([#6431](https://github.com/stashapp/stash/pull/6431), [#6589](https://github.com/stashapp/stash/pull/6589), [#6635](https://github.com/stashapp/stash/pull/6635))
* Fixed bad network path error preventing rename detection during scanning. ([#6680](https://github.com/stashapp/stash/pull/6680))
* Fixed duplicate files in zips being incorrectly reported as renames. ([#6493](https://github.com/stashapp/stash/pull/6493))
* Fixed merging scene causing cover to be lost. ([#6542](https://github.com/stashapp/stash/pull/6542))
* Improved scanning algorithm to prevent creation of orphaned folders and handle missing parent folders. ([#6608](https://github.com/stashapp/stash/pull/6608))
* Scanning no longer scans zip contents when the zip file is unchanged. ([#6633](https://github.com/stashapp/stash/pull/6633))
* Captions are now correctly detected in a single scan. ([#6634](https://github.com/stashapp/stash/pull/6634))
* Fixed galleries not being linked to scenes when scanning a matching file. ([#6705](https://github.com/stashapp/stash/pull/6705))
* Fixed mis-clicks on cards navigating to new page when selecting items. ([#6599](https://github.com/stashapp/stash/pull/6599), [#6649](https://github.com/stashapp/stash/pull/6649))
* Select dropdown now retains focus after creating a new option. ([#6697](https://github.com/stashapp/stash/pull/6697))
* Fixed custom field filtering not working correctly when query value was provided. ([#6614](https://github.com/stashapp/stash/pull/6614))
* Fixed `not equals` custom field filtering to include results where the field is not set. ([#6742](https://github.com/stashapp/stash/pull/6742))
* Fixed `Scale up to fit` lightbox option not persisting correctly in some circumstances. ([#6743](https://github.com/stashapp/stash/pull/6743))
* Fixed stale thumbnails after file content is changed. ([#6622](https://github.com/stashapp/stash/pull/6622))
* Clicking on the scrubber in the scene player no longer pauses the video. ([#6336](https://github.com/stashapp/stash/pull/6336))
* Tagger search results and states are now refreshed when changing the selected source in the tagger views. ([#6766](https://github.com/stashapp/stash/pull/6766))
* Current selected source items are now excluded from the destination selector and vice versa in the merge dialogs. ([#6764](https://github.com/stashapp/stash/pull/6764))
* Fixed heatmap still appearing in the scene detail page after associated funscript was removed from scene. ([#6746](https://github.com/stashapp/stash/pull/6746))
* Fixed string-based hash filtering not functioning correctly. ([#6654](https://github.com/stashapp/stash/pull/6654))
* Fixed hardware decoding detection for 10-bit videos on rkmpp. ([#6420](https://github.com/stashapp/stash/pull/6420))
* Fixed race condition in package cache initialisation. ([#6741](https://github.com/stashapp/stash/pull/6741))
* Unicode characters are no longer stripped when performing a metadata export. ([#6748](https://github.com/stashapp/stash/pull/6748))

### Api Changes

* Many new components are now patchable. ([#6468](https://github.com/stashapp/stash/pull/6468), [#6463](https://github.com/stashapp/stash/pull/6463), [#6482](https://github.com/stashapp/stash/pull/6482), [#6492](https://github.com/stashapp/stash/pull/6492), [#6470](https://github.com/stashapp/stash/pull/6470))
* Added access to `ReactFontAwesome` in the plugin API. ([#6487](https://github.com/stashapp/stash/pull/6487))
* Added `destroyFiles` mutation to delete file entries from the database. ([#6437](https://github.com/stashapp/stash/pull/6437))
* Added `destroy_file_entry` flag to destroy inputs to destroy file entries when destroying scenes, images, and galleries. ([#6437](https://github.com/stashapp/stash/pull/6437))
* Added `basename` and `parent_folders` fields to the `folder` type. ([#6494](https://github.com/stashapp/stash/pull/6494))
* Added `basename` filter field to `FolderFilterType`. ([#6494](https://github.com/stashapp/stash/pull/6494))
* Added `parent_folder` filter field to `GalleryFilterType`. ([#6636](https://github.com/stashapp/stash/pull/6636))
* Performer `career_length` field is deprecated in favour of `career_start` and `career_end`.
