### ✨ New Features
* Added VR button to the scene player when the scene tag includes a configurable tag. ([#3636](https://github.com/stashapp/stash/pull/3636))
* Added ability to include and exclude performers, studios and tags in the same filter. ([#3619](https://github.com/stashapp/stash/pull/3619))
* Added penis length and circumcision status for Performers. ([#3627](https://github.com/stashapp/stash/pull/3627))
* Added text field to search criteria in the edit filter dialog. ([#3740](https://github.com/stashapp/stash/pull/3740))
* Added ability to add (short) video files as images. ([#3583](https://github.com/stashapp/stash/pull/3583))
* Added ability to force gallery creation by adding `.forcegallery` to directory. ([#3715](https://github.com/stashapp/stash/pull/3715))
* Added ability to ignore gallery creation by adding `.nogallery` to directory. ([#3715](https://github.com/stashapp/stash/pull/3715))
* Added Maximum Duration Difference option to the Duplicate Scene Checker. ([#3663](https://github.com/stashapp/stash/pull/3663))
* Added ability to configure the default sort order for videos served by DLNA. ([#3645](https://github.com/stashapp/stash/pull/3645))
* Support pinning filter criteria to the top of the edit filter page. ([#3675](https://github.com/stashapp/stash/pull/3675))
* Added Appears With tab to Performer page showing other performers that appear in the same scenes. ([#3563](https://github.com/stashapp/stash/pull/3563))
* Added derived Performer O-Counter field. ([#3588](https://github.com/stashapp/stash/pull/3588))
* Added distance parameter to phash filter. ([#3596](https://github.com/stashapp/stash/pull/3596))

### 🎨 Improvements
* Gallery Updated At timestamp is now updated when its contents are changed. ([#3771](https://github.com/stashapp/stash/pull/3771))
* Added male performer images that are consistent with the other performer images. ([#3770](https://github.com/stashapp/stash/pull/3770))
* Improved the UX when navigating the edit filter dialog using keyboard. ([#3739](https://github.com/stashapp/stash/pull/3739))
* Changed modifier selector to a set of clickable pills. ([#3598](https://github.com/stashapp/stash/pull/3598))
* Movie covers can now be shown in the Lightbox when clicking on them. ([#3705](https://github.com/stashapp/stash/pull/3705))
* Scrapers are now sorted by name in the Scraper UI. ([#3691](https://github.com/stashapp/stash/pull/3691))
* Changed source selector menu to require click instead of mouseover. ([#3578](https://github.com/stashapp/stash/pull/3578))
* Updated default studio icon to be consistent with other icons. ([#3577](https://github.com/stashapp/stash/pull/3577))
* Make cards use up the full width of the screen on mobile. ([#3576](https://github.com/stashapp/stash/pull/3576))
* Log errors when a graphql request fails. ([#3562](https://github.com/stashapp/stash/pull/3562))
* Use case insensitive sorting for text based sorting. ([#3560](https://github.com/stashapp/stash/pull/3560))
* Default date sorting in descending order. ([#3560](https://github.com/stashapp/stash/pull/3560))

### 🐛 Bug fixes
* Fixed captions not appearing on iOS devices. ([#3729](https://github.com/stashapp/stash/pull/3729))
* Fixed folder selector appearing for name criterion. ([#3788](https://github.com/stashapp/stash/pull/3788))
* Fixed generation of interactive heatmaps to match scene duration. ([#3758](https://github.com/stashapp/stash/pull/3758))
* Fixed incorrect plugin hook being triggered during bulk performer update. ([#3754](https://github.com/stashapp/stash/pull/3754))
* Fixed error when removing file over network on Windows. ([#3714](https://github.com/stashapp/stash/pull/3714))
* Fixed scene cards being sized incorrectly on the front page. ([#3724](https://github.com/stashapp/stash/pull/3724))
* Fixed hair colour not being populated during Batch Update Performers. ([#3718](https://github.com/stashapp/stash/pull/3718)) 
* Fixed Create Missing checkbox not appearing in the Identify dialog. ([#3260](https://github.com/stashapp/stash/issues/3260))
* Fixed override option not being honoured when generating scene covers. ([#3661](https://github.com/stashapp/stash/pull/3661))
* Fixed error when creating a movie in the scrape scene dialog. ([#3633](https://github.com/stashapp/stash/pull/3633))
* Fixed issues when scanning a renamed zip file. ([#3610](https://github.com/stashapp/stash/pull/3579))
* Fixed incorrect Twitter/Instagram URLs sent to stash-box. ([#3579](https://github.com/stashapp/stash/pull/3579))
