Release history
Cinephage releases
The AIO solution to your self hosted media gathering needs
All releases
23 shown
- Calendar page with month grid and day detail panel
- Coming Up dashboard widget showing next 7 upcoming movies/episodes
- Calendar and upcoming API endpoints with TMDB now_playing and upcoming integration
Full changelog
0.10.0 (2026-04-28)
Bug Fixes
- add release_date and first_air_date indexes to TABLE_DEFINITIONS (dc895b3)
- resolve lint issues in calendar page (566a0d9)
- use i18n keys for calendar panel section headers and formatting touch-ups (b3bf9e1)
Features
- add calendar and upcoming API endpoints (549d7f8)
- add calendar navigation item and i18n keys (cd9c9fe)
- add calendar page with month grid and day detail panel (95124ca)
- add calendar query service with getCalendarData and getUpcomingItems (a7d5018)
- add Coming Up widget to dashboard showing next 7 upcoming movies/episodes (5d678ea)
- add releaseDate and firstAirDate columns to movies and series (4e7e719)
- add TMDB now_playing and upcoming endpoints with caching (87a1494)
- extend metadata refresh to process all movies and series with release dates (a7f1e37)
Minor fixes and improvements.
- add collection support to database schema and naming system
- add metadata refresh task and improve TMDB caching
- update movie APIs for collection support
Full changelog
Fixed release workflow to send short commit SHA to Cinephage API.
Full changelog
Minor fixes and improvements.
Full changelog
- add Cinephage IPTV playlist fetch and M3U parser
- add CinephageIptvProvider with backup URL support
- replace IPTV-org sync with Cinephage API playlist endpoint
Full changelog
0.8.0 (2026-04-27)
Bug Fixes
- add missing LiveTvProviderType imports for cast expressions (ea65c47)
- always return HLS type for Cinephage IPTV streams (a287e7e)
- remove IptvOrgSelector export from component index (3220e59)
- remove unused import and prefix unused mode prop in CinephageIptvAccountForm (fffb1d5)
- restore release files to v0.7.4 and migrate release-please action (3cb569e)
- revert Drizzle-incompatible casts in select clauses (f097fb3)
- use spaces instead of tabs in YAML workflow files (82872d1)
Features
- add Cinephage API auth helper to IptvOrgProvider (3c69c18)
- add Cinephage IPTV playlist fetch and M3U parser (a383947)
- add Cinephage IPTV types, config, and backupUrls to M3uChannelData (c3c7211)
- add CinephageIptvAccountForm component and countries proxy endpoint (6412670)
- add CinephageIptvProvider with backup URL support (ed0b46f)
- migrate streaming API consumer and build publish to API v2 (33d5b3a)
- proxy IPTV countries through Cinephage API (bc6a190)
- replace IPTV-org sync with Cinephage API playlist endpoint (1171ab3)
- update IptvOrg testConnection to use Cinephage API (e7db452)
- wire Cinephage IPTV into account modal, table, and page (5ef2dc7)
- wire Cinephage IPTV into provider factory, account manager, API schemas, and provider defs (1439a9f)
Minor fixes and improvements.
Minor fixes and improvements.
Minor fixes and improvements.
Full changelog
Minor fixes and improvements.
Full changelog
- BETTER_AUTH_SECRET must be explicitly set as environment variable; .auth-secret file fallback removed. Sessions and encrypted API keys will be lost if not migrated.
- Subtitles /api/subtitles/providers/analytics endpoint response shape changed; analytics object removed, provider fields moved to top level, throttle state now includes consecutiveFailures, lastError, lastErrorAt.
- Resolved 30 Dependabot security alerts with batch dependency updates
- Updated postcss and uuid dependencies for security vulnerabilities
- Plex media server integration
- RBAC authentication system
- i18n infrastructure with Paraglide JS v2
Full changelog
0.7.0 (2026-04-26)
⚠ BREAKING CHANGES
- subtitles: The /api/subtitles/providers/analytics endpoint response shape has changed. The analytics object (successRate, responseTimes) is removed. Provider fields are now at top level. Throttle state now includes consecutiveFailures, lastError, and lastErrorAt.
- auth: BETTER_AUTH_SECRET must now be explicitly set as an environment variable. The auto-generated .auth-secret file fallback is removed. Existing deployments must copy their secret from data/.auth-secret into the BETTER_AUTH_SECRET env var before upgrading, or all sessions and encrypted API keys will be lost.
Features
- activity: add activity stats endpoint and enhance activity retrieval with scope filtering (ef1df74)
- activity: add search_error status, activity source tracking, and fix import failure detection (36b4474)
- activity: add selectable history and active queue IDs for bulk actions (63df41e)
- activity: implement activity history management and SSE events (dbdd7a2)
- activity: implement download queue tombstones for local removal suppression (9d4a86a)
- add auto-fill version/commit from GitHub releases to streaming indexer (4cb831b)
- add automated release pipeline triggered by semver tags (3143acc)
- add configuration backup and restore with encrypted secrets (ca0e328)
- add content rating filter to discover page (e1836ef)
- add downloads to allowlist, path-guard tests for symlink handling and realpath resolution (66b4c48)
- add graceful shutdown handler for background services (1af8c14)
- add i18n infrastructure with Paraglide JS v2 (ff14bb7)
- add isPlayed and playedPercentage to media explorer query (32fd707)
- add Kinozal indexer support (2760f66)
- add language filter to discover page (df915f4)
- add Live TV channel name cleanup workflow and HLS playlist fixes (893c83b)
- add media move functionality and enhance root folder management (580894b)
- add media subtype support for root folders and enforce anime root folder settings (25648c4)
- Add milkie.cc private tracker (6e88ab2)
- add missing messages and project.inlang files to Docker build (0d89fb7)
- add missing settings API endpoints (c1b7a96)
- add native subtitle sync engine with cleanup (f7a8dc9)
- add playback sessions and persisted support logs (70368e9)
- add plex media server integration (bbc8f89)
- add role column to users table (5f602c9)
- add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (59299ae)
- add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (#159) (34661d2)
- add source-only and resolution-only scoring formats (3dbb858)
- add unified status page data loader (ba9de25)
- add unified summary cards and combined scan/sync status to status page (e6dfcc6)
- add user language preference API and database schema (aeff37f)
- api: enhance JSON response formatting in health and system status endpoints (af91a14)
- auth: Add database path configuration via environment variables (c446896)
- auth: require BETTER_AUTH_SECRET env var and remove auto-generation (7ed0db7)
- auto-detect latest CI candidate for releases and remove manual release notes input (bcce4a7)
- canonicalize release parsing and scoring attributes (2d62d9f)
- ci: add auto-release workflow (d0d0a86)
- ci: add Discord announcement to auto-release workflow (2fc3d54)
- ci: merge release pipeline into auto-release workflow (eb2bba8)
- ci: replace broken auto-release with release-please (35e5205)
- create unified status page composing storage and media server sections (1b9966b)
- docker: update base image to node:24-trixie-slim and enhance Dockerfile for production (#157) (4118437)
- enforce admin authorization on API endpoints (5a58783)
- Enhance error handling and indexer availability checks in search functionality (ecda835)
- Enhance library and root folder management (d4c19b8)
- Enhance library navigation and anime root folder enforcement (95f131f)
- enhance library pages with better data handling (328e113)
- enhance manual import service with anime classification and match consensus (a98ed1e)
- enhance root folder validation with overlap checks and error handling (5efa0d1)
- Enhance RuTracker search functionality and episode handling (ce7ea35)
- extract MediaServerStatsSection component for unified status page (cfedb36)
- i18n: align spanish tranlation paraglide keys (be7a955)
- implement admin password reset functionality and update documentation (fd230db)
- implement new health and readiness endpoints, enhance docker ownership handling, improve startup configuration and update documentation (2cefd80)
- implement RBAC authentication system (8c57c3f)
- improve ActivityService and TMDB error handling (cc6498e)
- improve streaming prefetch and usenet playback resilience (5cec266)
- indexers: improve modal layout and add automatic language detection (fa0d8a2)
- integrate i18n into application shell (e59c6d1)
- introduce import wizard with API and error handling refactor (545a67e)
- library: introduce custom library support and backfill existing media (3847ecd)
- livetv,auth,streaming: integrate logo picker and improve streaming auth (137db96)
- livetv: add EPG sync state tracking and robust M3U EPG parsing (2637bf5)
- livetv: add xstream URL normalization and player API URL builder (5f3bbf2)
- livetv: improve EPG source resolution and provider sync cleanup (ae77bcb)
- localize and enhance library storage management (07b9ba0)
- logging: refactor environment variable retrieval for better compatibility (e77291d)
- major development branch with auth, SSE, search, and system improvements (1a1ba30)
- migrate all route pages to i18n (6d95f2f)
- migrate all Svelte components to i18n (04691c5)
- monitoring: add history cleanup task, streaming key pre-check, and provider availability guards (04bae6c)
- naming: expand release metadata for rename previews (5dc957b)
- overhaul TV show subtitle management UX (30cfd9c)
- rate-limit: Add private IP exemption for rate limiting (7bbf26a)
- redesign media explorer filter bar with tiered chip layout (9180108)
- redesign playback column with isPlayed and playedPercentage indicators (92bcd03)
- refine quality scoring UI and search result details (8938b25)
- release: enhance version bump logic for dev branch and add parsing for stable tags (63ddd5c)
- search: implement auto search strategy for RuTracker and enhance episode handling (31489f9)
- search: improve multi-pack detection and multi-pack search UX for tracker-style TV releases (969b7e3)
- skip stream probing for instant playback startup (390ec20)
- standardize settings pages with shared components and route consolidation (2f4e543)
- streaming: route resolution through Cinephage backend (bd25039)
- streamline activity page loading (683476e)
- subtitles: add adaptive subtitle searching with backoff after 21 days (b7416a5)
- subtitles: support .strm subtitle sync with friendly errors and streamer-profile guard (2f74f9f)
- support built-in profile overrides and runtime custom formats (4192fc6)
- Support custom process IDs for sidecars (1b0abf4)
- translate Spanish (es) localization file (ff0904f)
- ui: enhance UI for mobile devices (#158) (7ef4639)
- unify app version resolution and make streaming API key rate limits configurable via env (7d4847d)
- use git-cliff for release changelog generation (3f51526)
- workflows: add GHCR retag latest workflow and enhance release tagging logic (db29bba)
- workflows: add GHCR retag latest workflow and enhance release tagging logicic (#184) (03750c6)
Bug Fixes
- activity: add function to remove stale queue-linked activity rows (9b46eac)
- add master playlist support for IPTV-Org streams and Jellyfin format detection (342b989)
- add missing logs route and harden error handling (a928c30)
- add seeding limit checks for Transmission and Deluge (168e509)
- add stalled and paused download states to dashboard load (ada9557)
- add target-branch dev to release-please config (4d75e7b)
- address date parser edge cases — bare Z handling, test fixes, coverage (f81dc59)
- address date parser edge cases — bare Z handling, test fixes, coverage (7393e02)
- align Cinephage streaming auth and server address settings (9d06186)
- align log export validation and test setup (cb2879f)
- align release notes labels with actual repo label names (f5d7231)
- auth: add rateLimit.id column and update schema for Better Auth (ea41ed0)
- backend: import SvelteURL (b311fec)
- batch security dependency updates to resolve 30 Dependabot alerts (ce39a96)
- build: move better-sqlite3 to dependencies for proper adapter-node externalization (625b16e)
- bump postcss and uuid to resolve security vulnerabilities (835fe6f)
- captcha: register captcha solver in service manager for anti-bot bypass (3baad32)
- ci,auth: require BETTER_AUTH_SECRET at runtime and set it in docker healthcheck test (2f8eee8)
- ci: add actions:write permission for workflow dispatch (020ae42)
- ci: add bump-version to job dependencies for output access (9ec3e40)
- ci: add gate job matching branch protection required check (2f8ea4d)
- ci: add workflow_dispatch inputs for Docker build triggers (ed9f0f3)
- CI: authenticate release attestation and configure git tag identity (cbb5cfc)
- ci: fix commit detection in auto-release workflow (1862b8c)
- ci: format CHANGELOG.md after generation (f98a0f0)
- ci: generate and upload release notes artifact from bump-version job (aef948d)
- ci: move dotenv to dependencies and remove broken docs-deploy workflow (8fe119f)
- ci: pin action SHAs, add concurrency group, normalize action versions (beb45d4)
- ci: remove paths filter blocking tag-triggered Docker builds (cc81ab3)
- ci: remove redundant workflow dispatch triggers (cdbf07c)
- ci: resolve release workflow issues and backfill changelog (3162f5e)
- ci: skip ci/docs/test/style scoped commits from release triggers (d3a35c0)
- ci: use correct actions/github-script version tag (43ed9a8)
- ci: use latest-only release notes to avoid body too long error (6ada5cc)
- ci: use v4 tag for release-please action (29df429)
- clamp playedPercentage to 100 to prevent progress bar overflow (79f2b82)
- correct git-cliff template variable (timestamp not date) (d7b06a4)
- correct syntax error in IptvOrgSelector.svelte (88111b3)
- dashboard: count stalled and paused downloads in active downloads stat (b72820d)
- deps: move dotenv to core depencies, to resolve docker build failure (71ff2b0)
- deps: regenerate package-lock.json (660c56e)
- deps: regenerate package-lock.json (5d7727a)
- deps: regenerate package-lock.json (82d9f2e)
- deps: resolve build-breaking dependency issues (52b101e)
- deps: resolve build-breaking dependency issues (f287278)
- deps: update integrity hash and add dependencies for guessit-js (d606e86)
- devcontainer: repair workspace ownership for node user and clarify sidecar UID/GID docs (6451535)
- discover page minor adjustments (b533983)
- docker: keep optional runtime deps for impit native bindings (e4714dc)
- docs: correct formatting in API documentation examples (e8019cf)
- enhance download client update schema with detailed validation and optional fields (3a92b23)
- exclude unaired/TBD episodes from episode counts (189520c)
- expand dashboard history preview (6b8a7cc)
- Fix correct remote user (7ad97ae)
- Fix Transmission seed ration and time settings not set correctly (#290) (b74d35a)
- force paraglide regeneration and fix type assertions (d979cc6)
- gate cloudflare streaming live test behind LIVE_TESTS env var (cb41d4b)
- grab: implement episode-only search strategy for missing episodes (434827b)
- i18n: add missing paraglide keys for custom library UI (bb5781b)
- i18n: localize anime root-folder enforcement and warning copy (23a2761)
- i18n: update German and English translations for consistency and clarity (f4828ca)
- import: fall back to queue/folder release context for obfuscated filenames (e693c2c)
- improve API key regeneration UX with confirmation, toasts, and data refresh (55bdd8a)
- improve auth and library add error reporting (2a2063e)
- improve clipboard copy functionality and enhance user feedback in settings page (8257e2e)
- improve codebase quality and type safety (170c152)
- improve homepage responsive grid layout for mobile (4b60e6e)
- improve russian tracker search and pointer download metadata (e403675)
- improve service initialization logic and enhance Dockerfile for production dependencies (bd93c05)
- increase timeout for scrypt-based password hashing tests on CI (e9d5b27)
- indexer: enhance search orchestrator with title variant handling and episode pointer support for RuTracker indexer (0f24e02)
- indexers: normalize Milkie category IDs to tracker-native mapping (30b258e)
- indexers: preserve localized titles in interactive matching (dbc04fe)
- indexers: preserve Russian titles in RuTracker and Kinozal (ecb9faa)
- indexers: update Kinozal and RuTracker configurations for improved Cyrillic handling and search strategies (0517df2)
- keep queue state consistent after import and removal (0768c5c)
- lint: remove double indents (b8da813)
- lint: remove unused prop and replace mutable URL instance (78f3989)
- livetv: Add logging and error handling to SSE streams (f90573d)
- livetv: resolve stream replay loops on stalker portals via HLS-to-TS conversion (127e8cd)
- make rate-limit cleanup test-safe (9a7db72)
- missing-search: scope RuTracker episode-only flow and prevent partial-season re-downloads in manual auto-grab (01477fa)
- move dotenv to runtime deps and improve auth secret handling for SSR and testing environments (bc0b4a9)
- nCore IMDB parsing and add debug logging for indexer search issues (e284865)
- normalize dolby vision naming output (d5d077e)
- normalize path handling for client paths and add tests for Windows separator support (7c4fe7d)
- pass target-branch dev to release-please action (ccfceba)
- preserve native titles in tracker search requests (6a9738c)
- prevent legacy library backfill from reassigning root folders (bae5442)
- quote labels with colons in release notes config (cff1b42)
- refresh plex libraries by folder path (94a9a29)
- regenerate package-lock.json (6e789cf)
- release: update version bump cycle to sync package-lock.json, and add contributor credit to release notes. (#293) (d74c7c2)
- remove invalid 'items' parameter from bulk operation translations (e44fa07)
- remove unused mediaTitle variable in MatchFolderModal (dc0a611)
- Replace GO style date parser with a working one (aad1501)
- Replace GO style date parser with a working one (6a7c923)
- resolve 15 npm security vulnerabilities (6be827f)
- resolve Better Auth v1.5 API key breaking changes (8f7719f)
- resolve CI and Docker build failures (dd97ff9)
- resolve CI failures and improve code quality (a9ccb93)
- resolve final 6 translation type errors (7f9e843)
- resolve German translation duplicates causing type mismatches (bbc4075)
- resolve i18n translation type errors (4d7288e)
- resolve lint errors (each keys, unused var, unused props) (a87daa9)
- resolve remaining i18n translation type errors (b5f00e9)
- resolve Rutracker double-slash URL issue causing grab failures (c9f6963)
- resolve type check errors and set Better Auth to respect DATA_DIR to resolve docker build failures. (5f6d92a)
- resolve typecheck errors in refactored test files (14673ef)
- respect monitorSpecials setting for Season 0 episodes (8d09083)
- restore canBeRemoved for non-seeding torrents after PR 291 (e44138c)
- restore original test file for MonitoringSearchService (e1abd50)
- sanitize streaming indexer settings and tighten dashboard typing (e262955)
- scan: restore disk scan helpers and remove broken library auto-routing (bb5781b)
- schema: update CURRENT_SCHEMA_VERSION to 66 and adjust apikey schema migration (10658be)
- search: add filter to exclude non-video artifacts from movie/TV searches (ef82e53)
- search: add streamer profile filtering for internal Cinephage Library indexer (69a7552)
- search: enhance auto-search error handling and reporting (159f782)
- search: enhance filtering for RuTracker season packs in TV searches (0bfd858)
- security: redact credentials in API responses and settings UI (bec28b6)
- security: restrict filesystem browse, path traversal, TMDB proxy, and query columns (177c395)
- seed scoring profiles before library add inserts (d5b6dbc)
- serialize Error instances in log capture store to prevent 500 on /settings/logs (0b72e67)
- set ORIGIN for better-auth base url fallback (fdd87ee)
- sse: Add circuit breaker logic to recordConnectionError (b02e290)
- stop library scans excluding legitimate titles and preserve streaming file paths (36de085)
- streaming: add Cloudflare bypass and disable Vidlink provider (adcbf3c)
- subtitles: authenticate before each OpenSubtitles API request (1831e1b), closes #180
- test: fallback to built-in scoring formats when custom_formats table is unavailable (0558005)
- tests: use rest params in mockImplementation to satisfy TypeScript (795df91)
- tighten tracker search title matching and localized fallback (63c0e90)
- title normalization, naming cache invalidation, and log sanitization (e3ce8a4)
- Transmission download client ignores seed targets (1a37922)
- tv: exclude specials from missing-episode auto-grab and UI missing counts (a1242f8)
- ui: move mobile SSE status badge into header and align with nav spacing (ba81f60)
- ui: move scan banner to visible location, minor ui/backend tweaks (4f88ace)
- unify scoring profiles into single DB source, fix profile-not-found on add-to-library (1c1aa87)
- update .gitignore to include secrets and remove sensitive .auth-secret file (fd888e3)
- update activity deletion logic to include move task history and adjust total deleted count (182cc7c)
- update Dockerfile to use absolute path for entrypoint script (272567f)
- update media server description and enhance auth secret retrieval (f8c75b8)
- update relative imports in relocated providers.live.test.ts (17f7f1a)
- update TMDB configuration link and enhance modal opening logic (fb3903f)
- use correct episode file as upgrade baseline (#213) (458935b)
- use docker buildx imagetools to auto-detect CI candidate tag (de33a07)
- use gh cli instead of curl for GHCR package auto-detection (1928f92)
- verify release-please triggers on dev branch (cb7e7e2)
- version: move version resolution logic to a dedicated module (d0743d7)
- version: remove PUBLIC_APP_VERSION environment variable and update app version resolution logic (e87853f)
- workflow: enhance version bump logic for dev branch and add parsing for stable tags (#183) (3612257)
- workflows: enhance validation for stable source tags in GHCR retag workflow (5254a06)
- workflows: enhance validation for stable source tags in GHCR retag workflow (#188) (71e64bf)
- workflows: normalize semver input for source tag in GHCR retag workflow (1f4776a)
Refactoring
- align dashboard activity with history feed (9d7026c)
- api: migrate 33 API routes to use parseBody() helpers (8a75987)
- consolidate duplicate formatting utilities into format.ts (bae137e)
- downloadClients: consolidate NZB-Mount functionality into SABnzbd client and update related components (2a36e04)
- downloadClients: remove NZB-Mount references and consolidate to SABnzbd functionality (c34f055)
- extract dashboard queries and add progressive rendering (b26ab99)
- extract LiveTV stream handler to shared service module (ba838bf)
- monitoring: Remove dead streaming code from MonitoringSearchService (b4b35a3)
- optimize MonitoringSearchService file lookups with eager loading (2b7ae64)
- per-suite DB isolation to enable test file parallelism (89ce9e0)
- reduce mock fragility in MonitoringSearchService tests (fb371fb)
- reduce mock fragility in searchOnAdd tests (200ddc6)
- release: simplify stable and preview channels (152ba86)
- remove 'as any' from LanguageProfileService tests (c15051d)
- remove 'as any' from M3uProvider tests (af1bc47)
- remove 'as any' from manual-import-service tests (3346eba)
- remove 'as any' from MonitoringScheduler tests (f6944fa)
- remove 'as any' from OpenSubtitlesProvider tests (e212a57)
- remove 'as any' from parsers tests (7819479)
- remove 'as any' from rating-buffer tests (acc7ebb)
- remove 'as any' from RenamePreviewService tests (4760100)
- remove 'as any' from RequestBuilder tests (fe50f58)
- remove 'as any' from sse tests (9cf22cc)
- remove 'as any' from TorrentProtocolHandler tests (3b1b5b1)
- remove old maintenance and server-stats pages in favor of unified status page (8ac7878)
- remove redundant overview cards and charts from unified status page (e619c26)
- remove unreachable TV certification notes in discover filter (0c53d4e)
- remove unused import from Live TV portals API (9b93335)
- replace 'as any' with typed fixtures in CutoffUnmetSpecification tests (ad9c8fa)
- replace 'as any' with typed fixtures in searchorchestrator tests (c01867b)
- replace 'as any' with typed fixtures in UpgradeableSpecification tests (8b01dd6)
- streaming: align Cinephage integration and release sync (7588d5f)
- strip overview sections from storage and media server components (6faea29)
- subtitles: replace ThrottleManager with DB-backed provider throttling (a3949b1)
- ui: split settings (library & storage and system) pages into horizontal nav layouts with child routes (5513c35)
- unify logging system with structured log capture (882d8aa)
- unify SSE streams and remove legacy plumbing (d5dead7)
- update general settings nav tabs to use unified Status page (9bb6ff4)
Performance
- optimize logs page load time by 30-50x (91463f1)
Styling
- add CHANGELOG.md to .prettierignore and format (df9eca6)
- fix formatting in release-please workflow (8f0bfd3)
- format CHANGELOG.md with Prettier (50e7311)
- format media explorer changes (5ce0188)
- format merged plex integration files (28f4311)
- lint: use SvelteURLSearchParams instead of URLSearchParams (9ce9714)
- tests: fix Prettier formatting in OpenSubtitlesProvider test (3834fc1)
Documentation
- clarify error id messaging (240cd52)
- db: document schema version 70 in migration header (ba665d2)
- improve README clarity and structure (b7f66a4)
- migrate to Docusaurus with comprehensive documentation (7cbc8e5)
- rework README with bare metal install, systemd, and updated screenshots (b6434b7)
- update AGENTS.md with comprehensive development guidelines (6fcbaf5)
- update AGENTS.md with improved test patterns and conventions (00f9dcf)
- update BETTER_AUTH_SECRET generation instructions and add to environment variable references (893e57c)
Testing
- align upgradeable spec fixtures with real format ids (6d1fe85)
- isolate monitoring decision scoring from runtime db (e54db9e)
- isolate pure scoring tests from runtime db (cfabd4c)
- update rate-limit test for language field (c83f801)
Miscellaneous
- add devcontainer support (558bfa5)
- bump version to 0.1.3 (010e45c)
- bump version to 0.2.0 (96f36ad)
- bump version to 0.2.1 (2386f3d)
- bump version to 0.2.2 (#294) (6f61b56)
- ci: bump actions/attest-build-provenance (#173) (ca4914c)
- ci: bump actions/attest-build-provenance from v3 to v4.1.0 (6135e2c)
- ci: bump actions/checkout from 4.2.2 to 6.0.2 (38324fb)
- ci: bump actions/setup-node from 6.2.0 to 6.3.0 (8d8e52e)
- ci: bump actions/upload-artifact from 4 to 7 (6142d57)
- ci: bump docker/build-push-action from 6.19.2 to 7.1.0 (4359200)
- ci: bump docker/build-push-action from 6.9.0 to 6.19.2 (#175) (b4897f8)
- ci: bump docker/build-push-action from v6 to v7 (2b2b041)
- ci: bump docker/login-action from 3.3.0 to 3.7.0 (#174) (4da4de3)
- ci: bump docker/login-action from 3.7.0 to 4.1.0 (aae24bb)
- ci: bump docker/login-action from v3 to v4 (f0db9a2)
- ci: bump docker/metadata-action from 5.5.1 to 5.10.0 (#171) (bf7374f)
- ci: bump docker/metadata-action from v5 to v6 (add62ec)
- ci: bump docker/setup-buildx-action from 3.12.0 to 4.0.0 (75091ae)
- ci: bump docker/setup-buildx-action from 3.7.1 to 3.12.0 (#172) (bfeb2cc)
- ci: pin GitHub Actions to commit SHAs (0e9636a)
- deps: bump brace-expansion from 5.0.3 to 5.0.5 (f24bc6d)
- deps: bump devalue from 5.6.3 to 5.6.4 (c5d8411)
- deps: bump drizzle-orm from 0.45.1 to 0.45.2 in the drizzle group (030f6f3)
- deps: bump fast-xml-parser from 5.3.7 to 5.3.8 (79bf886)
- deps: bump fast-xml-parser from 5.4.1 to 5.5.7 (3f7cb4b)
- deps: bump flatted from 3.3.3 to 3.4.2 (85a2d37)
- deps: bump lucide-svelte from 0.575.0 to 1.0.1 (70b2e53)
- deps: bump minimatch from 9.0.6 to 9.0.9 (87d5490)
- deps: bump minor-and-patch group (better-sqlite3, camoufox-js, eslint, lucide-svelte, and 7 more) (4cbf72e)
- deps: bump picomatch from 4.0.3 to 4.0.4 (a965a10)
- deps: bump pino from 9.14.0 to 10.3.1 (7552811)
- deps: bump rollup from 4.53.5 to 4.59.0 (bcb7c77)
- deps: bump svelte from 5.53.2 to 5.53.5 (f15235b)
- deps: bump svelte group (@sveltejs/kit 2.55.0, svelte 5.53.12, svelte-check 4.4.5) (ce8accc)
- deps: bump tailwind group (@tailwindcss/vite 4.2.2, tailwindcss 4.2.2) (209adc5)
- deps: bump the minor-and-patch group across 1 directory with 3 updates (cbc946c)
- deps: bump the minor-and-patch group with 16 updates (6caaacc)
- deps: bump the minor-and-patch group with 6 updates (dab5934)
- deps: bump the minor-and-patch group with 6 updates (#176) (84dbee4)
- deps: bump the svelte group with 4 updates (0f58c11)
- deps: bump the svelte group with 4 updates (#177) (023f181)
- deps: bump the tailwind group with 2 updates (9069b55)
- deps: bump the tailwind group with 2 updates (#178) (be84981)
- deps: bump typescript from 5.9.3 to 6.0.2 (b983706)
- deps: bump typescript from 5.9.3 to 6.0.3 (a05396a)
- deps: bump undici from 7.19.1 to 7.24.6 (fa78ab9)
- deps: bump vite from 7.3.1 to 8.0.3 (9d10c90)
- deps: update package.json versions to match merged PRs (c77d488)
- devcontainer: align runtime, stabilize workspace mount and document optional qBittorrent/SABnzbd sidecars (11190cc)
- devcontainer: install required dependencies, auto-install Camoufox binaries and fix executable permissions (b83748a)
- formatting, uppercase codec labels, add rootFolderIds, export MediaExplorerTable (f572536)
- improve GitHub release note categorization (86a67a7)
- isolate live network tests behind LIVE_TESTS env flag (38add03)
- main: release 0.5.0 (9d2d174)
- main: release 0.6.0 (d28553b)
- release v0.1.0 (943f494)
- remove .vscode directory and add to .gitignore (775e00b)
- remove dead code and documentation (90d095a)
- remove dead test files (demo.spec.ts, page.svelte.spec.ts) (e09c82b)
- remove deprecated Cloudflare streaming fix and results documentation (6587a3a)
- remove documentation (moved to separate repo) (f5b3c18)
- remove obsolete troubleshooting scripts (b2c939d)
- remove release workflow (c16331a)
- rename main container channel from edge to main and decouple release provenance (9e0a025)
- restore deleted documentation and npm command (0aa4f16)
- tests: trigger CI (50cc375)
- update ignore files for i18n and test utilities (341ebf7)
- update package-lock.json after dependabot merges (4afb235)
- Bump postcss and uuid to resolve security vulnerabilities
Full changelog
- Skip stream probing for instant playback
- 30-50x logs page load optimization
Full changelog
0.6.0 (2026-04-25)
Features
- skip stream probing for instant playback startup (390ec20)
Bug Fixes
- add seeding limit checks for Transmission and Deluge (168e509)
- address date parser edge cases — bare Z handling, test fixes, coverage (f81dc59)
- address date parser edge cases — bare Z handling, test fixes, coverage (7393e02)
- ci: add gate job matching branch protection required check (2f8ea4d)
- Replace GO style date parser with a working one (aad1501)
- Replace GO style date parser with a working one (6a7c923)
- restore canBeRemoved for non-seeding torrents after PR 291 (e44138c)
Performance
- optimize logs page load time by 30-50x (91463f1)
Styling
- add CHANGELOG.md to .prettierignore and format (df9eca6)
- format CHANGELOG.md with Prettier (50e7311)
Documentation
- improve README clarity and structure (b7f66a4)
Miscellaneous
- remove .vscode directory and add to .gitignore (775e00b)
- Subtitles /api/subtitles/providers/analytics response shape changed
- BETTER_AUTH_SECRET environment variable now required; auto-generated fallback removed
- preferMagnetUrl setting removed from all indexers
- Activity stats endpoint and scope filtering
- Search error status and activity source tracking
- Selectable history and active queue IDs
Full changelog
0.5.0 (2026-04-21)
� BREAKING CHANGES
- subtitles: The /api/subtitles/providers/analytics endpoint response shape has changed. The analytics object (successRate, responseTimes) is removed. Provider fields are now at top level. Throttle state now includes consecutiveFailures, lastError, and lastErrorAt.
- auth: BETTER_AUTH_SECRET must now be explicitly set as an environment variable. The auto-generated .auth-secret file fallback is removed. Existing deployments must copy their secret from data/.auth-secret into the BETTER_AUTH_SECRET env var before upgrading, or all sessions and encrypted API keys will be lost.
- indexers: Removes preferMagnetUrl setting from all indexers
Features
- activity: add activity stats endpoint and enhance activity retrieval with scope filtering (ef1df74)
- activity: add search_error status, activity source tracking, and fix import failure detection (36b4474)
- activity: add selectable history and active queue IDs for bulk actions (63df41e)
- activity: implement activity history management and SSE events (dbdd7a2)
- activity: implement download queue tombstones for local removal suppression (9d4a86a)
- add auto-fill version/commit from GitHub releases to streaming indexer (4cb831b)
- add automated release pipeline triggered by semver tags (3143acc)
- add configuration backup and restore with encrypted secrets (ca0e328)
- add content rating filter to discover page (e1836ef)
- add downloads to allowlist, path-guard tests for symlink handling and realpath resolution (66b4c48)
- add graceful shutdown handler for background services (1af8c14)
- add i18n infrastructure with Paraglide JS v2 (ff14bb7)
- add isPlayed and playedPercentage to media explorer query (32fd707)
- add Kinozal indexer support (2760f66)
- add language filter to discover page (df915f4)
- add list view with auto/manual grab for movies and tv shows (9e2916e)
- add Live TV channel name cleanup workflow and HLS playlist fixes (893c83b)
- add media move functionality and enhance root folder management (580894b)
- add media subtype support for root folders and enforce anime root folder settings (25648c4)
- Add milkie.cc private tracker (6e88ab2)
- add missing messages and project.inlang files to Docker build (0d89fb7)
- add missing settings API endpoints (c1b7a96)
- add native subtitle sync engine with cleanup (f7a8dc9)
- add parent folder renaming to media file rename system (a972e11)
- add playback sessions and persisted support logs (70368e9)
- add plex media server integration (bbc8f89)
- add role column to users table (5f602c9)
- add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (59299ae)
- add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (#159) (34661d2)
- add source-only and resolution-only scoring formats (3dbb858)
- add unified status page data loader (ba9de25)
- add unified summary cards and combined scan/sync status to status page (e6dfcc6)
- add user language preference API and database schema (aeff37f)
- api: enhance JSON response formatting in health and system status endpoints (af91a14)
- auth: Add database path configuration via environment variables (c446896)
- auth: require BETTER_AUTH_SECRET env var and remove auto-generation (7ed0db7)
- auto-detect latest CI candidate for releases and remove manual release notes input (bcce4a7)
- canonicalize release parsing and scoring attributes (2d62d9f)
- ci: add auto-release workflow (d0d0a86)
- ci: add Discord announcement to auto-release workflow (2fc3d54)
- ci: merge release pipeline into auto-release workflow (eb2bba8)
- ci: replace broken auto-release with release-please (35e5205)
- create unified status page composing storage and media server sections (1b9966b)
- docker: update base image to node:24-trixie-slim and enhance Dockerfile for production (#157) (4118437)
- enforce admin authorization on API endpoints (5a58783)
- Enhance EPG fetching and account management (4ded8de)
- Enhance EPG fetching and IPTV account management (#133) (13f46da)
- Enhance error handling and indexer availability checks in search functionality (ecda835)
- Enhance library and root folder management (d4c19b8)
- Enhance library navigation and anime root folder enforcement (95f131f)
- enhance library pages with better data handling (328e113)
- enhance manual import service with anime classification and match consensus (a98ed1e)
- enhance root folder validation with overlap checks and error handling (5efa0d1)
- Enhance RuTracker search functionality and episode handling (ce7ea35)
- extract MediaServerStatsSection component for unified status page (cfedb36)
- i18n: align spanish tranlation paraglide keys (be7a955)
- implement admin password reset functionality and update documentation (fd230db)
- implement new health and readiness endpoints, enhance docker ownership handling, improve startup configuration and update documentation (2cefd80)
- implement RBAC authentication system (8c57c3f)
- improve ActivityService and TMDB error handling (cc6498e)
- Improve integration health tracking, error handling, and add bulk operations across multiple integration pages (1d3e097)
- Improve integration health tracking, error handling, and add bulk operations across multiple integration pages (#134) (9460690)
- improve streaming prefetch and usenet playback resilience (5cec266)
- include symlinked video files in import candidates and update documentation for Rclone mounts (456ab34)
- indexers: add support for Torznab protocol and enhance capabilities validation (#153) (9c576a9)
- indexers: improve modal layout and add automatic language detection (fa0d8a2)
- integrate i18n into application shell (e59c6d1)
- introduce import wizard with API and error handling refactor (545a67e)
- library: introduce custom library support and backfill existing media (3847ecd)
- livetv,auth,streaming: integrate logo picker and improve streaming auth (137db96)
- livetv: add EPG sync state tracking and robust M3U EPG parsing (2637bf5)
- livetv: add xstream URL normalization and player API URL builder (5f3bbf2)
- livetv: improve EPG source resolution and provider sync cleanup (ae77bcb)
- localize and enhance library storage management (07b9ba0)
- logging: refactor environment variable retrieval for better compatibility (e77291d)
- major development branch with auth, SSE, search, and system improvements (1a1ba30)
- migrate all route pages to i18n (6d95f2f)
- migrate all Svelte components to i18n (04691c5)
- monitoring: add history cleanup task, streaming key pre-check, and provider availability guards (04bae6c)
- naming: expand release metadata for rename previews (5dc957b)
- overhaul TV show subtitle management UX (30cfd9c)
- rate-limit: Add private IP exemption for rate limiting (7bbf26a)
- redesign media explorer filter bar with tiered chip layout (9180108)
- redesign playback column with isPlayed and playedPercentage indicators (92bcd03)
- refine quality scoring UI and search result details (8938b25)
- release: enhance version bump logic for dev branch and add parsing for stable tags (63ddd5c)
- replace unreliable blocked/status flags with actual stream verification in account tests (923676e)
- search: implement auto search strategy for RuTracker and enhance episode handling (31489f9)
- search: improve multi-pack detection and multi-pack search UX for tracker-style TV releases (969b7e3)
- standardize settings pages with shared components and route consolidation (2f4e543)
- streaming: route resolution through Cinephage backend (bd25039)
- streamline activity page loading (683476e)
- subtitles: add adaptive subtitle searching with backoff after 21 days (b7416a5)
- subtitles: support .strm subtitle sync with friendly errors and streamer-profile guard (2f74f9f)
- support built-in profile overrides and runtime custom formats (4192fc6)
- Support custom process IDs for sidecars (1b0abf4)
- translate Spanish (es) localization file (ff0904f)
- ui: enhance UI for mobile devices (#158) (7ef4639)
- unify app version resolution and make streaming API key rate limits configurable via env (7d4847d)
- unify MediaType types, enhance bulk/delete flows, and polish library UI across Movies and TV (#145) (2332bdb)
- use git-cliff for release changelog generation (3f51526)
- workflows: add GHCR retag latest workflow and enhance release tagging logic (db29bba)
- workflows: add GHCR retag latest workflow and enhance release tagging logicic (#184) (03750c6)
Bug Fixes
- activity: add function to remove stale queue-linked activity rows (9b46eac)
- add master playlist support for IPTV-Org streams and Jellyfin format detection (342b989)
- add missing logs route and harden error handling (a928c30)
- add stalled and paused download states to dashboard load (ada9557)
- align Cinephage streaming auth and server address settings (9d06186)
- align log export validation and test setup (cb2879f)
- align release notes labels with actual repo label names (f5d7231)
- auth: add rateLimit.id column and update schema for Better Auth (ea41ed0)
- backend: import SvelteURL (b311fec)
- batch security dependency updates to resolve 30 Dependabot alerts (ce39a96)
- build: move better-sqlite3 to dependencies for proper adapter-node externalization (625b16e)
- captcha: register captcha solver in service manager for anti-bot bypass (3baad32)
- ci,auth: require BETTER_AUTH_SECRET at runtime and set it in docker healthcheck test (2f8eee8)
- ci: add actions:write permission for workflow dispatch (020ae42)
- ci: add bump-version to job dependencies for output access (9ec3e40)
- ci: add workflow_dispatch inputs for Docker build triggers (ed9f0f3)
- CI: authenticate release attestation and configure git tag identity (cbb5cfc)
- ci: fix commit detection in auto-release workflow (1862b8c)
- ci: format CHANGELOG.md after generation (f98a0f0)
- ci: generate and upload release notes artifact from bump-version job (aef948d)
- ci: move dotenv to dependencies and remove broken docs-deploy workflow (8fe119f)
- ci: pin action SHAs, add concurrency group, normalize action versions (beb45d4)
- ci: remove paths filter blocking tag-triggered Docker builds (cc81ab3)
- ci: remove redundant workflow dispatch triggers (cdbf07c)
- ci: resolve release workflow issues and backfill changelog (3162f5e)
- ci: skip ci/docs/test/style scoped commits from release triggers (d3a35c0)
- ci: use correct actions/github-script version tag (43ed9a8)
- ci: use latest-only release notes to avoid body too long error (6ada5cc)
- ci: use v4 tag for release-please action (29df429)
- clamp playedPercentage to 100 to prevent progress bar overflow (79f2b82)
- correct git-cliff template variable (timestamp not date) (d7b06a4)
- correct syntax error in IptvOrgSelector.svelte (88111b3)
- dashboard: count stalled and paused downloads in active downloads stat (b72820d)
- deps: move dotenv to core depencies, to resolve docker build failure (71ff2b0)
- deps: regenerate package-lock.json (660c56e)
- deps: regenerate package-lock.json (5d7727a)
- deps: regenerate package-lock.json (82d9f2e)
- deps: resolve build-breaking dependency issues (52b101e)
- deps: resolve build-breaking dependency issues (f287278)
- deps: update integrity hash and add dependencies for guessit-js (d606e86)
- devcontainer: repair workspace ownership for node user and clarify sidecar UID/GID docs (6451535)
- discover page minor adjustments (b533983)
- docker: keep optional runtime deps for impit native bindings (e4714dc)
- docs: correct formatting in API documentation examples (e8019cf)
- enhance download client update schema with detailed validation and optional fields (3a92b23)
- exclude unaired/TBD episodes from episode counts (189520c)
- expand dashboard history preview (6b8a7cc)
- Fix correct remote user (7ad97ae)
- Fix Transmission seed ration and time settings not set correctly (#290) (b74d35a)
- force paraglide regeneration and fix type assertions (d979cc6)
- gate cloudflare streaming live test behind LIVE_TESTS env var (cb41d4b)
- grab: implement episode-only search strategy for missing episodes (434827b)
- i18n: add missing paraglide keys for custom library UI (bb5781b)
- i18n: localize anime root-folder enforcement and warning copy (23a2761)
- i18n: update German and English translations for consistency and clarity (f4828ca)
- import: fall back to queue/folder release context for obfuscated filenames (e693c2c)
- improve API key regeneration UX with confirmation, toasts, and data refresh (55bdd8a)
- improve auth and library add error reporting (2a2063e)
- improve clipboard copy functionality and enhance user feedback in settings page (8257e2e)
- improve codebase quality and type safety (170c152)
- improve homepage responsive grid layout for mobile (4b60e6e)
- improve russian tracker search and pointer download metadata (e403675)
- improve search reliability with tvdbId support and title relevance filtering (f28ee62)
- improve service initialization logic and enhance Dockerfile for production dependencies (bd93c05)
- increase timeout for scrypt-based password hashing tests on CI (e9d5b27)
- indexer: add ID validation and year matching to prevent wrong movie results (ee152cb)
- indexer: enhance search orchestrator with title variant handling and episode pointer support for RuTracker indexer (0f24e02)
- indexers: always prefer torrent files over magnet links for private tracker compatibility (c6588bd)
- indexers: normalize Milkie category IDs to tracker-native mapping (30b258e)
- indexers: preserve localized titles in interactive matching (dbc04fe)
- indexers: preserve Russian titles in RuTracker and Kinozal (ecb9faa)
- indexers: update Kinozal and RuTracker configurations for improved Cyrillic handling and search strategies (0517df2)
- keep queue state consistent after import and removal (0768c5c)
- keep symlinked NZB-Mount media visible after reload and library scans (3a36072)
- lint: remove double indents (b8da813)
- lint: remove unused prop and replace mutable URL instance (78f3989)
- livetv: Add logging and error handling to SSE streams (f90573d)
- livetv: resolve stream replay loops on stalker portals via HLS-to-TS conversion (127e8cd)
- make rate-limit cleanup test-safe (9a7db72)
- missing-search: scope RuTracker episode-only flow and prevent partial-season re-downloads in manual auto-grab (01477fa)
- monitoring,indexers,dashboard: reconcile missing-state searchability and harden release/cooldown logic (#139) (23d5e00)
- move dotenv to runtime deps and improve auth secret handling for SSR and testing environments (bc0b4a9)
- nCore IMDB parsing and add debug logging for indexer search issues (e284865)
- normalize dolby vision naming output (d5d077e)
- normalize path handling for client paths and add tests for Windows separator support (7c4fe7d)
- preserve native titles in tracker search requests (6a9738c)
- prevent legacy library backfill from reassigning root folders (bae5442)
- quote labels with colons in release notes config (cff1b42)
- refresh plex libraries by folder path (94a9a29)
- regenerate package-lock.json (6e789cf)
- release: update version bump cycle to sync package-lock.json, and add contributor credit to release notes. (#293) (d74c7c2)
- remove invalid 'items' parameter from bulk operation translations (e44fa07)
- remove unused mediaTitle variable in MatchFolderModal (dc0a611)
- resolve 15 npm security vulnerabilities (6be827f)
- resolve Better Auth v1.5 API key breaking changes (8f7719f)
- resolve CI and Docker build failures (dd97ff9)
- resolve CI failures and improve code quality (a9ccb93)
- resolve duplicate key crash in interactive search modal (d1d3eaf)
- resolve final 6 translation type errors (7f9e843)
- resolve German translation duplicates causing type mismatches (bbc4075)
- resolve i18n translation type errors (4d7288e)
- resolve lint errors (each keys, unused var, unused props) (a87daa9)
- resolve remaining i18n translation type errors (b5f00e9)
- resolve Rutracker double-slash URL issue causing grab failures (c9f6963)
- resolve type check errors and set Better Auth to respect DATA_DIR to resolve docker build failures. (5f6d92a)
- resolve typecheck errors in refactored test files (14673ef)
- respect monitorSpecials setting for Season 0 episodes (8d09083)
- restore original test file for MonitoringSearchService (e1abd50)
- sanitize streaming indexer settings and tighten dashboard typing (e262955)
- scan: restore disk scan helpers and remove broken library auto-routing (bb5781b)
- schema: update CURRENT_SCHEMA_VERSION to 66 and adjust apikey schema migration (10658be)
- search: add filter to exclude non-video artifacts from movie/TV searches (ef82e53)
- search: add streamer profile filtering for internal Cinephage Library indexer (69a7552)
- search: enhance auto-search error handling and reporting (159f782)
- search: enhance filtering for RuTracker season packs in TV searches (0bfd858)
- search: improve movie ID search reliability on Newznab indexers (#151) (93f5c91)
- security: apply base security headers to all routes and validate correlation IDs (b41be26)
- security: enforce CSRF origin validation for private networks (4e4d298)
- security: harden SSRF protection and proxy security for all outbound requests (8943c75)
- security: prevent command injection in subtitle sync service (fa11658)
- security: redact credentials in API responses and settings UI (bec28b6)
- security: restrict filesystem browse, path traversal, TMDB proxy, and query columns (177c395)
- seed scoring profiles before library add inserts (d5b6dbc)
- send correct identifier to download clients for remove/pause/resume requests (fe26daf)
- send correct identifier to download clients for remove/pause/resume requests (#136) (7cc0be6)
- serialize Error instances in log capture store to prevent 500 on /settings/logs (0b72e67)
- set ORIGIN for better-auth base url fallback (fdd87ee)
- smartlists: harden external source handling and overhaul smart list UX (#146) (39ff4cc)
- sse: Add circuit breaker logic to recordConnectionError (b02e290)
- stop library scans excluding legitimate titles and preserve streaming file paths (36de085)
- streaming: add Cloudflare bypass and disable Vidlink provider (adcbf3c)
- subtitles: authenticate before each OpenSubtitles API request (1831e1b), closes #180
- test: fallback to built-in scoring formats when custom_formats table is unavailable (0558005)
- tests: use rest params in mockImplementation to satisfy TypeScript (795df91)
- tighten tracker search title matching and localized fallback (63c0e90)
- title normalization, naming cache invalidation, and log sanitization (e3ce8a4)
- tv: exclude specials from missing-episode auto-grab and UI missing counts (a1242f8)
- ui: move mobile SSE status badge into header and align with nav spacing (ba81f60)
- ui: move scan banner to visible location, minor ui/backend tweaks (4f88ace)
- unify scoring profiles into single DB source, fix profile-not-found on add-to-library (1c1aa87)
- update .gitignore to include secrets and remove sensitive .auth-secret file (fd888e3)
- update activity deletion logic to include move task history and adjust total deleted count (182cc7c)
- update Dockerfile to use absolute path for entrypoint script (272567f)
- update media server description and enhance auth secret retrieval (f8c75b8)
- update relative imports in relocated providers.live.test.ts (17f7f1a)
- update TMDB configuration link and enhance modal opening logic (fb3903f)
- use correct episode file as upgrade baseline (#213) (458935b)
- use docker buildx imagetools to auto-detect CI candidate tag (de33a07)
- use gh cli instead of curl for GHCR package auto-detection (1928f92)
- version: move version resolution logic to a dedicated module (d0743d7)
- version: remove PUBLIC_APP_VERSION environment variable and update app version resolution logic (e87853f)
- workflow: enhance version bump logic for dev branch and add parsing for stable tags (#183) (3612257)
- workflows: enhance validation for stable source tags in GHCR retag workflow (5254a06)
- workflows: enhance validation for stable source tags in GHCR retag workflow (#188) (71e64bf)
- workflows: normalize semver input for source tag in GHCR retag workflow (1f4776a)
Refactoring
- align dashboard activity with history feed (9d7026c)
- api: migrate 33 API routes to use parseBody() helpers (8a75987)
- consolidate duplicate formatting utilities into format.ts (bae137e)
- downloadClients: consolidate NZB-Mount functionality into SABnzbd client and update related components (2a36e04)
- downloadClients: remove NZB-Mount references and consolidate to SABnzbd functionality (c34f055)
- extract dashboard queries and add progressive rendering (b26ab99)
- extract LiveTV stream handler to shared service module (ba838bf)
- monitoring: Remove dead streaming code from MonitoringSearchService (b4b35a3)
- optimize MonitoringSearchService file lookups with eager loading (2b7ae64)
- per-suite DB isolation to enable test file parallelism (89ce9e0)
- reduce mock fragility in MonitoringSearchService tests (fb371fb)
- reduce mock fragility in searchOnAdd tests (200ddc6)
- release: simplify stable and preview channels (152ba86)
- remove 'as any' from LanguageProfileService tests (c15051d)
- remove 'as any' from M3uProvider tests (af1bc47)
- remove 'as any' from manual-import-service tests (3346eba)
- remove 'as any' from MonitoringScheduler tests (f6944fa)
- remove 'as any' from OpenSubtitlesProvider tests (e212a57)
- remove 'as any' from parsers tests (7819479)
- remove 'as any' from rating-buffer tests (acc7ebb)
- remove 'as any' from RenamePreviewService tests (4760100)
- remove 'as any' from RequestBuilder tests (fe50f58)
- remove 'as any' from sse tests (9cf22cc)
- remove 'as any' from TorrentProtocolHandler tests (3b1b5b1)
- remove old maintenance and server-stats pages in favor of unified status page (8ac7878)
- remove redundant overview cards and charts from unified status page (e619c26)
- remove unreachable TV certification notes in discover filter (0c53d4e)
- remove unused import from Live TV portals API (9b93335)
- replace 'as any' with typed fixtures in CutoffUnmetSpecification tests (ad9c8fa)
- replace 'as any' with typed fixtures in searchorchestrator tests (c01867b)
- replace 'as any' with typed fixtures in UpgradeableSpecification tests (8b01dd6)
- streaming: align Cinephage integration and release sync (7588d5f)
- strip overview sections from storage and media server components (6faea29)
- subtitles: replace ThrottleManager with DB-backed provider throttling (a3949b1)
- ui: split settings (library & storage and system) pages into horizontal nav layouts with child routes (5513c35)
- unify logging system with structured log capture (882d8aa)
- unify SSE streams and remove legacy plumbing (d5dead7)
- update general settings nav tabs to use unified Status page (9bb6ff4)
Styling
- fix formatting in release-please workflow (8f0bfd3)
- fix unused vars in StalkerPortalClient to pass lint (df48e78)
- format media explorer changes (5ce0188)
- format merged plex integration files (28f4311)
- lint: use SvelteURLSearchParams instead of URLSearchParams (9ce9714)
- tests: fix Prettier formatting in OpenSubtitlesProvider test (3834fc1)
Documentation
- clarify error id messaging (240cd52)
- db: document schema version 70 in migration header (ba665d2)
- migrate to Docusaurus with comprehensive documentation (7cbc8e5)
- rework README with bare metal install, systemd, and updated screenshots (b6434b7)
- update AGENTS.md with comprehensive development guidelines (6fcbaf5)
- update AGENTS.md with improved test patterns and conventions (00f9dcf)
- update BETTER_AUTH_SECRET generation instructions and add to environment variable references (893e57c)
Testing
- align upgradeable spec fixtures with real format ids (6d1fe85)
- isolate monitoring decision scoring from runtime db (e54db9e)
- isolate pure scoring tests from runtime db (cfabd4c)
- update rate-limit test for language field (c83f801)
Miscellaneous
- add devcontainer support (558bfa5)
- bump version to 0.1.3 (010e45c)
- bump version to 0.2.0 (96f36ad)
- bump version to 0.2.1 (2386f3d)
- bump version to 0.2.2 (#294) (6f61b56)
- ci: bump actions/attest-build-provenance (#173) (ca4914c)
- ci: bump actions/attest-build-provenance from v3 to v4.1.0 (6135e2c)
- ci: bump actions/checkout from 4.2.2 to 6.0.2 (38324fb)
- ci: bump actions/setup-node from 6.2.0 to 6.3.0 (8d8e52e)
- ci: bump actions/upload-artifact from 4 to 7 (6142d57)
- ci: bump docker/build-push-action from 6.19.2 to 7.1.0 (4359200)
- ci: bump docker/build-push-action from 6.9.0 to 6.19.2 (#175) (b4897f8)
- ci: bump docker/build-push-action from v6 to v7 (2b2b041)
- ci: bump docker/login-action from 3.3.0 to 3.7.0 (#174) (4da4de3)
- ci: bump docker/login-action from 3.7.0 to 4.1.0 (aae24bb)
- ci: bump docker/login-action from v3 to v4 (f0db9a2)
- ci: bump docker/metadata-action from 5.5.1 to 5.10.0 (#171) (bf7374f)
- ci: bump docker/metadata-action from v5 to v6 (add62ec)
- ci: bump docker/setup-buildx-action from 3.12.0 to 4.0.0 (75091ae)
- ci: bump docker/setup-buildx-action from 3.7.1 to 3.12.0 (#172) (bfeb2cc)
- ci: pin GitHub Actions to commit SHAs (0e9636a)
- deps: bump brace-expansion from 5.0.3 to 5.0.5 (f24bc6d)
- deps: bump devalue from 5.6.2 to 5.6.3 (#143) (5916f5c)
- deps: bump devalue from 5.6.3 to 5.6.4 (c5d8411)
- deps: bump drizzle-orm from 0.45.1 to 0.45.2 in the drizzle group (030f6f3)
- deps: bump eslint from 9.39.2 to 10.0.1 (#150) (4c9a5d9)
- deps: bump fast-xml-parser from 5.3.7 to 5.3.8 (79bf886)
- deps: bump fast-xml-parser from 5.4.1 to 5.5.7 (3f7cb4b)
- deps: bump flatted from 3.3.3 to 3.4.2 (85a2d37)
- deps: bump lucide-svelte from 0.575.0 to 1.0.1 (70b2e53)
- deps: bump minimatch from 9.0.6 to 9.0.9 (87d5490)
- deps: bump minor-and-patch group (better-sqlite3, camoufox-js, eslint, lucide-svelte, and 7 more) (4cbf72e)
- deps: bump picomatch from 4.0.3 to 4.0.4 (a965a10)
- deps: bump pino from 9.14.0 to 10.3.1 (7552811)
- deps: bump rollup from 4.53.5 to 4.59.0 (bcb7c77)
- deps: bump svelte from 5.53.2 to 5.53.5 (f15235b)
- deps: bump svelte group (@sveltejs/kit 2.55.0, svelte 5.53.12, svelte-check 4.4.5) (ce8accc)
- deps: bump tailwind group (@tailwindcss/vite 4.2.2, tailwindcss 4.2.2) (209adc5)
- deps: bump the minor-and-patch group across 1 directory with 3 updates (cbc946c)
- deps: bump the minor-and-patch group with 16 updates (6caaacc)
- deps: bump the minor-and-patch group with 6 updates (dab5934)
- deps: bump the minor-and-patch group with 6 updates (#131) (e49605f)
- deps: bump the minor-and-patch group with 6 updates (#176) (84dbee4)
- deps: bump the minor-and-patch group with 8 updates (#147) (c434569)
- deps: bump the svelte group with 3 updates (#148) (b60f327)
- deps: bump the svelte group with 4 updates (0f58c11)
- deps: bump the svelte group with 4 updates (#177) (023f181)
- deps: bump the svelte group with 5 updates (#132) (0d08e81)
- deps: bump the tailwind group with 2 updates (9069b55)
- deps: bump the tailwind group with 2 updates (#178) (be84981)
- deps: bump the tailwind group with 3 updates (#149) (0704209)
- deps: bump typescript from 5.9.3 to 6.0.2 (b983706)
- deps: bump typescript from 5.9.3 to 6.0.3 (a05396a)
- deps: bump undici from 7.19.1 to 7.24.6 (fa78ab9)
- deps: bump vite from 7.3.1 to 8.0.3 (9d10c90)
- deps: update package.json versions to match merged PRs (c77d488)
- devcontainer: align runtime, stabilize workspace mount and document optional qBittorrent/SABnzbd sidecars (11190cc)
- devcontainer: install required dependencies, auto-install Camoufox binaries and fix executable permissions (b83748a)
- formatting, uppercase codec labels, add rootFolderIds, export MediaExplorerTable (f572536)
- improve GitHub release note categorization (86a67a7)
- isolate live network tests behind LIVE_TESTS env flag (38add03)
- release v0.1.0 (943f494)
- remove dead code and documentation (90d095a)
- remove dead test files (demo.spec.ts, page.svelte.spec.ts) (e09c82b)
- remove deprecated Cloudflare streaming fix and results documentation (6587a3a)
- remove documentation (moved to separate repo) (f5b3c18)
- remove obsolete troubleshooting scripts (b2c939d)
- remove release workflow (c16331a)
- rename main container channel from edge to main and decouple release provenance (9e0a025)
- restore deleted documentation and npm command (0aa4f16)
- tests: trigger CI (50cc375)
- update ignore files for i18n and test utilities (341ebf7)
- update package-lock.json after dependabot merges (4afb235)
Minor fixes and improvements.
Full changelog
0.4.0 (2026-04-21)
Features
- Add Discord announcement to auto-release workflow (2fc3d54) — by MoldyTaint
Bug Fixes
- Use git-cliff for release changelog generation
Full changelog
- Unified status page combining storage and media server sections with status cards
- Media explorer redesign with isPlayed and playedPercentage indicators
- Git-cliff integration for automated release changelog generation
Full changelog
0.2.1 (2026-04-19)
Features
- Use git-cliff for release changelog generation (3f51526)
Bug Fixes
- Fix Transmission seed ration and time settings not set correctly (#290) (b74d35a)
- Correct git-cliff template variable (timestamp not date) (d7b06a4)
0.2.0 (2026-04-17)
Features
- Extract MediaServerStatsSection component for unified status page (cfedb36)
- Add unified status page data loader (ba9de25)
- Create unified status page composing storage and media server sections (1b9966b)
- Add unified summary cards and combined scan/sync status to status page (e6dfcc6)
- Add isPlayed and playedPercentage to media explorer query (32fd707)
- Redesign playback column with isPlayed and playedPercentage indicators (92bcd03)
- Redesign media explorer filter bar with tiered chip layout (9180108)
Bug Fixes
- Clamp playedPercentage to 100 to prevent progress bar overflow (79f2b82)
- Resolve lint errors (each keys, unused var, unused props) (a87daa9)
Refactoring
- Update general settings nav tabs to use unified Status page (9bb6ff4)
- Remove old maintenance and server-stats pages in favor of unified status page (8ac7878)
- Strip overview sections from storage and media server components (6faea29)
- Remove redundant overview cards and charts from unified status page (e619c26)
Styling
- Format media explorer changes (5ce0188)
Miscellaneous
- Formatting, uppercase codec labels, add rootFolderIds, export MediaExplorerTable (f572536)
0.1.2 (2026-04-16)
Bug Fixes
- Unify scoring profiles into single DB source, fix profile-not-found on add-to-library (1c1aa87)
- Gate cloudflare streaming live test behind LIVE_TESTS env var (cb41d4b)
0.1.1 (2026-04-15)
Features
- Add auto-fill version/commit from GitHub releases to streaming indexer (4cb831b)
0.1.0 (2026-04-15)
Features
- Add dynamic capability discovery for Newznab/Torznab (ae4671c)
- Add multi-source tracking for deduplicated releases (480f0d1)
- Add external ID extraction for improved media matching (bf9ac3b)
- Add BitSearch public torrent indexer (ebbd2a6)
- Add OldToons.World private tracker support (02d1473)
- Add SceneTime private tracker with BrowserSolver (46a3637)
- Add embedded subtitle support and monitoring tasks (a60fba2)
- Add person detail pages with filmography (4269cba)
- Unified task management with activity tracking (9524387)
- Add naming system, enhanced settings, and import improvements (67b324e)
- Add Cinephage logo to app and README (6cde8ba)
- Comprehensive Docker configuration overhaul (3a6a1e9)
- Implement PUID/PGID for proper permission handling (f1d03ea)
- Add movie collection bulk-add support (2464398)
- Add smart lists with TMDB discover integration (9e13f0e)
- Enhance smart lists and fix discover TV filter (fbc53e1)
- Add media naming system with embedded schema sync (083f44c)
- Add read-only root folder support for NZBDav integration (f5d2edf)
- Add task cancellation system with TaskExecutionContext (c4670b4)
- Add language-aware stream source fallback (4069e5c)
- Add GitHub Actions workflows (8fee398)
- Implement rootless Docker and add CI verification (14cf8d5)
- Add read-only folder support for virtual mounts (60855a3)
- Add subtitle support with SRT-to-VTT conversion (b02df9d)
- Add unified resolve service with persistent cache and prefetch (043b7b6)
- Improve folder scanning and streaming URL configuration (bfec5e6)
- Add bulk editing for movies and TV shows (34fd391)
- Add native NZB/NNTP streaming support (9c900e0)
- Add NZB streaming with extraction support (eb3f80e)
- Add bulk operations and streaming to library pages (ebf95f2)
- Add Live TV navigation and streaming settings (c788f50)
- Add initial Live TV implementation [WIP] (4fcedc2)
- Sabnzbd rewrite, live tv streaming, and queue improvements (1dfdad8)
- Complete architecture refactor with streaming and media browser support (61b5660)
- Add portal scanner for discovering Stalker accounts (2b6f78a)
- Add EPG status tracking and UI improvements (f9d97a6)
- Add EPG management page with status, coverage, and guide views (3679759)
- Add optional URL base support for client endpoints (#55) (dad0a8b)
- Add URL base support for download clients and update related components. (04fe974)
- Add NZB-Mount client with STRM/Symlink import support. (a3ad50c)
- Enhance ImportService tests with detailed type definitions for findImportableFiles (3ca7d7c)
- Add file scoring system and fix queue system bugs (a2234b6)
- Add stream URL type detection for proper resolution method (1fa849f)
- Add multi-title search with TMDB alternate titles (4d7004c)
- Add dead torrent rejection and usenet post-processing status (4e456d1)
- Add unified activity system and usenet pre-flight checks (46a5f02)
- Add Camoufox-based captcha solver for Cloudflare bypass (0343509)
- Add captcha bypass endpoint and toggle (e33cc75)
- Add import transfer modes with seeding-imported status (ac9ac5d)
- Add HDR normalization and enhanced audio parsing (1660eda)
- Add banned BR-DISK and raw disc custom formats (0eb600f)
- Add fetch statistics to captcha solver UI (b1dec3b)
- Add fetch statistics tracking to captcha solver (882f48c)
- Add canMoveFiles and canBeRemoved to download clients (cf735ab)
- Add dangerous file extensions and seeding-imported badge (e79cb30)
- Implement Radarr-style deduplication and debug tools (6eecbea)
- Bazarr-style architecture with dynamic provider system (36f271b)
- Add 'Remove from Library' option to fully delete movies/series (e00a08a)
- Add dev branch support, optimize Docker builds, and enhance mobile UI (#80) (b7dc0af)
- Add release workflow and enhance Docker build configuration (4c8df7d)
- Add script to fix TV subtitle paths and enhance subtitle download service (1610770)
- Add script to fix TV subtitle paths and update npm command (452d00c)
- Standardize library/discover paths and add legacy redirects and fix activity links (46cb750)
- Enhance subtitle handling, monitoring features and library reactivity (40f2ec2)
- Initialize subtitle provider registry during service startup (ea9cdaa)
- Sortable queue/history table headers and queue bulk remove (8f11309)
- Add clear failed downloads functionality and update UI components (#88) (f524ca5)
- Add NixOS flake support (35fadac)
- Add external list import support with StevenLu presets (2bc8ede)
- Add IMDb and TMDB list providers with concurrent resolution (4572b5c)
- Move app state under /config with auto-migration (8bef7aa)
- Complete indexer backend overhaul and fixes (d0d6e52)
- Add LimeTorrents public indexer (6ee6983)
- Add Prowlarr indexer definitions and improve compatibility (5d9ad83)
- Add info_hash tracking for duplicate torrent detection (70eb28c)
- Improve indexer config handling and download resolution (3a3b171)
- Improve quality scoring and remove hard cutoffs (d8101c4)
- Add encoding support for non-UTF-8 indexers and RuTracker integration (3e22c77)
- Overhaul Activity page with unified feed and enhanced filters (93d4a7a)
- Add filter to show/hide 'No Results' activities (6778052)
- Enhance movie and series API with root folder media type (98b2395)
- Improve streamer profile UI and add accessibility enhancements (#111) (740bf37)
- Enhance profile and episode size limit handling, improve UI responsiveness. (563b883)
- Enhance profile size limits with validation and improve mobile responsiveness (#113) (b01b59a)
- Overhaul tasks page with table UI and customizable intervals (b09389d)
- Add SSE streaming endpoint for real-time task updates (ac36817)
- Emit SSE events from task API endpoints (ee326c1)
- Overhaul tasks page with table UI and customizable intervals (91a0e1e)
- Implement modular SSE system and refactor Activity page (453be8e)
- Add SSE stream to home page dashboard (2076759)
- Add real-time SSE streaming to library detail pages (3431ae1)
- Implement upsert functionality for episode files to avoid duplicates (b4572ef)
- Add 'hide items already in library' filter to discover page (9e97596)
- Refactor state management in movie and TV series pages to use derived states and dynamic SSE (9fe1611)
- Restore library root-folder assignment UI after unmatched refactor (b4de540)
- Restore root-folder assignment UI for library items (#127) (1b70daa)
- Enhance movie availability tracking and UI updates (f2b0cce)
- Enhance movie availability tracking and UI updates (#129) (15d2e7f)
- Add paused status to activity and download queue (1b9473e)
- Add paused status to activity and download queue (#130) (038a18c)
- Add nCore.pro indexer support (f51e220)
- Add optional 2FA support for ncore.pro (9ad1224)
- Improve indexer download system with downloadVariables support and torrent caching (1fb8d1d)
- Persist indexer session cookies to database for ncore.pro 2FA support (9591ec6)
- Include symlinked video files in import candidates and update documentation for Rclone mounts (456ab34)
- Enhance EPG fetching and account management (4ded8de)
- Improve integration health tracking, error handling, and add bulk operations across multiple integration pages (1d3e097)
- Enhance EPG fetching and IPTV account management (#133) (13f46da)
- Improve integration health tracking, error handling, and add bulk operations across multiple integration pages (#134) (9460690)
- Add parent folder renaming to media file rename system (a972e11)
- Add list view with auto/manual grab for movies and tv shows (9e2916e)
- Unify MediaType types, enhance bulk/delete flows, and polish library UI across Movies and TV (#145) (2332bdb)
- Replace unreliable blocked/status flags with actual stream verification in account tests (923676e)
- Add support for Torznab protocol and enhance capabilities validation (#153) (9c576a9)
- Update base image to node:24-trixie-slim and enhance Dockerfile for production (#157) (4118437)
- Enhance UI for mobile devices (#158) (7ef4639)
- Add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (#159) (34661d2)
- Add rTorrent (XML-RPC) and Transmission (RPC API) download client implementations (59299ae)
- Introduce import wizard with API and error handling refactor (545a67e)
- Enhance root folder validation with overlap checks and error handling (5efa0d1)
- Add downloads to allowlist, path-guard tests for symlink handling and realpath resolution (66b4c48)
- Add GHCR retag latest workflow and enhance release tagging logicic (#184) (03750c6)
- Major development branch with auth, SSE, search, and system improvements (1a1ba30)
- Add database path configuration via environment variables (c446896)
- Add private IP exemption for rate limiting (7bbf26a)
- Add graceful shutdown handler for background services (1af8c14)
- Implement RBAC authentication system (8c57c3f)
- Add role column to users table (5f602c9)
- Enforce admin authorization on API endpoints (5a58783)
- Implement admin password reset functionality and update documentation (fd230db)
- Improve ActivityService and TMDB error handling (cc6498e)
- Enhance library pages with better data handling (328e113)
- Add missing settings API endpoints (c1b7a96)
- Route resolution through Cinephage backend (bd25039)
- Enhance version bump logic for dev branch and add parsing for stable tags (63ddd5c)
- Add GHCR retag latest workflow and enhance release tagging logic (db29bba)
- Implement activity history management and SSE events (dbdd7a2)
- Integrate logo picker and improve streaming auth (137db96)
- Enhance error handling and indexer availability checks in search functionality (ecda835)
- Add Live TV channel name cleanup workflow and HLS playlist fixes (893c83b)
- Improve EPG source resolution and provider sync cleanup (ae77bcb)
- Expand release metadata for rename previews (5dc957b)
- Add activity stats endpoint and enhance activity retrieval with scope filtering (ef1df74)
- Enhance JSON response formatting in health and system status endpoints (af91a14)
- Unify app version resolution and make streaming API key rate limits configurable via env (7d4847d)
- Streamline activity page loading (683476e)
- Implement new health and readiness endpoints, enhance docker ownership handling, improve startup configuration and update documentation (2cefd80)
- Refactor environment variable retrieval for better compatibility (e77291d)
- Add EPG sync state tracking and robust M3U EPG parsing (2637bf5)
- Add native subtitle sync engine with cleanup (f7a8dc9)
- Overhaul TV show subtitle management UX (30cfd9c)
- Add xstream URL normalization and player API URL builder (5f3bbf2)
- Add selectable history and active queue IDs for bulk actions (63df41e)
- Implement download queue tombstones for local removal suppression (9d4a86a)
- Support .strm subtitle sync with friendly errors and streamer-profile guard (2f74f9f)
- Add search_error status, activity source tracking, and fix import failure detection (36b4474)
- Require BETTER_AUTH_SECRET env var and remove auto-generation (7ed0db7)
- Add adaptive subtitle searching with backoff after 21 days (b7416a5)
- Add history cleanup task, streaming key pre-check, and provider availability guards (04bae6c)
- Add plex media server integration (bbc8f89)
- Improve multi-pack detection and multi-pack search UX for tracker-style TV releases (969b7e3)
- Enhance RuTracker search functionality and episode handling (ce7ea35)
- Implement auto search strategy for RuTracker and enhance episode handling (31489f9)
- Add Kinozal indexer support (2760f66)
- Improve modal layout and add automatic language detection (fa0d8a2)
- Add i18n infrastructure with Paraglide JS v2 (ff14bb7)
- Add user language preference API and database schema (aeff37f)
- Integrate i18n into application shell (e59c6d1)
- Migrate all route pages to i18n (6d95f2f)
- Migrate all Svelte components to i18n (04691c5)
- Add language filter to discover page (df915f4)
- Standardize settings pages with shared components and route consolidation (2f4e543)
- Add media subtype support for root folders and enforce anime root folder settings (25648c4)
- Add media move functionality and enhance root folder management (580894b)
- Enhance manual import service with anime classification and match consensus (a98ed1e)
- Enhance library navigation and anime root folder enforcement (95f131f)
- Translate Spanish (es) localization file (ff0904f)
- Introduce custom library support and backfill existing media (3847ecd)
- Enhance library and root folder management (d4c19b8)
- Localize and enhance library storage management (07b9ba0)
- Align spanish tranlation paraglide keys (be7a955)
- Add missing messages and project.inlang files to Docker build (0d89fb7)
- Add source-only and resolution-only scoring formats (3dbb858)
- Add playback sessions and persisted support logs (70368e9)
- Canonicalize release parsing and scoring attributes (2d62d9f)
- Support built-in profile overrides and runtime custom formats (4192fc6)
- Refine quality scoring UI and search result details (8938b25)
- Improve streaming prefetch and usenet playback resilience (5cec266)
- Add configuration backup and restore with encrypted secrets (ca0e328)
- Auto-detect latest CI candidate for releases and remove manual release notes input (bcce4a7)
- Add automated release pipeline triggered by semver tags (3143acc)
Bug Fixes
- Remove non-functional providers, fix Subf2m selectors (956fb4b)
- Graceful shutdown now stops all background services (78af871)
- Update CSRF config to use trustedOrigins (b037761)
- Gracefully handle missing TMDB API key during fresh install (4c8ab5a)
- Include data/indexers in build context (1b55211)
- Simplify .dockerignore to properly include indexers (dd28f54)
- Add .gitattributes to prevent CRLF line endings in shell scripts (ab94639)
- Remove duplicate nzbname parameter to address list type error (ccc556d)
- Prevent race condition in streaming file cleanup and optimize batch operations (69e9939)
- Remove obsolete db:push from docker entrypoint (61eef22)
- Add protocol-based client selection for usenet downloads (c29282f)
- Remove duplicate docker-compose.yml causing user confusion (9ee52bb)
- Improve auto-labeling and remove redundant template option (d0302b0)
- Resolve lint errors and improve Svelte 5 reactivity (c2969ba)
- Resolve dependabot security vulnerabilities (1c3ac6c)
- Use protocol-aware client selection for downloads (ab6e843)
- Resolve grab failures due to missing quality profile (e2dd291)
- Prevent 502 errors on series refresh through reverse proxies (754ec5e)
- Improve streaming API reliability with source fallback (822b045)
- Resolve test failures in CI (c9bc9f3)
- Resolve lint errors in test files (fe35e0d)
- Resolve TypeScript errors in test files (b8b0881)
- Use existing node user instead of creating cinephage user (69603ec)
- Prevent API key exposure in URLs and add ReDoS protection (2651cd7)
- Set keepAliveTimeout for reverse proxy compatibility (5ae1435)
- Disable JS modulepreload Link headers for nginx compatibility (70677d6)
- Improve External URL configuration UX (45e1408)
- Use IPv4 loopback for healthcheck (fa953d6)
- Add option to delete files from disk when removing content (196ffe3)
- Resolve svelte-check warnings and improve code quality (c1f2712)
- Use native arm64 runners for Docker builds (3005a58)
- Lowercase image name for Docker tags (b58d61a)
- Use json format for manifest digest extraction (e758152)
- Correct episode subtitle download path calculation (38f9abf)
- Update health tracker tests and fix linting issues (3f63ad9)
- Resolve type and formatting issues in download client components (b82c47b)
- Remove unused 'and' import from DataRepairService (d7b23fe)
- Resolve ESLint and Prettier issues in Live TV module (c41d53d)
- Prevent premature import during post-processing (edeb859)
- Add eslint-disable for reserved loading state variable (595fbfb)
- Properly fix Live TV lint issues (remove dead code) (5c0b1a9)
- Make individual provider tests non-blocking (d3258a5)
- Comprehensive rewrite with storage validation and retry logic (06e84cc)
- Make live validation tests non-blocking on provider failures (a24449f)
- Improve SABnzbd robustness, search filtering, and CI stability (5c1acca)
- Resolve lint and test failures (54a0f0d)
- Resolve ESLint errors in livetv components (e5c69a9)
- Reload NNTP manager on server changes and auto-cleanup streams (4b39000)
- Filter releases by category to prevent wrong content types (af1d5ee)
- Prevent duplicate movie file records during import (c129ca1)
- Update contrib.rocks URL to show all contributors (a7e83a5)
- Resolve lint errors after PR merge (bc3aeb3)
- Block music/soundtrack releases from being grabbed (cc3d7cf)
- Implement robust per-migration tracking with schema drift detection (fdf53aa)
- Add stream validation to enable automatic backup failover (0b336e5)
- Correct env file reference in README quick start (05e8f14)
- Enhance search input handling and NZB-Mount client behavior (4ae429a)
- Release group extraction and display in queue/history (722751e)
- Add size property to GrabRequest type (44e80cf)
- Resolve build warnings (c56a94c)
- Address lint errors (b3a9e15)
- Resolve typecheck issues (12a3530)
- Resolve lint errors and remove unused code (900fe0a)
- Use cloudflareFetch for download handler requests (f2df07f)
- Eliminate duplicate episode tokens in search queries (#72) (19d172b)
- Prefetch camoufox binaries during build and update package-lock with peer dependencies. (2515e93)
- Fetch camoufox at runtime to keep image slim (aeff04e)
- Update Camoufox installation path and cache handling (ef6894a)
- Resolve queue/import issues and scheduler status reporting (3df57b0)
- Resolve test failures and improve test reliability (e36e9fe)
- Resolve Prettier formatting issues in 6 test files (24959fc)
- Install Playwright browsers before running tests (e3ff59a)
- Add assertions before early returns in live validation tests (93c953b)
- Download Camoufox at build time to fix Docker permission issues (0453cd6)
- Standardize Docker env vars to CINEPHAGE_* prefix (608903d)
- Improve Docker permission error handling and documentation (dea78f7)
- Correct media title URLs in queue pages (9f06fcd)
- Add complete Firefox browser dependencies for Camoufox in Docker (3b271e4)
- Robust browser lifecycle management in CamoufoxManager (1c2c34e)
- Mobile responsiveness and live tv browsing improvements for better user experience. (574e29d)
- Enhance UID/GID handling and Camoufox caching (4d3e392)
- Update Docker build trigger to include dev branch (5ec5260)
- Update Camoufox installation path and cache handling (60385a3)
- Improve spinner output handling in docker-entrypoint.sh (15e433a)
- Prefetch camoufox binaries during build (7232bf4)
- Update camoufox entrypoint. (d34127f)
- Add xvfb and GLX/Mesa libraries to Dockerfile (5d07244)
- Resolve camoufox cache path for custom UIDs (Synology) (a684f39)
- Add cat parameter to Newznab API requests (14bde9f)
- Lock season/episode monitoring when series is unmonitored; enhance npm configuration and Docker setup to prevent memory leaks (ee51cd1)
- Enhance Docker build and release workflows (941ec45)
- Remove unnecessary blank line before initialization comment in hooks.server.ts (7d96ea3)
- Add profile page to resolve 404 error (6757248)
- Correct external list provider mapping and preset settings merge (7898819)
- Move all caches to /app to fix PUID/PGID permission issues (cebf4c9)
- Add missing dependencies for Camoufox browser (c89d5df)
- Fixed the syntax error in docker-entrypoint.sh by removing the empty then block and using a negated check. (5799e9a)
- Remove USER directive for non-root execution in Dockerfile (f2fa070)
- Use database naming config and improve quality data handling (0298c07)
- Bundled data sync, subtitle monitoring, and UI polish (0914f6a)
- Bundled data sync, subtitle monitoring, and UI polish (#104) (018a775)
- Resolve all ESLint errors and improve error handling (d03ca54)
- Use console.error instead of logger in browser component (7d15bb7)
- Resolve high severity vulnerability in @isaacs/brace-expansion (b8853c8)
- Align vitest dependencies to resolve npm ci failure (15a8828)
- Update /queue references to /activity to fix type check errors (1d34f85)
- Resolve lint error - rename unused getYear to _getYear (740ccb9)
- Remove dead code - unused _getYear function (a05476c)
- Add rollup platform-specific deps as optional dependencies (164f908)
- Package-lock.json lightnening CSS build issues (0ad053a)
- Correct search routing and allow manual episode auto-grab override. (edd69f0)
- Correct search routing and allow manual episode auto-grab override. (#115) (be22fba)
- Make SSE system SSR-safe (2ba6d13)
- Deduplicate episode files and optimize STRM reprobe (#117) (4ebbe5b)
- Complete library/activity SSE parity and mobile UX consistency (b706dc9)
- Separate aired-missing and unaired episode counts (0220540)
- Library detail SSE parity, activity sync, and mobile UX improvements (#125) (166ef12)
- Live TV type safety improvements (157e89e)
- Resolve ESLint errors in livetv module (d949d12)
- Apply exclude_in_library filter to search and dashboard (6210803)
- Preserve exclude_in_library filter in View All links (1a6ea31)
- Fix top rated filtering consistency (279436d)
- Remove FK constraints from legacy Live TV tables (5017d63)
- Correct indentation in schema sync and page server files (a23e17c)
- Exclude specials from TV missing counters and ignore monitor state. (7bdbd62)
- Improve episode counting logic for missing content (#126) (00c3280)
- Prevent worker slot exhaustion and, enhance
Update .strm URLs&Reprobe .strm Media Infotasks (f2619ad) - Resolve worker slot leaks and, enhance "Update .strm URLs" & "Reprobe .strm Media Info" tasks (#128) (0a24d5a)
- Always prefer torrent files over magnet links for private tracker compatibility (c6588bd)
- Keep symlinked NZB-Mount media visible after reload and library scans (3a36072)
- Send correct identifier to download clients for remove/pause/resume requests (fe26daf)
- Send correct identifier to download clients for remove/pause/resume requests (#136) (7cc0be6)
- Resolve duplicate key crash in interactive search modal (d1d3eaf)
- Improve search reliability with tvdbId support and title relevance filtering (f28ee62)
- Reconcile missing-state searchability and harden release/cooldown logic (#139) (23d5e00)
- Harden external source handling and overhaul smart list UX (#146) (39ff4cc)
- Add ID validation and year matching to prevent wrong movie results (ee152cb)
- Improve movie ID search reliability on Newznab indexers (#151) (93f5c91)
- Prevent command injection in subtitle sync service (fa11658)
- Enforce CSRF origin validation for private networks (4e4d298)
- Harden SSRF protection and proxy security for all outbound requests (8943c75)
- Apply base security headers to all routes and validate correlation IDs (b41be26)
- Redact credentials in API responses and settings UI (bec28b6)
- Restrict filesystem browse, path traversal, TMDB proxy, and query columns (177c395)
- Resolve stream replay loops on stalker portals via HLS-to-TS conversion (127e8cd)
- Add master playlist support for IPTV-Org streams and Jellyfin format detection (342b989)
- Stop library scans excluding legitimate titles and preserve streaming file paths (36de085)
- Enhance version bump logic for dev branch and add parsing for stable tags (#183) (3612257)
- Enhance validation for stable source tags in GHCR retag workflow (#188) (71e64bf)
- Add circuit breaker logic to recordConnectionError (b02e290)
- Add logging and error handling to SSE streams (f90573d)
- Respect monitorSpecials setting for Season 0 episodes (8d09083)
- Resolve type check errors and set Better Auth to respect DATA_DIR to resolve docker build failures. (5f6d92a)
- Discover page minor adjustments (b533983)
- Improve clipboard copy functionality and enhance user feedback in settings page (8257e2e)
- Resolve Better Auth v1.5 API key breaking changes (8f7719f)
- Add Cloudflare bypass and disable Vidlink provider (adcbf3c)
- Update CURRENT_SCHEMA_VERSION to 66 and adjust apikey schema migration (10658be)
- Normalize semver input for source tag in GHCR retag workflow (1f4776a)
- Enhance validation for stable source tags in GHCR retag workflow (5254a06)
- Correct formatting in API documentation examples (e8019cf)
- Add rateLimit.id column and update schema for Better Auth (ea41ed0)
- Register captcha solver in service manager for anti-bot bypass (3baad32)
- Add streamer profile filtering for internal Cinephage Library indexer (69a7552)
- Implement episode-only search strategy for missing episodes (434827b)
- Add function to remove stale queue-linked activity rows (9b46eac)
- Fall back to queue/folder release context for obfuscated filenames (e693c2c)
- Move version resolution logic to a dedicated module (d0743d7)
- Remove PUBLIC_APP_VERSION environment variable and update app version resolution logic (e87853f)
- Keep queue state consistent after import and removal (0768c5c)
- Update Dockerfile to use absolute path for entrypoint script (272567f)
- Improve service initialization logic and enhance Dockerfile for production dependencies (bd93c05)
- Keep optional runtime deps for impit native bindings (e4714dc)
- Expand dashboard history preview (6b8a7cc)
- Add missing logs route and harden error handling (a928c30)
- Update .gitignore to include secrets and remove sensitive .auth-secret file (fd888e3)
- Serialize Error instances in log capture store to prevent 500 on /settings/logs (0b72e67)
- Use correct episode file as upgrade baseline (#213) (458935b)
- Title normalization, naming cache invalidation, and log sanitization (e3ce8a4)
- Improve API key regeneration UX with confirmation, toasts, and data refresh (55bdd8a)
- Move dotenv to runtime deps and improve auth secret handling for SSR and testing environments (bc0b4a9)
- Require BETTER_AUTH_SECRET at runtime and set it in docker healthcheck test (2f8eee8)
- Normalize path handling for client paths and add tests for Windows separator support (7c4fe7d)
- Refresh plex libraries by folder path (94a9a29)
- Update media server description and enhance auth secret retrieval (f8c75b8)
- Enhance search orchestrator with title variant handling and episode pointer support for RuTracker indexer (0f24e02)
- Exclude specials from missing-episode auto-grab and UI missing counts (a1242f8)
- Preserve localized titles in interactive matching (dbc04fe)
- Add filter to exclude non-video artifacts from movie/TV searches (ef82e53)
- Enhance filtering for RuTracker season packs in TV searches (0bfd858)
- Scope RuTracker episode-only flow and prevent partial-season re-downloads in manual auto-grab (01477fa)
- Move mobile SSE status badge into header and align with nav spacing (ba81f60)
- Enhance auto-search error handling and reporting (159f782)
- Update Kinozal and RuTracker configurations for improved Cyrillic handling and search strategies (0517df2)
- Preserve Russian titles in RuTracker and Kinozal (ecb9faa)
- Resolve 15 npm security vulnerabilities (6be827f)
- Resolve CI failures and improve code quality (a9ccb93)
- Resolve CI and Docker build failures (dd97ff9)
- Resolve i18n translation type errors (4d7288e)
- Correct syntax error in IptvOrgSelector.svelte (88111b3)
- Resolve remaining i18n translation type errors (b5f00e9)
- Force paraglide regeneration and fix type assertions (d979cc6)
- Resolve German translation duplicates causing type mismatches (bbc4075)
- Remove invalid 'items' parameter from bulk operation translations (e44fa07)
- Resolve final 6 translation type errors (7f9e843)
- Remove unused mediaTitle variable in MatchFolderModal (dc0a611)
- Localize anime root-folder enforcement and warning copy (23a2761)
- Regenerate package-lock.json (6e789cf)
- Update German and English translations for consistency and clarity (f4828ca)
- Enhance download client update schema with detailed validation and optional fields (3a92b23)
- Update activity deletion logic to include move task history and adjust total deleted count (182cc7c)
- Update TMDB configuration link and enhance modal opening logic (fb3903f)
- NCore IMDB parsing and add debug logging for indexer search issues (e284865)
- Authenticate before each OpenSubtitles API request (1831e1b)
- Use rest params in mockImplementation to satisfy TypeScript (795df91)
- Resolve build-breaking dependency issues (f287278)
- Count stalled and paused downloads in active downloads stat (b72820d)
- Add missing paraglide keys for custom library UI (bb5781b)
- Resolve build-breaking dependency issues (52b101e)
- Update integrity hash and add dependencies for guessit-js (d606e86)
- Regenerate package-lock.json (82d9f2e)
- Regenerate package-lock.json (5d7727a)
- Add stalled and paused download states to dashboard load (ada9557)
- Move dotenv to core depencies, to resolve docker build failure (71ff2b0)
- Regenerate package-lock.json (660c56e)
- Move scan banner to visible location, minor ui/backend tweaks (4f88ace)
- Remove unused prop and replace mutable URL instance (78f3989)
- Import SvelteURL (b311fec)
- Set ORIGIN for better-auth base url fallback (fdd87ee)
- Improve auth and library add error reporting (2a2063e)
- Seed scoring profiles before library add inserts (d5b6dbc)
- Remove double indents (b8da813)
- Prevent legacy library backfill from reassigning root folders (bae5442)
- Exclude unaired/TBD episodes from episode counts (189520c)
- Improve homepage responsive grid layout for mobile (4b60e6e)
- Resolve Rutracker double-slash URL issue causing grab failures (c9f6963)
- Improve russian tracker search and pointer download metadata (e403675)
- Improve codebase quality and type safety (170c152)
- Restore original test file for MonitoringSearchService (e1abd50)
- Align Cinephage streaming auth and server address settings (9d06186)
- Tighten tracker search title matching and localized fallback (63c0e90)
- Normalize dolby vision naming output (d5d077e)
- Make rate-limit cleanup test-safe (9a7db72)
- Sanitize streaming indexer settings and tighten dashboard typing (e262955)
- Preserve native titles in tracker search requests (6a9738c)
- Authenticate release attestation and configure git tag identity (cbb5cfc)
- Align log export validation and test setup (cb2879f)
- Update relative imports in relocated providers.live.test.ts (17f7f1a)
- Fallback to built-in scoring formats when custom_formats table is unavailable (0558005)
- Resolve typecheck errors in refactored test files (14673ef)
- Increase timeout for scrypt-based password hashing tests on CI (e9d5b27)
- Pin action SHAs, add concurrency group, normalize action versions (beb45d4)
- Batch security dependency updates to resolve 30 Dependabot alerts (ce39a96)
- Move dotenv to dependencies and remove broken docs-deploy workflow (8fe119f)
- Move better-sqlite3 to dependencies for proper adapter-node externalization (625b16e)
- Use gh cli instead of curl for GHCR package auto-detection (1928f92)
- Use docker buildx imagetools to auto-detect CI candidate tag (de33a07)
- Align release notes labels with actual repo label names (f5d7231)
- Quote labels with colons in release notes config (cff1b42)
Refactoring
- Complete indexer system overhaul with unified YAML architecture (2d5b16d)
- Consolidate subtitle scheduling into MonitoringScheduler (bcaf612)
- Standardize services and extract shared logic (7268281)
- Decompose large components and add reusable utilities (1578fea)
- Standardize modal patterns across codebase (1d7b261)
- Overhaul scoring system with format-based architecture (ee1c1fb)
- Overhaul GitHub labels with unified prefix system (7a5a968)
- Delegate MonitoringSearchService grab to ReleaseGrabService (3ecd8d4)
- Improve streaming providers and merge all successful streams (0c45503)
- Clean up streaming providers and test infrastructure (3c794ad)
- Improve Cloudflare error handling and cleanup status tracking (d7e7384)
- Consolidate UnifiedClientItem into shared type (0623f71)
- Update indexers, quality system, and services (29d74c4)
- Modularize download client and library modals (06fd48c)
- Simplify Stalker streaming architecture (141c9e7)
- Remove Prowlarr/Jackett (Torznab) integration (d4fec53)
- Rewrite streaming infrastructure and add EPG source override (44c1d0e)
- Clean up channel edit modal layout (0e40c0c)
- Simplify Docker setup and consolidate environment config (feb611c)
- Centralize protocol-specific release filtering through handlers (247156a)
- Unify modals and responsive layouts (7b32bfa)
- Standardize responsive grids (63ff7e1)
- Remove deprecated RAR extraction feature (42bd7fb)
- Remove unused POST handler and add 70s timeout (1b8461b)
- Streamline Camoufox installation process in docker-entrypoint.sh (e1b4d01)
- Clean up code formatting in subtitle path scripts (0cce963)
- Remove unused type definitions and clean up console logging (0718a8e)
- Consolidate Live TV components and add channel sync worker (1e05753)
- Simplify IptvOrgSelector with native multi-select (0f0aa72)
- Major refactoring of unmatched files system (276dc9c)
- Extract LiveTV stream handler to shared service module (ba838bf)
- Remove dead streaming code from MonitoringSearchService (b4b35a3)
- Extract dashboard queries and add progressive rendering (b26ab99)
- Simplify stable and preview channels (152ba86)
- Align Cinephage integration and release sync (7588d5f)
- Align dashboard activity with history feed (9d7026c)
- Unify SSE streams and remove legacy plumbing (d5dead7)
- Unify logging system with structured log capture (882d8aa)
- Replace ThrottleManager with DB-backed provider throttling (a3949b1)
- Consolidate NZB-Mount functionality into SABnzbd client and update related components (2a36e04)
- Remove NZB-Mount references and consolidate to SABnzbd functionality (c34f055)
- Migrate 33 API routes to use parseBody() helpers (8a75987)
- Remove unused import from Live TV portals API (9b93335)
- Consolidate duplicate formatting utilities into format.ts (bae137e)
- Optimize MonitoringSearchService file lookups with eager loading (2b7ae64)
- Replace 'as any' with typed fixtures in searchorchestrator tests (c01867b)
- Per-suite DB isolation to enable test file parallelism (89ce9e0)
- Reduce mock fragility in MonitoringSearchService tests (fb371fb)
- Split settings (library & storage and system) pages into horizontal nav layouts with child routes (5513c35)
- Reduce mock fragility in searchOnAdd tests (200ddc6)
- Replace 'as any' with typed fixtures in UpgradeableSpecification tests (8b01dd6)
- Replace 'as any' with typed fixtures in CutoffUnmetSpecification tests (ad9c8fa)
- Remove 'as any' from rating-buffer tests (acc7ebb)
- Remove 'as any' from OpenSubtitlesProvider tests (e212a57)
- Remove 'as any' from LanguageProfileService tests (c15051d)
- Remove 'as any' from parsers tests (7819479)
- Remove 'as any' from RenamePreviewService tests (4760100)
- Remove 'as any' from TorrentProtocolHandler tests (3b1b5b1)
- Remove 'as any' from M3uProvider tests (af1bc47)
- Remove 'as any' from manual-import-service tests (3346eba)
- Remove 'as any' from sse tests (9cf22cc)
- Remove 'as any' from RequestBuilder tests (fe50f58)
- Remove 'as any' from MonitoringScheduler tests (f6944fa)
Performance
- Streamline live tests and limit Videasy fallback (6fbd1be)
Styling
- Format NZBGet client and docker files (d55f2e5)
- Format docs and components (e3148f4)
- Format test files (e0dadfa)
- Format docker-compose and production docs (0e0b9f7)
- Fix formatting and remove unused import (fef3f2d)
- Fix formatting in extractExternalIds tests (7e755e4)
- Run prettier formatting (860dc37)
- Fix lint errors (8c44784)
- Improve smart list preview panel UI (d62c72a)
- Fix all lint errors (b4d1958)
- Fix unused vars in StalkerPortalClient to pass lint (df48e78)
- Use SvelteURLSearchParams instead of URLSearchParams (9ce9714)
- Format merged plex integration files (28f4311)
- Fix Prettier formatting in OpenSubtitlesProvider test (3834fc1)
Documentation
- Update documentation for indexer system overhaul (6da5e8e)
- Update documentation for indexer and streaming improvements (6520efc)
- Document external ID matching in folder names (f0eda27)
- Update indexer count to reflect 4 supported public indexers (a940471)
- Add prominent active development warnings to README (6d3b43d)
- Remove last commit badge from README (f1cbd76)
- Add contributors section to README (1845708)
- Add Discord server link and badge (c40dc1b)
- Fix Discord badge server ID (50251bb)
- Comprehensive documentation overhaul and reorganization (453abc2)
- Overhaul README and add docker-compose.yml (ae45544)
- Update Docker documentation for pre-built images (9f2a663)
- Update README to reflect current features (ece448b)
- Add legal notice and clarify IPTV support limitations (00589b2)
- Clarify IPTV wording - can discover portals, still don't host (71a60df)
- Replace contrib.rocks with GitHub live contributors image (87c8db8)
- Restore contrib.rocks for contributors with avatars (2cd78ce)
- Comprehensive documentation overhaul (bbc04e0)
- Enhance documentation and migration processes for Cinephage (e5f7b1c)
- Update troubleshooting steps for Docker migration (8f30abe)
- Update docs/advanced/environment-variables.md (75f0abe)
- Update media and downloads volume paths in CHANGELOG.md (8595ff1)
- Update FAQ question for port configuration (7ba9cad)
- Enhance documentation and migration processes for Cinephage (#100) (2b18553)
- Document schema version 70 in migration header (ba665d2)
- Migrate to Docusaurus with comprehensive documentation (7cbc8e5)
- Update BETTER_AUTH_SECRET generation instructions and add to environment variable references (893e57c)
- Rework README with bare metal install, systemd, and updated screenshots (b6434b7)
- Clarify error id messaging (240cd52)
- Update AGENTS.md with improved test patterns and conventions (00f9dcf)
Testing
- Add comprehensive tests for extractExternalIds (07ca80e)
- Make unstable subtitle providers opt-in (d688314)
- Add verbose output and additional cutoff tests (f95c05d)
- Update rate-limit test for language field (c83f801)
- Align upgradeable spec fixtures with real format ids (6d1fe85)
- Isolate monitoring decision scoring from runtime db (e54db9e)
- Isolate pure scoring tests from runtime db (cfabd4c)
Miscellaneous
- Format code with prettier (fa790c8)
- Overhaul issue templates, PR template, and add community config (12c992f)
- Bump the minor-and-patch group with 7 updates (#10) (fbd3800)
- Bump svelte from 5.45.5 to 5.46.0 in the svelte group (#11) (ea0b914)
- Bump the tailwind group with 3 updates (#12) (c083ffc)
- Bump drizzle-orm from 0.44.7 to 0.45.1 in the drizzle group (#13) (07b013b)
- Bump @types/node from 24.10.1 to 25.0.2 (#14) (084130d)
- Bump @eslint/compat from 1.4.1 to 2.0.0 (#15) (a79a862)
- Bump the minor-and-patch group with 3 updates (#16) (79ee181)
- Bump actions/github-script from 7 to 8 (dcee131)
- Bump the minor-and-patch group with 4 updates (99745d5)
- Consolidate test scripts and improve bug report template (a2ee8f2)
- Code quality and formatting improvements (c96e5c6)
- Bump actions/checkout from 4 to 6 (c24cfa7)
- Bump actions/setup-node from 4 to 6 (323611f)
- Bump actions/attest-build-provenance from 2 to 3 (64a3699)
- Bump lucide-svelte in the minor-and-patch group (b3edc72)
- Bump svelte-check from 4.3.4 to 4.3.5 in the svelte group (1047ad8)
- Bump actions/checkout from 4 to 6 (f509c66)
- Bump actions/attest-build-provenance from 2 to 3 (f5465aa)
- Bump typescript-eslint in the minor-and-patch group (1cf2b88)
- Bump svelte from 5.46.0 to 5.46.1 in the svelte group (a153278)
- Add infrastructure for streaming and extraction (db33505)
- Bump the minor-and-patch group across 1 directory with 3 updates (fc31c0a)
- Bump globals from 16.5.0 to 17.0.0 (bae8778)
- Bump SethCohen/github-releases-to-discord (4dbf2c0)
- Bump the minor-and-patch group with 5 updates (8eeff2a)
- Bump the svelte group with 2 updates (f3a0ca4)
- Revert package-lock.json change (cb8b855)
- Run Prettier on download client components (433bf9f)
- Sync ReleaseParser test with main (dd2b064)
- Bump undici from 7.16.0 to 7.18.2 (0906019)
- Remove .opencode directory (2dc31fb)
- Remove obsolete 1337x indexer references (f8aec67)
- Remove 1337x test scripts and update indexer tests (a46c886)
- Fix security vulnerabilities in devalue (5283210)
- Remove test-issue-72-integration.ts script (62781b6)
- Apply dependabot updates (7a4ed39)
- Bump @types/node (860d314)
- Bump softprops/action-gh-release from 1 to 2 (#92) (bcec97a)
- Bump the svelte group with 3 updates (#94) (503dc72)
- Bump the minor-and-patch group with 8 updates (3495dac)
- Bump fast-xml-parser from 5.3.3 to 5.3.4 (#99) (0638a6c)
- Bump daisyui from 5.5.14 to 5.5.16 in the tailwind group (#103) (18737c8)
- Bump the svelte group with 2 updates (#102) (622743e)
- Bump the minor-and-patch group with 4 updates (#101) (4a9e3fd)
- Bump @types/node (b32d238)
- Bump the minor-and-patch group with 4 updates (#120) (a4df28b)
- Bump the svelte group with 2 updates (#121) (eef3e63)
- Bump daisyui from 5.5.16 to 5.5.18 in the tailwind group (#122) (733d28b)
- Upgrade eslint to v10 (1cb3cb1)
- Bump the minor-and-patch group with 6 updates (#131) (e49605f)
- Bump the svelte group with 5 updates (#132) (0d08e81)
- Bump the svelte group with 3 updates (#148) (b60f327)
- Bump the tailwind group with 3 updates (#149) (0704209)
- Bump the minor-and-patch group with 8 updates (#147) (c434569)
- Bump devalue from 5.6.2 to 5.6.3 (#143) (5916f5c)
- Bump eslint from 9.39.2 to 10.0.1 (#150) (4c9a5d9)
- Pin GitHub Actions to commit SHAs (0e9636a)
- Bump svelte from 5.53.2 to 5.53.5 (f15235b)
- Bump fast-xml-parser from 5.3.7 to 5.3.8 (79bf886)
- Bump rollup from 4.53.5 to 4.59.0 (bcb7c77)
- Bump minimatch from 9.0.6 to 9.0.9 (87d5490)
- Bump docker/metadata-action from 5.5.1 to 5.10.0 (#171) (bf7374f)
- Bump docker/login-action from 3.3.0 to 3.7.0 (#174) (4da4de3)
- Bump the minor-and-patch group with 6 updates (#176) (84dbee4)
- Bump the tailwind group with 2 updates (#178) (be84981)
- Bump docker/setup-buildx-action from 3.7.1 to 3.12.0 (#172) (bfeb2cc)
- Bump actions/attest-build-provenance (#173) (ca4914c)
- Bump the svelte group with 4 updates (#177) (023f181)
- Bump docker/build-push-action from 6.9.0 to 6.19.2 (#175) (b4897f8)
- Bump vite from 7.3.1 to 8.0.3 (9d10c90)
- Bump typescript from 5.9.3 to 6.0.2 (b983706)
- Bump drizzle-orm from 0.45.1 to 0.45.2 in the drizzle group (030f6f3)
- Bump the tailwind group with 2 updates (9069b55)
- Update package-lock.json after dependabot merges (4afb235)
- Remove obsolete troubleshooting scripts (b2c939d)
- Remove deprecated Cloudflare streaming fix and results documentation (6587a3a)
- Remove documentation (moved to separate repo) (f5b3c18)
- Bump flatted from 3.3.3 to 3.4.2 (85a2d37)
- Bump devalue from 5.6.3 to 5.6.4 (c5d8411)
- Bump fast-xml-parser from 5.4.1 to 5.5.7 (3f7cb4b)
- Bump minor-and-patch group (better-sqlite3, camoufox-js, eslint, lucide-svelte, and 7 more) (4cbf72e)
- Bump tailwind group (@tailwindcss/vite 4.2.2, tailwindcss 4.2.2) (209adc5)
- Bump svelte group (@sveltejs/kit 2.55.0, svelte 5.53.12, svelte-check 4.4.5) (ce8accc)
- Bump actions/setup-node from 6.2.0 to 6.3.0 (8d8e52e)
- Bump docker/login-action from v3 to v4 (f0db9a2)
- Bump docker/metadata-action from v5 to v6 (add62ec)
- Bump docker/build-push-action from v6 to v7 (2b2b041)
- Bump actions/attest-build-provenance from v3 to v4.1.0 (6135e2c)
- Update ignore files for i18n and test utilities (341ebf7)
- Remove dead code and documentation (90d095a)
- Bump lucide-svelte from 0.575.0 to 1.0.1 (70b2e53)
- Bump the svelte group with 4 updates (0f58c11)
- Bump the minor-and-patch group with 16 updates (6caaacc)
- Bump docker/setup-buildx-action from 3.12.0 to 4.0.0 (75091ae)
- Bump brace-expansion from 5.0.3 to 5.0.5 (f24bc6d)
- Bump picomatch from 4.0.3 to 4.0.4 (a965a10)
- Bump undici from 7.19.1 to 7.24.6 (fa78ab9)
- Trigger CI (50cc375)
- Update package.json versions to match merged PRs (c77d488)
- Rename main container channel from edge to main and decouple release provenance (9e0a025)
- Improve GitHub release note categorization (86a67a7)
- Remove dead test files (demo.spec.ts, page.svelte.spec.ts) (e09c82b)
- Isolate live network tests behind LIVE_TESTS env flag (38add03)
- Bump the minor-and-patch group across 1 directory with 3 updates (cbc946c)
- Bump docker/login-action from 3.7.0 to 4.1.0 (aae24bb)
- Bump docker/build-push-action from 6.19.2 to 7.1.0 (4359200)
- Remove release workflow (c16331a)
- Release v0.1.0 (943f494)
Bot
- Update nix dependencies (3f5096e)
Nix
- Make user and group actually dynamic (c21e3bf)
Ci
- Add concurrency control to Docker Build workflow (6d2e128)
- Add Discord release announcement workflow (8d20eba)
- Replace nix-update workflow with update-flake-lock action (9ea17a0)
- Remove old nix-update workflow (a1f540c)
- Centralize Docker build metadata, improve tagging, and add changelog categorization (#181) (4ee8ee7)
- Update release workflows for main/dev/experimental channels (9998987)
- Add coverage reporting and artifact upload to CI pipeline (83166cc)
Security
- Add authentication check to STRM update endpoint (88ec76a)
Routine maintenance release for Cinephage.
Full changelog
Full Changelog: https://github.com/MoldyTaint/Cinephage/compare/v0.1.3...v0.2.0
- App state moved to /config with auto-migration
- Download clients: NZBGet, SABnzbd, rTorrent, Transmission, NZB-Mount with STRM/Symlink support
- Torznab protocol support for indexers
- Import wizard, activity history management, and SSE events