- **New Features**
- Added configurable QoS snapshot compaction to periodically reclaim storage from expired snapshots.
- Compaction runs daily by default and can be disabled by setting the interval to `0`.
- QoS config hot-reload now recognizes compaction interval changes.
- Older saved snapshot checkpoints remain compatible with the new setting.
- **Documentation**
- Updated configuration examples and reverse-proxy QoS documentation to include `compaction_interval_secs`, its default, and disable behavior.
* **New Features**
* Added a STRM export option to control whether generated folder/file names use media metadata or the processed title.
* STRM naming now prefers the processed title by default; enabling the option switches to metadata-derived names.
* Added a UI chip/tag and editor control for the setting.
* **Documentation**
* Updated STRM configuration docs with the new option, its default, and its effect.
* Added localization text for the setting in supported languages.
* **Tests**
* Added/updated tests to verify filename behavior for videos and series with and without the option.
* **New Features**
* Catch-up streams can now auto-detect whether to serve direct video or an HLS playlist.
* Added archive-aware HLS session/identity handling and improved upstream user-agent propagation for manifests.
* Enhanced M3U timeshift/archiving, including nested handling and native Flussonic archive support; Short EPG can advertise archive availability.
* **Bug Fixes**
* Provider session headers now persist across retries and deferred-open scenarios.
* Legacy HLS routing is now cache-aware; seek detection improvements.
* Stalker errors now better redact sensitive URL details.
* Fix: Preserve VOD client range requests
* **Tests**
* Expanded coverage for probing, archive/timeshift resolution, header overlay rules, and related routing.
* **New Features**
* Added **Force MPEG-TS** / `disable_hls_streaming` for Xtream live streams, rewriting live `.m3u8` requests to `.ts`.
* Added UI controls and option indicators, with localized labels in English, Arabic, and Russian.
* **Documentation**
* Clarified MPEG-TS behavior and added an Xtream example configuration.
* **Bug Fixes**
* Improved live-stream playback routing/extension handling and related permission-failure responses.
* Refined provider allocation and grace-period handling for more consistent connection admission.
* **New Features**
* Added configurable mapping stages for `mapping.yml`: `processing` (default) and `after_epg`.
* `after_epg` mappings now run after EPG enrichment and can react to enriched EPG fields.
* **Bug Fixes**
* Stage-aware playlist mapping: if no mappings match, the source is left unconsumed.
* Mapping directory merges now reject conflicting stages for the same mapping id and report both files clearly.
* **Documentation**
* Updated mapping DSL and target `processing_order` docs to describe stage timing and guarantees.
* **Tests**
* Added coverage for stage-restricted mapping behavior, merge conflicts, and AfterEpg timing.
Bug Fixes
- Input forms now consistently update when switching between configured sources.
- Improved filter matching for captions/titles and more accurate type handling for live/video/series (including series-info variants).
New Features
- Mapping DSL now supports reading @input and @type as metadata sources, while rejecting assignments to them.
- Regex capture results are now more consistently exposed across captures (by index and name).
Tests
- Added WASM browser coverage for input switching and updated coverage for filter/mapping behavior.
Documentation
- Updated mapping DSL documentation and changelog to reflect @input/@type read-only behavior and capture access rules.
New Features
- Added first-class Stalker/Ministra portal support, including live, VOD, series, playback-link refresh, and bulk EPG ingestion.
- Added Stalker configuration and batch/CSV support in the Web UI.
- Added playlist preview and playback handling for Stalker inputs, with support for partial refreshes.
* feat: key shared hls sessions by origin id
* feat: support hls content encoding
* fix: coderabbitai findings
* Fix: Custom headers are lost on provider://
In the manual redirect path, the abstract provider:// URL is compared against the resolved HTTP URL.
This causes the request to be marked as "scrubbed" before the first real redirect even occurs, stripping out headers like X-API-Key.
Shared HLS cache session feature and aligns the runtime, cache, provisioning, recovery, custom-response, and documentation paths with the new shared-session model.
* Fixed sanitizing url scheme batch and provder
* local date in Stream history
* Fixed EPG programme time display to render in local timezone for improved readability.
* Improved stream history date range filtering to accurately use local date boundaries.
* Enhanced credential sanitization for stream URLs to properly mask sensitive information.
* Fix EPG path selection for mixed Xtream/M3U targets
* Fix EPG selection and complete Xtream series_info for input/custom requests
* Add configurable interner GC tuning
* Fix: Copy url in frontend does not resolve provider://
* Fix: Filter editor on demand validation
* Fix: redirect to login screen if auto logout happens
* Sorce ordinal by category and channel index
* Parsing UserApiRequest from request body or query
* CSS stylings
* media tools refactoring
* xtream info parsing now number/string fields
* fix: Scheduler preserve forced_targets across config reloads.
hot reload could cause loosing scheduler task targets.
warn logs for:
- process_source: warns when all inputs are disabled for given targets
- process_sources: warns when no sources were processed at all
* Fix: Logger initialization
* Fix: TCP USER TIMEOUT for linux. If a client disrupts the connection, the tcp layer will hold it approx for 5-15 minutes. With this setting we can close in 30 seconds under linux
* Fix HLS session handling and disable retry for adaptive segment requests
* Resolve / probe vod task uses last modified date
* Resolve expiration date in input form
* fixed m3u parsing
* fixed wasm opt for frontend build