Skip to content

Cinephage

v0.11.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 5d Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Affected surfaces

auth rbac

Summary

AI summary

Broad release touches Bug Fixes, Performance Improvements, https://github.com/MoldyTaint/Cinephage/issues/331, and 0.11.0.

Full changelog

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)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Cinephage

Get notified when new releases ship.

Sign up free

About Cinephage

The AIO solution to your self hosted media gathering needs

All releases →

Beta — feedback welcome: [email protected]