Releases
v0.14.0
Compare
Sorry, something went wrong.
No results found
0.14.0 (2026-07-30)
Bug Fixes
acquisition: make movie occupancy bucket-aware for multi-quality (989a580 )
activity: parse release group at write time instead of re-parsing titles (1608a4f )
activity: resolve "Unknown" media titles in monitoring history (5ffa881 )
add missing required_formats to scoring_profiles CREATE TABLE (3ec7db4 )
build errors - button-in-button and deprecated svelte:component (da80920 )
captcha: improve Cloudflare challenge bypass reliability (4ac77c3 )
cascade failed queue cleanup when history is deleted (f600f3b )
dashboard: improve stat cards with inline expand, storage icons, and resolve lint (00ed581 )
dashboard: prevent free space from being counted multiple times when root folders share a filesystem (dd53473 )
db: break circular dependency blocking isolated migration tests (dd11c3c )
db: guard migration 119 against missing release_group column (7bfca13 )
disable chokidar symlink following to prevent CPU spike on NAS (6690f54 )
discover: decouple search-on-add from monitoring (7b9bf67 )
discover: keyword blocklist now filters dashboard sections and takes effect immediately (942c5c6 )
discover: prevent infinite /api/discover request loop in debug mode (df5955b )
discover: use movie-specific descriptions for search and monitored toggles (ed622fb )
downloads: capture downloads log domain and harden monitor grace handling (95b092b )
downloads: forward release size in grab requests from detail pages (be594a9 )
downloads: harden vanished-download recovery from awaiting state (f6dbdce )
downloads: integrate 'awaiting' recovery status and fix recovery test (1d7cb7d )
downloads: sweep stalled torrents whose only queue rows are failed (053d19d )
downloads: use API magnet for public trackers instead of torrent endpoints (a161bf8 )
format: differentiate 0 from null in formatBytes (3f7b733 )
grab: drop unused quality field and return proper error codes (902057b )
grab: enforce size limits on manual grabs (0157601 )
grab: pass release.size to grabRelease in movie and tv detail pages (64d806c )
import: add guard to Import Extra Files in file managment to warn and strip dangerous extensions from extra files list on save (3776dc0 )
import: lock import method selection while import is in progress (cf11d67 )
import: populate naming tokens, preserve release groups, and resolve absolute episode numbers during import (4dc2def )
import: preserve full episode range for multi-episode files during manual import (be82de5 )
import: use real library ID from import result for "View in Library" link during batch import of non tracked media (c8748c8 )
import: wire preferHardlink setting into manual importer and surface filesystem mismatch (77bbeac )
indexers: add lightweight connectivity test for aggregate Prowlarr indexer (8c17340 )
indexers: add prowlarr XXX categories, fix open search behavior, and increase abort timeout (3837be6 )
indexers: complete prowlarr native search integration (50bdaa0 )
indexers: prevent partial updates from wiping config (4b87ef8 ), closes zod#5235
indexers: refresh API key from connection before testing Prowlarr/Jackett indexers (1086ac4 )
indexers: require definitionId=prowlarr for badge and management lock (prowlarr integration) (c204831 )
indexers: skip DB cookie persist for ephemeral test indexer IDs (d53b83b )
indexers: update BitSearch links to use the correct domain (f2168db )
insights: remove unused InsightType import from resolver types (f62baf4 )
libraries: use invalidateAll instead of location.reload (9b25346 )
library: honor recycleEnabled in all movie-file delete paths (0c3b070 )
library: make listLibraries read-only; add reconcileAll (c3559c8 )
library: make root folder the single source of truth for default monitoring (3d56e3a )
library: manual import now deletes source file after successful transfer (a9a8c00 )
library: resolve edit field collisions and update field title clarity (3ee57a5 )
library: set series type to anime on import and library scan (12d79ec )
library: show all root folder options in multi-file import step 3 (67b8a46 )
library: show best file quality across multi-quality movies (b7afa42 )
library: surface reconcile delete failures and harden PATCH (afc67c7 )
lint errors - add {#each} keys and remove unused variable (3c0de27 )
lint: resolve formating issues (023021e )
lint: resolve formatting issue in import page component (7c2587f )
lint: resolve pre-existing format + svelte reactivity lint errors (b73262d )
lint: resolve svelte lint errors in import components and file management page (61cb701 )
logging: log grab pipeline rejections at warn level (830af52 )
mediaServer: backfill episode tmdbId from parent series in provider (2103430 )
migrations: correct version numbers in migrations 108 and 109 (#414 ) (4434220 )
monitoring: add immediate feedback to scan and sync buttons (33c1a82 )
monitoring: detect and repair stale hasFile flags before missing content search (8c052df )
monitoring: fix libraries-without-root-folder returning empty and add missing redundant-quality-tiers resolver (c11a979 )
monitoring: group untracked episodes insights by series name in insight modal (cb7f7ff )
monitoring: promote history retention setting in storage & maintenance to a first-class settings card (592d20e )
naming: add collection to the token picker (167e6f4 )
naming: add warning and inline metadata refresh when {Collection} is missing in rename preview (8b6ffc8 )
naming: preserve {CleanTitle} behavior and correct OriginalTitle tests (454d21d )
naming: use canonical rename route path (e26ca4b )
naming: wire originalTitle into movie folder creation (0744cb3 )
parser: parse episode version suffix without separator (s01e01v2) (a79c9ce )
parser: recognise fansub release groups in leading brackets (7b484ec )
patch memory leak vectors found (9a89653 )
populate all MediaNamingInfo tokens at every naming call site (87616eb )
profiles: persist preventDowngrades in built-in profiles (26035cd )
profiles: prevent repeated grabs, reject unknown sizes when limits set, and default preventDowngrades to true (0a1d669 )
profiles: remove v114 dual-default scaffolding, restore single default (18f5588 )
quality: exclude unknown-resolution files from single-quality redundant set (04c7728 )
recover vanished downloads via client path reconstruction with auto-retry (fd64c5c )
release: show old theatrical-only titles as Released after 3 years (095f66a )
rename: complete safety overhaul — Radarr-parity architecture (3950943 )
rename: prevent root-folder sweep; carry only stem-matched companions (68c28a4 )
resolve CI lint and typecheck errors (30ebd77 )
resolve merge artifacts and correct Renovate config (984e14d )
resolve storage-overhaul regressions — detail-page 500s, .strm naming, Jellyfin ghost-loop (b7023ef ), closes jellyfin#16883
resolve type error, svelte state warnings, and empty snippet in library and logs components (54712f3 )
resolve TypeScript error on LibraryBreakdownItem slug type mismatch (20398d8 )
root-folders: prevent root folder path validation self-overlap when editing (6f2403c )
scan: prevent CPU lockout on NAS-backed Docker volumes during folder scan (d52592a )
scripts: repair live test harness after YamlIndexer removal (caacc78 )
search: add result sort options for desktop view (d2be165 )
search: clear result cache when indexer enabled state changes (4e818d4 )
search: correct multi-quality bucket fill on add (8a6bc7e )
search: fix multi-season pack search missing S01-S07 style releases (7759aeb )
serach: respect enableAutomaticSearch flag in automatic search contexts (1b44eb1 )
server: add yield event loop in scan/match loops to keep app responsive under load (fb82c66 )
settings: remove max-w constraint so settings use full width like other pages (d4e65cc )
settings: use server redirects for all settings landing pages (36691fb )
smartlists: fetch all TMDB list pages using total_pages from API response (42c1bab )
status: aggregate multi-quality movie files to best file and summed size (b43d3f3 )
stop retrying TMDB external ID lookup for deleted entries and hide headless mode toggle (#424 ) (42fd506 )
storage: address ReconciliationService code review findings (bad4b1e )
storage: align attention and scan-status badges with codebase pattern (65a1b1b )
storage: exclude series/season from untracked-by-cinephage count (8f9eb21 )
storage: extend rules to episodes + add undismiss endpoint (3c77831 )
storage: multi-quality-aware duplicate and cutoff insight rules (be0de31 )
storage: revert episode duplicate count in DuplicateItemsRule (f34b56c )
storage: stop movies splitting into multiple storage_items rows (d07f392 )
subtitles: case-insensitive movie sidecar linking (0ff481c )
subtitles: isolate per-file search failures and lock precedence (30c54a7 )
subtitles: validate movieFileId belongs to the movie (9e7cd79 )
tv: update TVDB series links to use slug-based URL format (3b1833d )
typecheck: add missing rejectionType to MonitoringSearchService grabResult decls (9c76ed8 )
typecheck: correct pre-existing insert shapes + duplicate success key (504d7e7 )
ui: align BreakdownBar API with spec (f5f2716 )
ui: BreakdownBar valueFormatter prop for byte-valued charts (5cc246c )
ui: make tasks tables fully responsive (7a0423b )
ui: persist discover debug filter state, improve carousel arrow visibility, and align mobile action row (5e7c0d6 )
use TVDB dereferrer URLs for numeric series ID links (4547e37 )
Features
activity: add "remove from download client" option for failed downloads (8c6aa0f )
activity: add the ability to recover download state from download client (6405b09 )
add {OriginalTitle} and {OriginalCleanTitle} naming tokens (e1b1211 )
add File Management settings with configurable import method (99e0527 )
add Real-Debrid and TorBox acquisition (a3e0e0f )
api: add delay-profiles service module (30ccaf7 )
api: GET /api/storage/insights (f256603 )
api: POST /api/storage/insights/[id]/dismiss (577e6c5 )
api: POST /api/storage/reconcile + register InsightsService (24cf986 )
captcha: cap browsers, add native Cloudflare click solver, harden solving (8dea39a )
dashboard: link storage card to storage maintenance page (6cd65a8 )
db: add subtitles.movie_file_id FK for per-file subtitles (v124) (ec62ca7 )
db: index subtitles.movie_file_id (v124) (8b6a3a7 )
deploy: add Unraid Community Apps template files (94e1fd8 ), closes #423
discover: enrich discover media hero with video clips and backdrops (d2e6b82 )
downloads: log grab rejections under downloads log domain (57ed216 )
downloads: reliable stalled handling and configurable blocklist duration (0e86efd )
downloads: sweep stalled orphan torrents not tracked in the queue (d306eca )
duplicates: add duplicate detection system (eacdcd6 )
history: add history retention budgets with storage forecasts (1cca1a4 )
i18n: add page titles to settings pages and consolidate nav i18n keys (a70a87b )
import: add file permissions control (preserve source / custom chmod) to file management (a1e6ded )
import: add hardlink preference toggle to file management (07cefb4 )
import: add minimum free space check and delete empty folders after move to file management (cba34b2 )
import: add oprion to import extra files from download client (787903c )
import: add recycle bin for replaced files to file management (77802ee )
import: add symlink import mode to file managment (23b3119 )
import: add symlink option to manual import method selector (bc7e6f2 )
import: multi-select browser, bulk move/copy, strm fixes, and filter input (230e77a )
indexers: add BT4G definition (RSS endpoint) (ec25f95 )
indexers: add DigitalCore definition (c79cd7c )
indexers: add Magnetz definition (b61eb77 )
indexers: add Prowlarr aggregate endpoint mode (1ad2978 )
indexers: add seedpool definition (0b624be )
indexers: add TheRARBG definition (835f72d )
indexers: add TorrentGalaxy Clone definition (5f360b7 )
indexers: filter blocklisted releases from search results (afce928 )
indexers: migrate Jackett to native JSON search API with IMDB ID fix (#422 ) (2274bb5 )
indexers: migrate Prowlarr integration to native search API (e952ba5 )
insights: add /api/storage/insights/[id]/items endpoint (73cbd74 )
insights: add $lib/api/storage.ts with getInsightItems (fb1d012 )
insights: add broken-paths resolver (de2babe )
insights: add duplicate-items resolver with pagination (75cd6c2 )
insights: add filename-duplicate insight rule (67c2850 )
insights: add health-issues resolver (8f23f6d )
insights: add InsightDetailModal.svelte with paginated item list (99a6baa )
insights: add InsightItem resolver types (8819117 )
insights: add missing-from-media-server resolver and finalize registry (f59dfc6 )
insights: add orphaned-files resolver (1ce911e )
insights: add quality-below-cutoff resolver (fa910ed )
insights: add resolver registry stub with getInsightItemResolver (05f001b )
insights: add SSE stream for reactive storage updates (8b08540 )
insights: add unplayed resolver (7ce81f7 )
insights: add untracked-by-cinephage resolver (94c22f5 )
insights: wire InsightDetailModal into StorageDashboard widget (4f1d053 )
insights: wire modal into InsightsPanel and update InsightCard (524c3e8 )
libraries: extract LibraryEditModal from status page (8697cbf )
libraries: show scan mode on library overview cards (b38423a )
library: add "Search in Discover" shortcut on library empty search state (9e9bb89 )
library: add desired qualities picker to movie add flow (8d27b3a )
library: add mixed-type library support (f187774 )
library: add per-library scan modes (99a1a46 )
library: apply UX improvements, contextual back button, and sidebar cleanup to TV series (b39e4ed )
library: improve movie detail mobile UX with sticky action bar and layout refinements (211ae56 )
library: opt-in removal of unwanted quality tiers on desiredQualities change (15515c4 )
library: overhaul collection section on movie detail page (330a936 )
library: redesign movie detail header with improved layout and metadata (cdd2fbd )
library: register library-reconcile scheduled task (06fcc7e )
library: restore library scope on back navigation and show library name in back button (2148436 )
library: streamline movie detail sidebar by removing header duplicates and merging storage into details (1c869a4 )
library: surface hidden scan settings in interim UI (546577a )
logs: add clear all logs button (fdfcd56 )
mediaServerStats: emit syncComplete and syncError events (e6045a2 )
naming: add collection assignment to movie detail page (a797752 )
naming: add path separator hint in movie/series folder format (5bbd7af )
nav: add pin button to keep sidebar submenus open (128c360 )
patterns: add DB schema + migration v112 for pattern recognition (4786f7c )
patterns: add pattern recognition settings UI (d192f2e )
patterns: add PatternConfigService for config CRUD + compilation (0a6e740 )
patterns: add PatternRecognitionService core with TDD (f3fc0fb )
patterns: consolidate EXCLUDED_FILE_PATTERNS into bonus defaults (2d88f94 )
per-item metadata language overrides with refreshed edit modal layout (476fde7 )
per-movie multi-quality support (closes #166 ) (4422df6 )
profiles: add prevent resolution downgrades option (6e7e8cb ), closes hi#scoring
quality: add DB scaffolding for quality profile system (7521dd6 )
quality: add delay profiles to Quality Settings and add media assignment (49f76aa )
quality: add per-format AND/OR operator for required formats gate (5b0f73d )
quality: add required formats gate with per-profile configuration and UI indicators (3c35781 )
resolution: add editable resolution categories (38d49ee )
search: improve Interactive Search mobile and landscape UX (33113a8 )
settings: add Library group layout with 5 tabs (95ed26c )
settings: add Monitoring group layout with 3 tabs (304eedd )
settings: add shared settings shell layout with landing redirect (025ba1c )
settings: consolidate sidebar to 5 settings groups (a592a6a )
settings: move Cinephage from Integrations to System group (885d381 )
settings: move Cinephage page to System group (d759675 )
settings: move Library-group pages (libraries, root-folders, naming, quality, filters) (aceb65e )
settings: move Monitoring-group pages (status, tasks, logs) (4f12831 )
storage: add /status/folders sub-route (55f6bb3 )
storage: add /status/insights sub-route (4857a22 )
storage: add /status/libraries sub-route (7c0f04c )
storage: add BrokenPathsRule (8eb5ea3 )
storage: add client-side utils for storage components (3d9e6d9 )
storage: add DuplicateItemsRule (040a511 )
storage: add HealthIssuesRule (02688f3 )
storage: add insight domain types (833f436 )
storage: add InsightCard component (885416d )
storage: add insights upsert helper (9da6bcb )
storage: add InsightsPanel component (b1fdc4b )
storage: add InsightsService skeleton (834701b )
storage: add LibraryOverview component (9ac3bf4 )
storage: add MediaBreakdown component (eaaf423 )
storage: add MissingFromMediaServerRule (1a527e0 )
storage: add OrphanedFilesRule (8887a29 )
storage: add QualityBelowCutoffRule (e67904a )
storage: add RootFolderOverview component (882afd3 )
storage: add shared storage-domain types (afa9d64 )
storage: add storage_items, storage_item_server_links, storage_insights schema (723303d )
storage: add StorageDashboard container and components barrel (8d5e84f )
storage: add StorageHero component (37523aa )
storage: add StorageTile component (33c269a )
storage: add UnplayedRule (b7c36fe )
storage: add UntrackedByCinephageRule (a32e52b )
storage: clickable charts deep-link to filtered media explorer (8af6b27 )
storage: dashboard charts + compact insights sidebar (3c8afc4 )
storage: emit reconcileComplete event from ReconciliationService (7706be6 )
storage: implement migration 105 - storage_items tables (0a41054 )
storage: implement ReconciliationService (edc0eb9 )
storage: load insights in status page server load (0b413f6 )
storage: pack dashboard with charts, lists, and disk bars (2c50f14 )
storage: persist total_space_bytes in RootFolderService.refreshFreeSpace (9a8eb3b )
storage: redundant-quality-tiers insight + redundantFileIds helper (5156726 )
storage: register migration 105 and bump schema version to 105 (5017802 )
storage: register ReconciliationService in ServiceManager (bb4a02b )
storage: rewrite status page to use StorageDashboard (d2b2e79 )
storage: rewrite StorageDashboard as tile-based overview (6e3749c )
storage: simplify status page — remove modal handlers (cb6c271 )
streaming: serve mp4 sources as HLS VOD playlist with reachability probe (85e3099 )
subtitles: link discovered movie sidecars to their movie file (8e9b605 )
subtitles: per-file download and sync for multi-quality movies (32eeb3a )
subtitles: per-file search with movieFileId-tagged results (586d699 )
ui: add Discord/GitHub links to logged in footer menu (ab78496 )
ui: add logo, version, and Discord/GitHub links to login and setup screens (a48c7e8 )
ui: enhance storage maintenance page UI (af9692b )
ui: extract BreakdownBar primitive (30361e6 )
Reverts
remove wrongly-placed tabs and additions from Library settings (7c7e4ae )
You can’t perform that action at this time.