Releases: Vateron-Media/XC_VM
Releases · Vateron-Media/XC_VM
Release list
v2.3.6
🚀 XC_VM v2.3.6
✨ Improvements
- Added automatic Redis health monitoring with auto-restart when the service becomes unavailable
- Introduced ServerDiagnoseCommand for diagnosing silent MAIN and Load Balancer servers
- Added automatic proxy package installation and update through the new XC_VM_Proxy release mechanism
- Improved player MIME type detection for better compatibility across devices and browsers
- Added configurable pagination options to Episodes Mass Edit
- Enhanced live stream monitoring with real-time encoding progress
- Added scripts for generating and testing problematic DTS / AC3 audio streams
- Improved client log diagnostics by exposing detailed LINE_CREATE_FAIL database errors
🐛 Bug Fixes
- Fixed daemon monitoring so
cron:serverscorrectly detects and restarts stopped services - Fixed Redis configuration synchronization after password rotation
- Fixed watchdog behavior during temporary database outages
- Fixed daemon restart logic by properly releasing process locks before respawning
- Fixed Server Diagnose heartbeat detection to reflect the actual service state
- Fixed Redis-related failures in admin panels and cron jobs
- Fixed handling of rotated Redis credentials stored in
config.enc - Fixed proxy updater to distinguish between GitHub outages and missing releases
- Fixed duration display in TableController
- Fixed VOD action handling inside the Admin API
- Fixed database.sql packaging by removing Git LFS dependency
- Fixed various UI issues and improved uptime formatting
🔧 Maintenance
- Updated server diagnostics documentation
- Added documentation describing FFmpeg build provenance and codec configuration
- Updated CLI documentation and fixed broken documentation links
- Updated proxy distribution roadmap documentation
- Removed
proxy.tar.gzfrom Git LFS - Continued internal refactoring and code cleanup
Full Changelog: 2.3.5...2.3.6
v2.3.5
🚀 XC_VM v2.3.5
✨ New Features
- Added a manual update check for installed modules directly from the admin interface.
- Added a server update guide and integrated it into the update mechanism.
- Added a draft Ministra-to-module migration plan to the project documentation.
🐛 Bug Fixes
- Improved PortalHandler file resolution and added clear error responses when required modules are missing.
- Improved diagnostics for
LINE_CREATE_FAILby exposing underlying database errors during stream connection creation. - Improved reseller workflows by handling optional POST parameters and package output formats more safely.
- Fixed file cache creation when temporary cache directories are owned by
root. - Improved network detection by handling invalid cached network data.
- Hardened array access across multiple admin views and forms to prevent warnings and exceptions.
- Improved TMDB stability with null-safe entity handling and duplicate library protection.
- Improved Player API by skipping missing stream cache files and handling null movie properties.
- Improved streaming stability by validating probe URLs, transcoding metadata, and playlist cache race conditions.
- Automatically create the image cache directory when required.
- Fixed cron cleanup logic to safely handle missing connection directories.
- Allowed
Authorization::check()to work correctly with nullable entity IDs. - Updated diagnostics log submission to use the correct secure endpoint.
- Forced browser cache revalidation for JavaScript and CSS assets after updates.
- Fixed player URL redirects to ensure correct static asset loading.
♻️ Refactoring
- Removed obsolete Watch/Plex authentication cases, controllers, and views.
- Removed deprecated database exemptions from the architecture test suite.
- Improved TMDB title normalization by stripping unnecessary tokens more accurately.
📚 Documentation
- Added a server update guide.
- Added documentation outlining the future removal of Ministra as a built-in component in favor of a standalone module.
🔧 Maintenance
- Continued improvements to platform stability, diagnostics, and update reliability.
v2.3.4
🚀 XC_VM v2.3.4
✨ New Features
- Integrated the TMDB module directly into the core, eliminating duplicated standard-set copies and simplifying project architecture.
🐛 Bug Fixes
- Improved player stability by handling potential
nullvalues in movie properties. - Enhanced image URL validation in the player.
- Improved resilience against transient database and API failures.
- Switched internal error reporting to use secure HTTPS communication.
- Improved backup restoration by validating migration arguments and handling
db_restoreresults correctly.
♻️ Refactoring
- Extracted player utility functions from the legacy bootstrap to improve code organization.
- Continued modernization of the codebase by moving TMDB functionality into the core architecture.
🔧 Maintenance
- Improved internal reliability and maintainability across player, backup, and core services.
Full Changelog: 2.3.3...2.3.4
v2.3.3
🚀 XC_VM v2.3.3
✨ New Features
- Added secure provisioning of
config.encfor Load Balancer nodes during installation. - Enhanced the module system with database schema management via migrations, uninstall support, dependency validation, and improved event decoupling.
- Replaced the MaxMindDB PHP extension with a pure PHP Composer implementation for easier deployment.
- Added binary version and operating system information to the Settings page.
- Added a test stream generator for HTTP-served MP4 streams.
- Added
QuietThreadingHTTPServerto improve stream server stability and gracefully handle client disconnects. - Improved Load Balancer installation by resetting binary ownership before PHP-FPM startup.
🐛 Bug Fixes
- Improved module dependency handling and diagnostics during module loading.
- Fixed EPG cache cleanup to remove only orphaned cache files from previous runs.
- Fixed module manager calling an undefined method when listing installed modules.
- Fixed bootstrap initialization when optional domain classes are unavailable.
- Improved GitHub update reliability by increasing API and connection timeouts.
- Restored correct ownership of
config.encafter services are started as root. - Fixed ownership of
install_idandconfig.encduring Load Balancer provisioning. - Fixed systemd service description formatting in
ServerInstallCommand. - Optimized FFmpeg command generation for improved streaming performance.
- Fixed integer handling in
BruteforceGuardflood protection settings. - Corrected backup and migration documentation examples.
♻️ Refactoring
- Centralized domain database access using the new
DatabaseAwaretrait. - Introduced a dedicated database wiring layer for domain services.
- Removed unused
Databaseimports across multiple services. - Refactored multiple components to improve readability, maintainability, and internal architecture.
📚 Documentation
- Added a comprehensive CLAUDE.md project guide.
- Updated backup and migration documentation with corrected command examples.
🔧 Maintenance
- Improved installer reliability and provisioning workflow.
- Continued internal code cleanup and architectural improvements.
Full Changelog: 2.3.2...2.3.3
v2.3.2
🚀 XC_VM v2.3.2
✨ New Features
- Added secure provisioning of
config.encfor Load Balancer nodes during installation. - Enhanced the module system with database schema management via migrations, uninstall support, dependency validation, and improved event decoupling.
- Replaced the MaxMindDB PHP extension with a pure PHP Composer implementation for easier deployment.
- Added binary version and operating system information to the Settings page.
- Added a test stream generator for HTTP-served MP4 streams.
- Added
QuietThreadingHTTPServerto improve stream server stability and gracefully handle client disconnects. - Improved Load Balancer installation by resetting binary ownership before PHP-FPM startup.
🐛 Bug Fixes
- Improved module dependency handling and diagnostics during module loading.
- Fixed EPG cache cleanup to remove only orphaned cache files from previous runs.
- Fixed module manager calling an undefined method when listing installed modules.
- Fixed bootstrap initialization when optional domain classes are unavailable.
- Improved GitHub update reliability by increasing API and connection timeouts.
- Restored correct ownership of
config.encafter services are started as root. - Fixed ownership of
install_idandconfig.encduring Load Balancer provisioning. - Fixed systemd service description formatting in
ServerInstallCommand. - Optimized FFmpeg command generation for improved streaming performance.
- Fixed integer handling in
BruteforceGuardflood protection settings. - Corrected backup and migration documentation examples.
♻️ Refactoring
- Centralized domain database access using the new
DatabaseAwaretrait. - Introduced a dedicated database wiring layer for domain services.
- Removed unused
Databaseimports across multiple services. - Refactored multiple components to improve readability, maintainability, and internal architecture.
📚 Documentation
- Added a comprehensive CLAUDE.md project guide.
- Updated backup and migration documentation with corrected command examples.
🔧 Maintenance
- Improved installer reliability and provisioning workflow.
- Continued internal code cleanup and architectural improvements.
v2.3.1
🚀 XC_VM v2.3.1
✨ Major Changes
- Migrated to Composer PSR-4 autoloading, replacing the legacy
XC_Autoloaderwith a modern standards-compliant architecture. - Integrated PHPStan into the CI pipeline with a frozen baseline, resolving hundreds of static analysis and type-related issues.
- Production-only release builds, excluding development dependencies to significantly reduce release size.
- Continued modernization of the Core / Domain / Infrastructure architecture with dependency injection, EventDispatcher integration, enums, and stricter typing.
🚀 New Features
- Added automatic generation of a unique self-signed TLS certificate during installation.
- Improved the module system with versioning, migrations,
BaseModule, and#[ListensTo]support. - Added automatic download of GeoLite2 City, Country, and ASN databases during installation and updates.
- Added module license renewal support.
- Improved HLS startup by optimizing initial segment processing.
- Added missing Load Balancer admin routes.
🛠 Bug Fixes
- Fixed numerous PSR-4 autoloading issues, including namespaces, imports, and path inconsistencies.
- Fixed
Public/vspublic/path issues in nginx configurations and repository metadata. - Removed unnecessary closing PHP tags across the codebase.
- Fixed TMDB integration and related link handling.
- Improved streaming stability, including initial segment timing and loopback routing.
- Resolved hundreds of PHPStan findings involving undefined variables, incorrect types, dead code, and other runtime issues.
- Improved installer reliability with better error handling and binary download retry logic.
♻️ Refactoring
- Removed obsolete utilities and legacy development tools.
- Cleaned up imports and namespaces using PHP-CS-Fixer.
- Expanded and updated project documentation, including migration guides and English DocBlocks.
- Improved GitHub workflows and release build process.
- Removed duplicated code and remaining legacy components.
🔧 Maintenance
- Updated project dependencies, including Mobile Detect, PhpM3u8, M3uParser, and others.
- Improved CI/CD reliability and security.
- Updated the Pull Request template.
- Removed unnecessary development tools from production releases.
📚 Documentation
- Added a comprehensive Migration Guide.
- Expanded English documentation throughout the project.
- Updated architecture documentation to reflect the current project structure.
- feat(geoip): fetch GeoLite2 (City/Country/ASN) on install and update by @Divarion-D in #126
- Cdn engineer by @hserver71 in #128
- Chore/phpstan integration by @Divarion-D in #129
- Chore/phpstan ci by @Divarion-D in #130
- Chore/psr4 migration by @Divarion-D in #133
- fix(lfs): correct path case for login-bg.mp4 in .gitattributes by @Divarion-D with @Copilot in #134
New Contributors
- @hserver71 made their first contribution in #128
- @Divarion-D with @Copilot made their first contribution in #134
Full Changelog: 2.2.2...2.3.1
v2.2.2
🚀 XC_VM v2.2.2
✨ New Features
- Added video duration display in TableController and episode views
- Added migration support for
delete_missingflag in watch_folders andsentflag in panel_logs - Enhanced DiagnosticsService with panel_logs sent tracking and improved log submission logic
- Added Owner ID and Credits fields to user forms with UI improvements
- Added cleanup logic for missing streams in watch module (
delete_missingsupport)
🐛 Bug Fixes
- Fixed multiple TypeErrors by ensuring arrays are properly initialized across modules
- Fixed GroupEditController ensuring
$rGroupIDsis always an array - Fixed PortalHandler category handling in audioclub, IPTV, VOD, and series
- Fixed QueryHelper handling of quoted defaults and numeric coercion
- Fixed PlaylistGenerator file read errors and normalized channel data keys
- Fixed TableController button HTML rendering for closed status
- Fixed watch module forced mode behavior
- Fixed stream_view.php progress button rendering logic
- Fixed missing curl package in installer dependencies
🔄 Refactoring
- Removed obsolete modules:
- magscan module
- fingerprint module
- theft detection module (empty legacy module)
- Streamlined RTMP stream monitoring and connection handling logic
- Improved module documentation after cleanup changes
📚 Documentation
- Synced Russian documentation version
- Updated docs cleanup and backlog sections
- Improved contributor statistics and security fix tracking in CONTRIBUTORS.md
🔧 Maintenance
- fix(nginx): reimplement
mutli_accept on;by @brettpetch in #115 - docs(backlog): Add backlogged documentation by @brettpetch in #116
- Updated installer package list
Full Changelog: 2.2.1...2.2.2
v2.2.1
🚀 XC_VM v2.2.1
✨ New Features
- Added binary version tracking and automatic update mechanism
- Added footer layout rendering support for multiple reseller views
- Added new server installation command and improved proxy installation flow
- Improved nginx configuration by switching to reuseport for better scalability and connection handling
🐛 Bug Fixes
- Fixed truncated recordings and archive scheduling issues
- Fixed Plex import and force scan stability issues
- Updated
common.jstitle assignment logic for consistency - Improved POST request handling and referer management
🔐 Security
- Applied fixes related to CVE-2026-42945
- Hardened nginx configuration and removed deprecated connection handling directives
🔄 Refactoring
- Removed deprecated nginx directives:
accept_mutexmulti_accept
- Simplified request handling logic and internal routing behavior
🔧 Maintenance
New Contributors
- @brettpetch made their first contribution in #112
Full Changelog: 2.2.0...2.2.1
V2.2.0
🚀 XC_VM v2.2.0
✨ New Features
- Enhanced module manifest structure and module loader functionality
- Added daemon lock mechanism for cache, queue, signals, and watchdog commands
- Introduced dynamic NavbarItem & NavbarRegistry system for flexible navigation management
- Added module web boot support and migrated Watch/Plex routes
- Improved routing, streaming gateway stability, nginx integration, and service handling
- Added browser STB emulation documentation for Ministra
🔄 Refactoring
- Migrated table routing from
AdminTableControllertoTableController - Decoupled legacy Ministra URLs from
wwwsymlinks - Improved routing architecture and module integration flow
🐛 Bug Fixes
- Fixed missing global variables in Plex and Watch controllers
- Improved MD5 hash verification logic in
BalancerCommand
📚 Documentation
- Added documentation for the dynamic navigation menu system
- Added commit message format and contribution guidelines
🔧 Maintenance
- Merged PR #109 — Dynamic Navbar System
Full Changelog: 2.1.5...2.2.0
2.1.5
🚀 XC_VM v2.1.5
✨ New Features
- Added auto-assign EPG to live streams
- Added MaxMind GeoIP updater with weekly cron integration
⚡ Performance
- Reduced database connection churn in streaming and improved DB lifecycle
- Optimized cron jobs by throttling heavy checks and increasing queue loop default
- Eliminated spurious TS disconnects by updating
hls_last_readduring active streaming sessions
🐛 Bug Fixes
- Fixed LLOD v2 FFmpeg startup delay for on-demand streams
- Improved URL construction in ImageResizeService
- Fixed multiple import-related issues
Full Changelog: 2.1.4...2.1.5