github MoldyTaint/Cinephage v0.11.0

2 hours ago

0.11.0 (2026-05-29)

Bug Fixes

  • add aria-label to FilterDrawer backdrop for a11y (ace1b2b)
  • add missing previewTimeout declaration in naming page (2536209)
  • add Space key support to ActivityStatusPopover for a11y (42658d0)
  • add Zod validation to 9 routes missing server-side input validation (90734a8)
  • address code review findings - separate enhanced cache, interactive-only caching, variant burst cap, indexer creation dedup, timeout 20s (8fd4bc1)
  • align metadata refresh task ID to kebab-case (4dd9826)
  • auto-blocklist releases when downloads stall due to no seeders (b29dab3)
  • avoid doubling category info in compact status labels (7a06264)
  • build errors from API migration — ApiError export, cancelEpgSync rename, data reactivity, @const placement (76c702e)
  • calendar page error handling, validation, race conditions, and locale (21095d0)
  • ci: formatting fix (14a5597)
  • clear in-flight settings promise on TMDB cache invalidation (11d3c17)
  • clear stalledSince map on service stop and add requireAdmin to settings GET (df99bb8)
  • complete media-link dedup in dashboard and i18n BlocklistTable headers (06ec092)
  • correct activity_history_days30 translation from '14 days' to '30 days' (3b54538)
  • correct Content-Length after PNG wrapper stripping and Uint8Array types (99b5596)
  • correct HLS playlist rewriting for fMP4 streams with audio renditions (23135bd)
  • dashboard: prevent tv size pill in storage card from overflowing on smaller screens (1144595)
  • deduplicate blocklist entries on insert to prevent re-grab loops (7e949d9)
  • Don't expose saved passwords (35778b4)
  • guard against NaN from parseInt in blocklist API query params (3efbcae)
  • guard against undefined seasonNumber in episode title formatting (b7cda2f)
  • i18n activity tags and locale-aware date formatting, refactor BlocklistTable (0688d22)
  • i18n ActivityStatusPopover hardcoded strings (3b07a9b)
  • i18n ActivityTable missing closing tag and formatting (10b99fa)
  • i18n ActivityTable remaining hardcoded strings (4a170ff)
  • i18n blocklist components hardcoded strings (6fb202f)
  • i18n blocklist settings page hardcoded strings (ec2dc45)
  • i18n MediaExplorerTable hardcoded strings (721fdec)
  • i18n MediaHero hardcoded strings (2000109)
  • i18n remaining component hardcoded strings (7e5aec5)
  • i18n SearchResultRow hardcoded strings (e9c32c7)
  • indexers: use fallback capability-aware criteria in EZTV test generation to resolve "No test request could be generated" failures (9e95bd4)
  • integrations: unify secret-field preserve behavior and required markers across integrations (ffaefc3), closes MoldyTaint/Cinephage#351
  • lint: adjust scrollbar visibility and layout in FilterDrawer, SectionRow, and SettingsTabNav components (779142e)
  • lint: remove unsafe html error rendering (0b6b0b0)
  • livetv: fix stalker endpoint probing, add channel fallback, TS fallback, and health dashboard (857b5c2)
  • livetv: fix stalker portal endpoint detection and channel parsing for subpath and dict-format portals (3dda9ea)
  • merge activity type into status label for compact views (dashboard, mobile) (2ab662d)
  • move stalled download settings to left column in client modal (de61efc), closes #331
  • populate releaseDate column on movie add (700df2b)
  • qBittorrent v5.2.0 authentication compatibility (Closes #341) (11a829d)
  • remove unused randomUUID import from test-yaml-indexers script (1cdea06)
  • remove unused variables and fix formatting from activity status changes (d79e176)
  • repair broken subtitle providers (subf2m, gestdown, yify) and remove subscene (1e3f9ab), closes #downloadButton
  • replace $page. with page. in $app/state migrations (4d08339)
  • replace hardcoded strings with i18n message keys (d713628)
  • resolve 132 type errors, consolidate duplicate types, clean up codebase (0459326), closes #if
  • resolve typecheck errors and lint issues from code review fixes (515fb61)
  • restore deleted state declarations in logs page, fix state_referenced_locally warnings (d1addea)
  • restore Name to left column, wrap Path Mapping in mt-6 container (d19a7d5), closes #331
  • scope monitor/unmonitor all to current library, cascade to seasons/episodes, add 3-state select toggle (56ba9d5)
  • show explicit "not linked" state instead of misleading open link when provider mapping unresolved (9e95bd4)
  • settings: resolve smartlist editor client crash and improve duplicate profile-name validation UX (f8afd03)
  • test: use testable interface type to resolve SubtitleSearchService type check errors (1d0515a)
  • ui: keep active route section correctly highlighted on navigation (9e95bd4)
  • ui: improve collapsed sidebar alignment across header, nav, and footer (9e95bd4)
  • update SceneTime selectors for new HTML layout (table.movehere -> table#torrenttable, updated selectors for bw-torrent-link, date format, freeleech tag) (b63648d), closes table#torrenttable
  • use crypto.randomBytes for token generation in StalkerPortalClient (56c2ac7)
  • use node: prefix for all crypto imports (926f2f0)
  • use Paraglide locale instead of hardcoded en-US in series header (b80b173)
  • use SQL COUNT() in blocklist count query instead of loading all rows (825d2c4)
  • use SvelteKit router for navigation after movie deletion (ea71ffe)
  • use tmdb.getRegion() as fallback instead of hardcoded DEFAULT_REGION (5ef2302)
  • workflows: enhance validation for stable source tags in GHCR retag workflow (e0fa68d)
  • wrap blocklist dedup-delete-insert in transaction to prevent data loss (891768b)

Features

  • add activity type tags and status popovers to ActivityTable (7fd1ca4)
  • add activity type tags and status popovers to dashboard sidebar (182458e)
  • add ActivityStatusPopover component (f66f7f8)
  • add apiGetStream and apiPostStream for non-JSON responses (501d4c6)
  • add Blocklist nav entry to settings sidebar (832c395)
  • add blocklist query/count methods and API endpoint (d2d4d6c)
  • add blocklist settings page with table, filters, and bulk actions (f71fccd)
  • add getActivityCategoryTag helper and ActivityTypeTag component (22b5fd3)
  • add retry-with-backoff for TMDB 429 rate limits (12e6c9e)
  • add season/episode, batch scan, worker API functions; migrate 17 fetch() calls (920e226)
  • add slide-out drawer for library sort/filter/display options (a5df8e1)
  • add typed frontend API service layer (c5c0f51)
  • anime-metadata: add AniList/MAL providers with provider-aware enrichment for series and movies (9e95bd4)
  • anime-metadata: add provider links on detail/header views with fallback when provider IDs are missing (9e95bd4)
  • anime-metadata: add metadata provider override support for anime items (9e95bd4)
  • anime-metadata: scope anime metadata controls to anime contexts only (9e95bd4)
  • indexers: add explicit compatibility messaging when indexers don't support current search type (9e95bd4)
  • auto-detect stalker portal endpoint from URL pattern (8915a92)
  • auto-fail stalled downloads after configurable timeout (de2e8b0)
  • blocked media — metadata-level blocklist with 3-layer guard architecture (16b836a)
  • blocklist: manual release blocking from search + editable block durations (4162f2f)
  • client components use configured region for display (6229195)
  • dashboard: replace progress col with size, truncate status labels on mobile (2dfdfe3)
  • discover: fallback to /discover when filters applied to trending (5e7be4f)
  • dynamic country/language lists in settings and FilterBuilder (038397f)
  • expose defaultRegion via layout data (6231e38)
  • extend tmdb.fetch() region injection and add getCountries() (7c78fa8)
  • indexers: apply global language preference to indexer search results (48dd8d1)
  • login: add app logo, password toggle; fix no-useless-escape lint error in StalkerPortalManager.ts (96e7e4a)
  • normalize HDR format labels across Plex, Jellyfin, and Emby providers (be88745)
  • resolve missing IMDB/TVDB IDs from TMDB before provider searches (54ec61d)
  • Stalker portal endpoint probing and 404 fallback (b97bd7a)
  • strip CDN PNG wrapper from obfuscated TS segments (f28eede)
  • ui: Improve library collection controls and layout (7c0d6c5)
  • ui: persist desktop sidebar expand/collapse preference across sessions (9e95bd4)
  • ui: single-open submenu behavior — opening one closes the previous (9e95bd4)

Performance Improvements

  • add ReleaseCache support to searchEnhanced path (1ea6f34)
  • batch library existence checks in autoAddMovies/autoAddSeries (c093c79)
  • batch library lookups in SmartListService.updateLibraryStatus (aafa2cc)
  • batch subtitle existence checks in SubtitleScannerService (d884012)
  • lower interactive timeout to 15s, parallelize indexer creation, throttle cookie refresh, non-blocking title refresh, bounded Levenshtein (4b99a16)
  • parallelize title/format variant searches within each indexer (5d3314a)
  • parallelize TMDB enrichment with indexer filtering (b734ba3)
  • remove batch concurrency cap, fire all indexers in parallel (ce52d10)
  • remove interactive movie text supplementation after successful ID search (b0672de)
  • remove TEMP DEBUG logs, downgrade per-indexer logging to debug (970e9ec)

Don't miss a new Cinephage release

NewReleases is sending notifications on new releases.