What's Changed -------------- * Refactoring: Typescript button component by [@Treycos](https://github.com/Treycos) in [#7118](https://github.com/Sonarr/Sonarr/pull/7118) * Refactoring: Icon component Typescript by [@Treycos](https://github.com/Treycos) in [#7119](https://github.com/Sonarr/Sonarr/pull/7119) * Refactoring: Link polymorphic static typing by [@Treycos](https://github.com/Treycos) in [#7121](https://github.com/Sonarr/Sonarr/pull/7121) * Tech: VSCode updated code action format by [@Treycos](https://github.com/Treycos) in [#7124](https://github.com/Sonarr/Sonarr/pull/7124) * Fixed: Validate root folder existence when adding series by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7128](https://github.com/Sonarr/Sonarr/pull/7128) * Fix disabled style for monitor toggle button by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7130](https://github.com/Sonarr/Sonarr/pull/7130) * Fixed: Handle Spaces in ProxyBypassList by [@bakerboy448](https://github.com/bakerboy448) in [#7133](https://github.com/Sonarr/Sonarr/pull/7133) * New: Bypass IP addresses ranges in proxies by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7134](https://github.com/Sonarr/Sonarr/pull/7134) * Fixed: Hide reboot and shutdown UI buttons on docker by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7136](https://github.com/Sonarr/Sonarr/pull/7136) * Fixed: Paths for renamed episode files in Custom Script and Webhook by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7138](https://github.com/Sonarr/Sonarr/pull/7138) * New: Bulk manage custom formats by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7116](https://github.com/Sonarr/Sonarr/pull/7116) * Convert episode and season search modals to TypeScript by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7123](https://github.com/Sonarr/Sonarr/pull/7123) * Fixed: Queue header by [@markus101](https://github.com/markus101) in [#7143](https://github.com/Sonarr/Sonarr/pull/7143) * Refactoring: Icon button component Typescript by [@Treycos](https://github.com/Treycos) in [#7144](https://github.com/Sonarr/Sonarr/pull/7144) * Refactoring: TableRowCell Typescript integration by [@Treycos](https://github.com/Treycos) in [#7145](https://github.com/Sonarr/Sonarr/pull/7145) * Refactoring: Typescript SpinnerIcon component by [@Treycos](https://github.com/Treycos) in [#7146](https://github.com/Sonarr/Sonarr/pull/7146) * Don't persist value for SslCertHash when checking for existence by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7148](https://github.com/Sonarr/Sonarr/pull/7148) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7152](https://github.com/Sonarr/Sonarr/pull/7152) * Fixed: Generating absolute episode file paths in webhooks by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7150](https://github.com/Sonarr/Sonarr/pull/7150) * Fixed: Forbid empty spaces in Must Contain/Must Not Contain for Release Profiles by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7151](https://github.com/Sonarr/Sonarr/pull/7151) * Fixed: Importing files without media info available by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7156](https://github.com/Sonarr/Sonarr/pull/7156) * Convert Components to TypeScript by [@markus101](https://github.com/markus101) in [#7142](https://github.com/Sonarr/Sonarr/pull/7142) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7166](https://github.com/Sonarr/Sonarr/pull/7166) * Add Last Search Time to /episode API and to the Frontend (Cut-off Unmet & Missing) by [@ManiMatter](https://github.com/ManiMatter) in [#7091](https://github.com/Sonarr/Sonarr/pull/7091) * Convert Interactive Search to TypeScript by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7158](https://github.com/Sonarr/Sonarr/pull/7158) * Add IndexerFlags parsing to NewznabRssParser by [@amdavie](https://github.com/amdavie) in [#7160](https://github.com/Sonarr/Sonarr/pull/7160) * New: Except language option for Language Custom Formats by [@markus101](https://github.com/markus101) in [#7163](https://github.com/Sonarr/Sonarr/pull/7163) * Fixed: Failing to import any file for series if one has bad encoding by [@markus101](https://github.com/markus101) in [#7164](https://github.com/Sonarr/Sonarr/pull/7164) * Cleanup History Details and a typo by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7165](https://github.com/Sonarr/Sonarr/pull/7165) * Fixed: Respect Quality cutoff if Custom Format cutoff isn't met by [@markus101](https://github.com/markus101) in [#7167](https://github.com/Sonarr/Sonarr/pull/7167) * New: Include seasons and episodes in Trakt import lists by [@markus101](https://github.com/markus101) in [#7171](https://github.com/Sonarr/Sonarr/pull/7171) * Fixed: Links tooltip closing too quickly by [@markus101](https://github.com/markus101) in [#7172](https://github.com/Sonarr/Sonarr/pull/7172) * New: Add MDBList link to series details by [@markus101](https://github.com/markus101) in [#7173](https://github.com/Sonarr/Sonarr/pull/7173) * Convert Progress Bars to TypeScript by [@markus101](https://github.com/markus101) in [#7174](https://github.com/Sonarr/Sonarr/pull/7174) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7195](https://github.com/Sonarr/Sonarr/pull/7195) * Shift quality definition limits management to the backend by [@rcdailey](https://github.com/rcdailey) in [#7122](https://github.com/Sonarr/Sonarr/pull/7122) * Minimum Upgrade Score for Custom Formats by [@somniumV](https://github.com/somniumV) in [#7161](https://github.com/Sonarr/Sonarr/pull/7161) * Fixed: Series links not opening on iOS by [@markus101](https://github.com/markus101) in [#7178](https://github.com/Sonarr/Sonarr/pull/7178) * A handful of fixes by [@markus101](https://github.com/markus101) in [#7184](https://github.com/Sonarr/Sonarr/pull/7184) * New: Check for available space before grabbing by [@markus101](https://github.com/markus101) in [#7185](https://github.com/Sonarr/Sonarr/pull/7185) * New: Add Bluray 576p quality by [@markus101](https://github.com/markus101) in [#7192](https://github.com/Sonarr/Sonarr/pull/7192) * New: Add .zipx extension to known archive extensions by [@markus101](https://github.com/markus101) in [#7193](https://github.com/Sonarr/Sonarr/pull/7193) * Gotify notification updates by [@markus101](https://github.com/markus101) in [#7194](https://github.com/Sonarr/Sonarr/pull/7194) * Chore: add workflow to close issue when labelled as support by [@stevietv](https://github.com/stevietv) in [#7203](https://github.com/Sonarr/Sonarr/pull/7203) * Add rating as option in sort dropdown by [@stevietv](https://github.com/stevietv) in [#7207](https://github.com/Sonarr/Sonarr/pull/7207) * New: Use instance name in forms authentication cookie name by [@markus101](https://github.com/markus101) in [#7208](https://github.com/Sonarr/Sonarr/pull/7208) * New: Add exception to SSL Certificate validation message by [@markus101](https://github.com/markus101) in [#7209](https://github.com/Sonarr/Sonarr/pull/7209) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7212](https://github.com/Sonarr/Sonarr/pull/7212) * Refactoring: Clipboard Typescript & rewrite by [@Treycos](https://github.com/Treycos) in [#7168](https://github.com/Sonarr/Sonarr/pull/7168) * Fixed: Links for Trakt and TVMaze in Gotify notifications by [@markus101](https://github.com/markus101) in [#7213](https://github.com/Sonarr/Sonarr/pull/7213) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7223](https://github.com/Sonarr/Sonarr/pull/7223) * Parse KCRT as release group by [@stevietv](https://github.com/stevietv) in [#7215](https://github.com/Sonarr/Sonarr/pull/7215) * New: Allowed sort keys for paginated resources by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7216](https://github.com/Sonarr/Sonarr/pull/7216) * Fixed: Interactive searches causing multiple requests to indexers by [@markus101](https://github.com/markus101) in [#7217](https://github.com/Sonarr/Sonarr/pull/7217) * fix: annotate passing apikey as query parameter consistently in description by [@iMontouch](https://github.com/iMontouch) in [#7234](https://github.com/Sonarr/Sonarr/pull/7234) * Adds includeSeries and includeEpisodeFile to episode endpoint (default = false) by [@ManiMatter](https://github.com/ManiMatter) in [#7219](https://github.com/Sonarr/Sonarr/pull/7219) * Fixed: Adding Bluray 576p to some profiles by [@markus101](https://github.com/markus101) in [#7220](https://github.com/Sonarr/Sonarr/pull/7220) * Fixed: Reprocessing manual import items unable to detect sample by [@markus101](https://github.com/markus101) in [#7222](https://github.com/Sonarr/Sonarr/pull/7222) * New: Fetch up to 1000 series from Plex Watchlist by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7224](https://github.com/Sonarr/Sonarr/pull/7224) * Fixed: Unable to login when instance name contained brackets by [@markus101](https://github.com/markus101) in [#7231](https://github.com/Sonarr/Sonarr/pull/7231) * Fixed: Don't set last write time on episode files if difference is within the same second by [@markus101](https://github.com/markus101) in [#7232](https://github.com/Sonarr/Sonarr/pull/7232) * New: Persist sort in Select Episodes modal by [@markus101](https://github.com/markus101) in [#7235](https://github.com/Sonarr/Sonarr/pull/7235) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7239](https://github.com/Sonarr/Sonarr/pull/7239) * Fixed: Sorting queue by columns by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7237](https://github.com/Sonarr/Sonarr/pull/7237) * New: Errors sending Telegram notifications when links aren't available by [@markus101](https://github.com/markus101) in [#7241](https://github.com/Sonarr/Sonarr/pull/7241) * Fixed: Loading series images after placeholder in Safari by [@markus101](https://github.com/markus101) in [#7242](https://github.com/Sonarr/Sonarr/pull/7242) * Fixed: Parsing of Hybrid-Remux by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7243](https://github.com/Sonarr/Sonarr/pull/7243) * Fixed: Telegram Log Message by [@RobinDadswell](https://github.com/RobinDadswell) in [#7244](https://github.com/Sonarr/Sonarr/pull/7244) * Fix translation for Custom Colon Replacement label by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7245](https://github.com/Sonarr/Sonarr/pull/7245) * Fixed: Ignore '.DS\_Store' and '.unmanic' when scanning for files by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7247](https://github.com/Sonarr/Sonarr/pull/7247) * Fixed: Don't reject revision upgrades if profile doesn't allow upgrades by [@markus101](https://github.com/markus101) in [#7257](https://github.com/Sonarr/Sonarr/pull/7257) * Fixed: Ignore extra spaces in path when not running on Windows by [@markus101](https://github.com/markus101) in [#7258](https://github.com/Sonarr/Sonarr/pull/7258) * New: Parse 'BEN THE MAN' release group by [@markus101](https://github.com/markus101) in [#7259](https://github.com/Sonarr/Sonarr/pull/7259) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7264](https://github.com/Sonarr/Sonarr/pull/7264) * [DiskTransferService] WaitForIO after Copy/Move file by [@jaredledvina](https://github.com/jaredledvina) in [#7250](https://github.com/Sonarr/Sonarr/pull/7250) * Convert Release Profiles to TypeScript by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7252](https://github.com/Sonarr/Sonarr/pull/7252) * Fixed: Copy to clipboard in non-secure contexts by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7254](https://github.com/Sonarr/Sonarr/pull/7254) * Fixed: Use Id from route and check for existence on provider update by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7256](https://github.com/Sonarr/Sonarr/pull/7256) * Add new category for FL by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7267](https://github.com/Sonarr/Sonarr/pull/7267) * Fixed: Validate path on series update by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7269](https://github.com/Sonarr/Sonarr/pull/7269) * Fixed: Manual importing to nested series folders by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7271](https://github.com/Sonarr/Sonarr/pull/7271) * Fixed: Clean paths for top level root folders by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7274](https://github.com/Sonarr/Sonarr/pull/7274) * Use the first allowed quality for cutoff met rejection message with disabled upgrades by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7275](https://github.com/Sonarr/Sonarr/pull/7275) * Fixed: Ignore free space check before grabbing if directory is missing by [@markus101](https://github.com/markus101) in [#7276](https://github.com/Sonarr/Sonarr/pull/7276) * New: Use 307 redirect for requests missing URL Base by [@markus101](https://github.com/markus101) in [#7277](https://github.com/Sonarr/Sonarr/pull/7277) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7281](https://github.com/Sonarr/Sonarr/pull/7281) * Convert Naming options to TypeScript by [@mynameisbogdan](https://github.com/mynameisbogdan) in [#7266](https://github.com/Sonarr/Sonarr/pull/7266) * Translations update from Servarr Weblate by [@ServarrAdmin](https://github.com/ServarrAdmin) in [#7286](https://github.com/Sonarr/Sonarr/pull/7286) * Bump version to 4.0.10 by [@markus101](https://github.com/markus101) in [#7322](https://github.com/Sonarr/Sonarr/pull/7322) New Contributors ---------------- * [@amdavie](https://github.com/amdavie) made their first contribution in [#7160](https://github.com/Sonarr/Sonarr/pull/7160) * [@somniumV](https://github.com/somniumV) made their first contribution in [#7161](https://github.com/Sonarr/Sonarr/pull/7161) * [@iMontouch](https://github.com/iMontouch) made their first contribution in [#7234](https://github.com/Sonarr/Sonarr/pull/7234) * [@jaredledvina](https://github.com/jaredledvina) made their first contribution in [#7250](https://github.com/Sonarr/Sonarr/pull/7250) **Full Changelog**: [v4.0.9.2244...v4.0.10.2544](https://github.com/Sonarr/Sonarr/compare/v4.0.9.2244...v4.0.10.2544)