github semi-column/tmdb-discover-plus v2.7.0

3 months ago

2.7.0 (2026-02-11)

Features

  • add multi-layer cache resilience, request deduplication, and observability (eaf9f9f)
  • add status endpoint and nightly build metadata (7650974)
  • Added Discord Button on the website (daf8fe4)
  • Added Nightly indicator and switch to stable button on beamup (daf8fe4)
  • bulk IMDb ratings from official dataset + modular tmdb refactor (3f56b96)
  • cache warming on startup — pre-fetch genres, languages, countries, certifications in background (eaf9f9f)
  • cast and crew search is now avilaible in stremio (ac43635)
  • config cache with stampede protection — in-memory LRU (1000 entries, 5min TTL) with promise coalescing (eaf9f9f)
  • enhanced /health endpoint — cache stats, throttle stats, config cache, metrics, degraded state (eaf9f9f)
  • error-aware cache TTLs — cache failed TMDB lookups with type-specific TTLs (60s-30min) to prevent thundering herd (eaf9f9f)
  • ETag conditional responses — return 304 Not Modified for unchanged manifest/catalog/meta data (eaf9f9f)
  • graceful startup with degraded mode — critical vs non-critical init, Redis fallback to memory (eaf9f9f)
  • IMDb rating & meta improvements inspired by aiometadata (928bb28)
  • improve active filters UX & fix IMDb ratings streaming (eeec0b1)
  • improve search, Stremio metadata quality, and catalog ratings (5f7622d)
  • outbound TMDB token-bucket rate limiter — prevent 429 cascades under load (~35 req/s) (eaf9f9f)
  • request and provider metrics tracking — per-endpoint latency, per-provider API stats, error counts (eaf9f9f)
  • request deduplication — coalesce concurrent requests for same cache key into single API call (eaf9f9f)
  • self-healing cache — auto-detect and remove corrupted cache entries (eaf9f9f)
  • server: add regional language variants to language selector (25a551b)
  • stale-while-revalidate at cache level — serve stale data while refreshing in background (eaf9f9f)

Bug Fixes

  • add cache stats (keys, maxKeys, hits, misses, evictions) to MemoryAdapter for /health visibility (6307ba8)
  • add LRU-style eviction when cache is full instead of throwing — flushes expired keys first, then evicts 10% with shortest remaining TTL (6307ba8)
  • align discover filters with TMDB tv/movie params and UI (7338824)
  • client: merge imported catalogs instead of replacing existing ones (6e1aa87)
  • Fixed a Client side error causing crashes to safely handle null/non-array values. (867e7e4)
  • Fixed Active Filters issues (43e06cc)
  • honor release type with regional release dates (813bc35)
  • IMDB dataset downloading (dae7642)
  • improve Cinemeta rating diagnostics and reduce log noise (920a18c)
  • increase memory cache maxKeys from 5000 to 50000 (configurable via CACHE_MAX_KEYS env var) (6307ba8)
  • prevent metrics middleware from crashing server on route normalization failure (d2da824)
  • reduce stale-while-revalidate grace window from 2x to 1.3x TTL to reduce memory pressure (6307ba8)
  • require region for release type filtering and disable UI control without it (62e2319)
  • resolve memory cache exhaustion (maxKeys exceeded) in production (6307ba8)
  • respect TMDB Retry-After header on 429 responses (eaf9f9f)
  • use AbortSignal.timeout for node-fetch v3 compatibility (b9d7298)

Don't miss a new tmdb-discover-plus release

NewReleases is sending notifications on new releases.