Change Log

  • Oct 02, 2026 (v4.8.7)
    • Added Host Connectivity & Stability Telemetry system (includes/classes/Helper/StreamTelemetry.php) with RAM-to-DB periodic flushing (host_telemetry_{loadBalancerId}_{type}_{vHost}) for MySQL B-Tree index prefix range queries.
    • Added Browser client-side telemetry JavaScript library (public/assets/js/telemetry-v1.0.0.js / .min.js) with automatic global media capturing (autoInit) for dynamic player engines (Plyr, JWPlayer, HLS.js, Shaka, Novage P2P).
    • Added Frontend telemetry API endpoint (includes/views/frontend/telemetry.php) supporting CORS and non-blocking navigator.sendBeacon() browser reporting.
    • Added Horizontal Host Stability Rank ribbon bar with hover tooltips and host logos on the Video List page (includes/templates/backend/videos/list.twig).
    • Added Cache Tag Versioning system (getTagVersion, invalidateTag, invalidateTags, createVersionedKey) to InstanceCache to eliminate Phpfastcache tag index bloat in Redis.
    • Added Dynamic and configurable database cache timeouts (DB_CACHE_TIMEOUT_MIN, DB_CACHE_TIMEOUT_SETTINGS, DB_CACHE_TIMEOUT_VIDEOS) in config.php and ModelHelper::getCacheTimeout().
    • Added AsyncHelper utility (includes/classes/Helper/AsyncHelper.php) with Redis single-flight locking (acquireLock, releaseLock, markDone, isProcessing) and asynchronous background process spawning (spawnBgGet) to eliminate concurrency stampedes and blocking waits.
    • Added Targeted single-video background processing mode (--host <host> --host_id <id> [--dl 0|1]) in includes/bg_get.php.
    • Added Client-driven fast-polling support in API.php returning {"status":"processing","retry_in":800} and player-v4.7.1.js with animated status loader and progressive retry backoff.
    • Added Slug-based and alternative hash-based direct streaming URL routing (direct/mp4/{slug}, direct/hls/{slug}, direct/mpd/{slug}) in includes/views/frontend/direct.php and includes/views/backend/videos/edit.php.
    • Added Optional Redis instance injection support to CircuitBreaker static methods (isAvailable, recordFailure, recordSuccess) for compatibility with long-running application runtimes (Swoole, RoadRunner, background workers).
    • Added Circuit Breaker protection to Maxmind::getMaxmindIPInfo to prevent repeated lookups and fallback smoothly when IP info is missing or unavailable.
    • Added Modular script-bundle widget templates default-frontend-scripts.twig and default-backend-scripts.twig (includes/templates/widget/) extracted from inline footer <script> lists, enabling per-theme overriding of frontend and backend script bundles.
    • Added default-header-scripts.twig widget template (includes/templates/widget/) extracting inline header <script> bootstrap variables (jQuery, adminURL, baseURL, vidHosts, themeColors) from header.twig into a reusable, per-theme overridable bundle.
    • Improved Enhanced local subtitle processing (includes/views/frontend/subtitle.php) to directly stream or serve cached WebVTT conversions for local uploads without external HTTP proxy overhead.
    • Improved Enhanced Parser.php to support custom poster query parameter (poster) and prioritize pre-set metadata while preserving existing video title and poster fallbacks.
    • Improved Migrated Ajax file upload handling across controllers (PublicAjax, VideoAjax, VideoImportAjax, VideoSubtitleAjax, SubtitleManager) to PSR-7 UploadedFileInterface.
    • Improved Enhanced Stream::stream routing to conditionally utilize CURLOPT_FILE with php://output on non-Windows platforms when temporary chunk caching (fpChunk) is not active.
    • Improved Streamlined InstanceCache driver connections (includes/classes/Service/InstanceCache.php) to exclusively support Redis, Predis, and Files (Filesystem) drivers, eliminating legacy drivers (Memcached, Memcache, APCu, SQLite) for optimized high-concurrency performance.
    • Improved Bumped player JavaScript runtime to v4.7.1 (public/assets/js/player-v4.7.1.js / .min.js) and updated player CSS (public/assets/css/player-v3.4.0.css / .min.css).
    • Improved Refactored video CSV import: moved parsing to frontend using PapaParse (public/assets/vendor/papaparse/5.4.1/papaparse.min.js), batching records into JSON payloads (up to 10 rows per batch) sent to importVideosBatch endpoint, eliminating server-side file uploads, polling overhead, and import cancellation complexity.
    • Improved Streamlined VideoImportAjaxTrait (includes/classes/Ajax/VideoImportAjaxTrait.php) to focus on single-row JSON validation (validateImportRow()) and removed obsolete CSV extractors.
    • Improved Updated and minified core dashboard script assets (main-v4.0.1.js / .min.js).
    • Improved Replaced Phpfastcache array-based tag sets (addTags) with versioned cache keys in Model.php (get, getOne, getNumRows, getTotalRows, getWhereIn), reducing Redis memory overhead and avoiding Tag Garbage Collection issues.
    • Improved Bumped player JavaScript runtime to v4.7.0 (public/assets/js/player-v4.7.0.js / .min.js) and updated asset pipelines in package.json and sw.js.
    • Improved Standardized circuit breaker cooldown (300 seconds) and failure threshold (3) across services.
    • Improved Optimized CloudflareProxy settings caching to prevent redundant database queries under high concurrency.
    • Improved Replaced in_array lookups with O(1) hash lookups in hot execution loops.
    • Improved Added max retry limits and exponential backoff to background download and extraction loops.
    • Improved Removed synchronous script loading deferral on player script elements (jwplayer.twig, plyr.twig, body_bottom.twig) to ensure consistent initialization order.
    • Improved Renamed default-script.twig to sw.twig and remapped its template key from default_script to sw_script in HTML::renderTemplate(), referenced from the new default-frontend-scripts.twig and default-backend-scripts.twig bundles.
    • Improved Merged template-loading context in HTML::renderTemplate() using array_merge in place of array_replace and reordered frontend/backend script bundles ahead of caller-supplied templates so theme overrides win.
    • Improved Extracted PluginThemeManagerTrait (includes/classes/Service/PluginThemeManagerTrait.php) from PluginManager and ThemeManager to centralize shared plugin/theme file extraction and version-check logic, and refactored Stream::createCacheFilePath() and Setter property initialization for cleaner cache-file path resolution.
    • Improved Extracted InstanceCacheTrait (includes/classes/Service/InstanceCacheTrait.php) from InstanceCache to modularize cache driver initialization, tag versioning, and invalidation logic.
    • Improved Replaced ServerConfigFileUpdater with ServerConfigManager (includes/classes/Service/ServerConfigManager.php) for generating server configuration files (nginx, .htaccess) from Twig templates with prioritized key-order resolution.
    • Improved Translated video CSV import UI messages in main-v4.0.1.js from Indonesian to English for consistent internationalization.
    • Fixed Fixed subtitle edit validation and file upload handling in VideoSubtitleAjax.php.
    • Fixed Added transient HTTP status codes 408 (Request Timeout) and 504 (Gateway Timeout) to cURL retry handler in Stream.php.
    • Fixed Added explicit CDN cache prevention headers (CDN-Cache-Control: no-store, Cloudflare-CDN-Cache-Control: no-store) for error and non-cacheable responses in functions.php.
    • Fixed Bypass unnecessary shutdown proc_open execution in Swoole and RoadRunner runtimes.
    • Fixed Handled cURL handle cleanup safely for PHP 8.5 compatibility in VideoSource and GoogleDriveRestAPI.
    • Fixed Fixed AjaxHelper::__construct() to parse raw JSON request bodies via customJsonDecode() so batched video import payloads reach importVideosBatch instead of being dropped.
    • Fixed Fixed VideoImportAjax::persistImportRow() to reject rows whose main video_url fails validateUrl() and to cast id to (int) in the DataTable response.
    • Fixed Fixed Google Drive HLS playback redirect in Master::redirectToOriginalUrl() to set the browser User-Agent header for isGoogleHls() hosts instead of forcing an inline Content-Disposition redirect, and renamed the isDownloadable property to isDownload for consistent download-flag handling across Master.php.
  • Sep 19, 2026 (v4.8.6-p5)
    • Added ThemeManager service supporting dynamic active theme resolution, discovery, and automated theme synchronization (syncThemeFile, downloadThemeFile, extractThemeZip).
    • Added Theme synchronization endpoint (includes/views/backend/themes/sync.php) supporting background zip creation, file locking, and download streaming stored in themes/tmp/.
    • Added Automated theme synchronization loop to background worker (includes/bg_general.php).
    • Added Comprehensive theme development guide (themes/README.md) documenting folder conventions, Twig template overriding, symlinks, and composer.json Semantic Versioning.
    • Added MySQL replication setup and management utility scripts (resources/scripts/mysql-master-setup.sh, mysql-replica-setup.sh, mysql-replica-add-db.sh).
    • Added Resend HTTP REST API mailer integration (Resend.php) as an alternative email provider alongside SMTP and Mailgun.
    • Added Modern custom HTML error pages for HTTP 404 Not Found (public/404.html) and HTTP 502 Bad Gateway (public/502.html) with responsive design and ambient glow effects.
    • Added Modular Twig template widgets: light-dark-mode.twig (theme switcher) and meta-icon-prefetch.twig (SEO metadata, favicons, and prefetch links).
    • Added Twig template helper functions: jsAAEncode (AAEncode obfuscation), jsMinify (JS minification), and jsPacker (JavaScript Packer).
    • Added Added Content-Encoding and Content-Range to CORS exposed headers (Access-Control-Expose-Headers) in createResponseHeaders().
    • Improved Bumped player JavaScript runtime to v4.6.9 (public/assets/js/player-v4.6.9.js), extracting error styles to public/assets/css/error.css and optimizing button event handlers.
    • Improved Refactored PluginManager::extractPluginZip() and shouldUpgradePlugin() to prevent overwriting existing plugins unless the archive contains a newer version.
    • Improved Excluded tmp/ folder from available themes listing in ThemeManager::getAvailableThemes().
    • Improved Updated purgecss asset pipeline script (purgecss-dlhd.js) to ECMAScript modules (ESM) with theme JS directory scanning.
    • Improved Refactored and modularized CoreTrait and BackgroundTrait across Core and Service namespaces.
    • Improved Enhanced streaming request validation in Master::isValidRequest() with Smart TV detection and HTTP 403 protection.
    • Improved Optimized stream chunk caching and buffer delivery in Stream.php with cached disk free space checks and dedicated cURL callbacks.
    • Improved Hardened Nginx server configuration template with static assets caching, access deny rules, and custom error page routing.
    • Improved Hierarchical plugin routing fallback in PluginManager::dispatchPluginPage().
    • Fixed Fixed plugin uninstallation handling and default configuration template rendering in backend admin.
    • Fixed Fixed VTT subtitle header parsing and time offset calculation in includes/views/frontend/subtitle.php.
    • Fixed Hardened Twitch channel/video ID extraction in Extractor::twitch().
    • Fixed Fixed sources array structure validation in XVFSParser.
    • Fixed Prevented redundant re-downloading of existing plugin zip archives in PluginManager::downloadPluginFile() and sync handler.
  • Sep 11, 2026 (v4.8.6-p4)
    • Fixed Prevented ZipArchive::open() empty file deprecation warning in PluginManager by validating file existence and non-zero size before extracting or reading cached zip files.
    • Fixed Automatically clean up 0-byte downloaded plugin zip files.
  • Sep 11, 2026 (v4.8.6-p3)
    • Fixed Improved plugin extraction error handling and process locking in PluginManager.
    • Fixed Updated .htaccess rewrite rules.
  • Sep 11, 2026 (v4.8.6-p2)
    • Fixed Added MySQL auto-reconnect handling on connection drops (MySQL server has gone away).
    • Fixed Added flock file locking mechanism to plugin zip creation in sync handler.
  • Sep 11, 2026 (v4.8.6-p1)
    • Added Dedicated BackgroundTrait modularizing Unix/Windows PID process termination and safe graceful signals.
    • Improved Comprehensive code quality and cognitive complexity reduction across Core, Database, External, Helper, Hosting, Presentation, Service, and Views.
    • Improved Enhanced structured error logging using Logger::log for essential failure cases.
    • Improved Upgraded maxmind-db/reader dependency to v1.14.0.
    • Fixed Hardened database connection handling, model query exception resiliency, and statement cursor closing.
    • Fixed Process ID argument escaping and background daemon process management.
  • Sep 02, 2026 (v4.8.5)
    • Added Centralized Cloudflare WARP Proxy service with node and host-based SOCKS5 routing across extractors, Google Drive API, stream proxy, and Headless Chrome.
    • Added Mailgun HTTP REST API mailer integration as an alternative email driver (bypassing SMTP port blocking).
    • Added Unified Email Driver & Configuration in admin SMTP settings with dynamic switcher between SMTP and Mailgun.
    • Added Enhanced stream proxying with forwarded host header support.
    • Added Automatic fail-safe and circuit breaker protection to prevent server hanging during external video hosting outages or rate limits.
    • Added Intelligent cache locking to prevent server overload during traffic spikes on cache misses.
    • Added Direct I/O support for high-performance local file streaming.
    • Added Yandex Metrika and Microsoft Clarity analytics tracking integration.
    • Added Dedicated service health check ping endpoint.
    • Added Custom proxy server and bypass list configuration in Headless Chrome service.
    • Added Deployment and distribution guides.
    • Improved Overall system performance and code quality improvements across video hosting extractors.
    • Improved Faster cache initialization, reduced overhead, and high-performance serialization support.
    • Improved Accelerated video embed and download page rendering throughput.
    • Improved Background task processing reliability and process execution across server environments.
    • Improved Plugin hooks and dynamic widgets.
    • Improved Modular CORS origin headers validation.
    • Improved Web server configuration templates with improved 404 error routing.
    • Improved Password reset email notifications with a modern responsive template.
    • Fixed Naver TV extractor DOM parsing and VOD playback URL parameters.
    • Fixed Shared cURL DNS cache timeout tuning to prevent persistent negative DNS lookup errors on streaming proxies.
    • Fixed Database migration connection retry mechanism to ensure reliable CLI migration startup.
    • Fixed HLS parser stream token handling and URL bypass logic.
    • Fixed Reduced background task disk write operations.
    • Fixed Hardened video embed request validation and upload directory protection.
    • Fixed Password reset token validation and step page routing.
    • Fixed Stream link decryption and playback URL generation for AWS Cloud storage.
    • Removed The Tube, Gofile Hosts.
  • Aug 8, 2026 (v4.8.4)
    • Improved Refactored Engine Alive check and updated main JS asset (v3.9.9).
    • Improved Asset pipeline versioning and lockfiles updated to v4.8.4.
    • Improved Hosting settings and symlink management stability.
    • Fixed Custom hostnames setting configuration handling in Admin Panel.
    • Added Comprehensive system safety and audit documentation.
  • Aug 2, 2026 (v4.8.3)
    • Added PHP disabled functions checker and system alerts in Admin Dashboard.
    • Improved Plugin Manager service and plugin loading mechanisms.
    • Improved Background process execution using `shell_exec` and asset pipelines (terser, cleancss, obfuscator).
    • Fixed Removed debug logging in Stream handler and optimized index entry point.
  • Jul 29, 2026 (v4.8.2)
    • Added Custom Headers management UI in Admin Settings page and navigation bar.
    • Added INSTALLATION.md documentation guide with detailed setup and deployment instructions.
    • Improved Background Process Service: Refactored Background.php process runner and background task execution on Linux environments.
    • Improved Code Quality: Resolved PHPStan Level 8 static analysis compliance and type checks across core handlers.
    • Improved Server Configurations: Updated Nginx (nginx.conf.twig, nginx.conf.example) and Apache (.htaccess.twig) templates with per-location CORS headers and preflight OPTIONS handling.
    • Fixed CORS Policy & Preflight Requests: Resolved Cross-Origin Resource Sharing (CORS) headers and OPTIONS preflight (HTTP 204) handling across AjaxHelper, router entry points, and static asset routes.
    • Fixed Core & Hosting Parsers: Improved XVFSParser, StreamParser, Core, HeadlessChrome, and class handlers.
    • Fixed Sitemap & Database Migration: Updated sitemap.php views and web-migrate.php script handling.
  • Jul 26, 2026 (v4.8.1)
    • Added Plugin System with support for dynamic view overrides and webhook synchronization.
    • Added Add a server status monitor to the Dashboard and Load Balancer pages.
    • Added PHP 8.5 compatibility and cURL Share Handle.
    • Improved Stream Engine: Optimized HLS/MPD handlers, dynamic cache bypass for live streams, and trailing slash preservation in MPD BaseURL parser.
    • Improved Performance: Optimized subtitle and poster cache delivery via direct static redirection to reduce CPU load.
    • Improved Theme & UI Assets: Restructured assets to themes/ directory with dynamic symlink generation, upgraded Font Awesome to 7.3.0, and refactored dashboard colors using CSS variables.
    • Improved Admin Area: Restructured settings layout (Hosting, Player, Site Settings) and simplified navigation labels.
    • Improved Daemon & Background: Enhanced background processes and daemon synchronization for plugins and expired source link cleanups.
    • Improved System Requirements: Updated required PHP extensions (curl, fileinfo, filter, hash, json, mbstring, openssl, sockets, pdo_mysql). Note: Composer will prevent page access if these extensions are missing.
    • Fixed Hosts: Blogger, Files.fm, Hexupload, Pcloud, SoundCloud, Vidmoly, Filemoon, HxFile, Naver TV, and Voe.
    • Fixed Database: Optimized indexes and schema structures. Note: Database must be updated using /web-migrate.php.
    • Fixed Stream JS Engine: Resolved undefined audioIcon notice in the HLS engine.
    • Fixed Dashboard & UI: Adjusted admin navbar responsiveness.
    • Fixed General: Updated PHP dependencies, resolved loader CSS styles, and fixed known bugs.
    • Removed Unsupported Hosts: 123ecast, DaddyHD, Dailyfile, DesuStream, GoCast2, Kuronime, NetCine, PeerTube, StreamEmbed, VidEmbed, BigWarp, CyberDrop, Darkibox, Desiupload, Embedrise, Europeup, Fastream, FileGram, FreeDlink, GeTT, Indishare, OneDrive, Streamruby, Terabox, UploadHive, Uploady, Uptomega, Up4stream, VidGuard, Vidio, Vidlook, Viu, and Vixstream.
    • Downgraded HTTP protocol from HTTP/2 to HTTP/1.1 due to stability issues.
  • May 01, 2020 (v1.0.0)
    • Added Initial release of GDPlayer.
  • Oct 02, 2026 (v0.0.8)
    • Added Swoole extension and swoole-cli.exe presence check before starting daemon in swoole-bg.php and backend config view.
    • Added load balancer sync action and interactive service control buttons in templates/config.twig.
    • Added ThemePoolBorrower lifecycle helper (src/ThemePoolBorrower.php) for theme handlers requiring Redis/PDO pool access, providing initThemePools(), isThemePoolsReady(), withRedis(), withPdoRead(), withPdoWrite(), and idempotent releaseThemePools().
    • Added dedicated SwoolePdoManager and SwooleRedisManager pool managers with safe connection acquire/release (get, getAll, getRow, withWrite, set, setex) and fast availability checks.
    • Added gdrive_hls and gphotos_hls configuration flags in SwooleConfigLoader to control Google Drive/Photos HLS streaming mode.
    • Added complete routing reference document (ROUTER.md).
    • Improved Unified circuit breaker mechanism by replacing SwooleCircuitBreaker with core CircuitBreaker (GDPlayer\Service\CircuitBreaker) using Redis injection.
    • Improved Refactored Swoole pool handling to use SwoolePdoManager/SwooleRedisManager instead of raw PDOPool/RedisPool, ensuring connections are safely returned to their pools.
    • Improved Moved PDO connection release to after curl_exec in SwooleHandler.
    • Improved Added buffered queries to the Swoole replica connection.
    • Improved Refactored SwooleHandler/SwooleHandlerTrait and SwooleStreamResolver/SwooleStreamResolverTrait for SonarQube code-quality compliance and removed unused methods.
    • Improved dispatchThemeHandler with theme pool pre-flight validation (HTTP 503 + log when pools are not initialized).
    • Improved Wired CloudflareProxy configuration through SwooleHandler, SwooleConfigLoader, and SwooleStreamResolver.
    • Improved Enhanced SwooleLogger with critical-level logging across pool, cache, and Google Drive OAuth failures, and hardened log cleanup to skip Swoole-owned log files (swoole.log, swoole_stats.log).
    • Improved Refactored curlWriteCallback in SwooleHandler to strictly enforce a maximum of 3 return points.
    • Improved Refactored resolveAndValidateRequest in SwooleHandler by consolidating return paths and modularizing header & URL helpers.
    • Improved Enabled buffered queries on PDO statements to avoid unbuffered query deadlocks.
    • Improved Capped max_conn to min(65_535, ...) preventing integer overflow in Swoole server configuration.
    • Improved Updated composer.lock dependencies.
    • Fixed Google Drive / Google Photos HLS streaming mode.
    • Fixed temporary unavailable cases by bounding response buffering (MAX_BUFFERED_BYTES, 2 MB) to avoid yielding inside the cURL C-stack, and safely detaching CURLOPT_STDERR before closing the verbose stream handle.
    • Fixed Added explicit CDN no-cache headers (CDN-Cache-Control: no-store, Cloudflare-CDN-Cache-Control: no-store) for error and non-cacheable responses in SwooleHandler.php and swoole.php.
    • Fixed broken pipe / closed socket crashes by ensuring isWritable() before response writing and ending.
    • Fixed SSL verification flexibility in upstream requests (configureCurl) with SSL_VERIFYHOST and SSL_VERIFYPEER overrides.
    • Fixed Renamed crash log function to camelCase swooleCrashLog.
  • Sep 19, 2026 (v0.0.7)
    • Added SwooleCircuitBreaker service (src/SwooleCircuitBreaker.php) protecting against cascading upstream HTTP 404 / 5xx failures with automatic trip and cool-off recovery.
    • Added openResourcesHandler POSIX limit adjustment across Swoole daemon processes (swoole-bg.php, SwooleCacheManager).
    • Added Redis caching for custom host request headers JSON.
    • Improved Refactored SwooleStreamResolverTrait and extracted extractHostAndId to streamline resolver handling.
    • Improved Optimized stream cache manager by caching disk free space checks and returning early on insufficient disk storage.
    • Improved Added lazy master database fallback when encountering MySQL replication lag in Swoole workers.
    • Improved Automatically clear cache via InstanceCache::clear() during Swoole stop, restart, and reload control actions.
    • Improved Imported GDPlayer\Logging\Logger directly in swoole-bg.php to clean up FQCN usages.
  • Sep 11, 2026 (v0.0.6)
    • Added Single-instance concurrency guard using flock in background monitor daemon (swoole-bg.php).
    • Added Structured error logging with Logger::log for critical failures (process spawning, config update, and reload requests).
    • Added Safe graceful signal termination (SIGTERM prior to SIGKILL) across background service processes.
    • Improved Refactored SwooleHandler::handle() to reduce cognitive complexity (<= 3) by extracting exception handling into handleWorkerException.
    • Improved Refactored SwooleStreamResolver::getGoogleDriveAuth() to reduce cognitive complexity (<= 4) and strictly enforce maximum 3 returns by extracting requestGoogleDriveToken.
    • Improved Centralized single-process termination logic through Background::stopPid() in core service helper.
    • Improved Hardened command execution with comprehensive escapeshellarg() quoting on Windows and Unix platforms.
    • Improved Replaced worker output echo with native error_log to comply strictly with Swoole non-blocking daemon directives.
    • Fixed unhandled worker exceptions by verifying socket writability before sending HTTP 500 response.
    • Fixed cURL error and invalid token responses handling in Google Drive OAuth flow.
    • Fixed process ID handling and .pid file cleanup on worker reload and shutdown.
  • Sep 09, 2026 (v0.0.5)
    • Added Distribution and deployment documentation (GIT-DISTRIBUTION.md).
    • Improved Refactored process termination logic in control.php and optimized Swoole worker reload sequence.
  • Aug 27, 2026 (v0.0.4)
    • Added Open-source and commercial distribution guides and deployment documentation.
    • Added Redis connection pooling options with backoff jitter, prefixing, TCP keepalive, and igbinary/zstd compression support.
    • Improved Refactored internal proxy architecture into modular helper services for better performance and maintainability.
    • Improved Optimized instance routing and custom URL path handling in background worker.
    • Improved Added cache driver compatibility validation in backend control panel.
    • Improved web server configuration template with robust 404 error routing.
    • Improved Immediate disk free space cache initialization at worker 0 startup and isolated cache key (swoole-disk-free-space).
    • Improved Reliable background process termination and .pid cleanup on Linux and Windows.
    • Improved Uncached real-time engine health ping support in status and reload control actions.
    • Fixed Prevented background service daemon crash during server shutdown.
    • Fixed URL decoded path handling (_2f_ and %2F) normalization in upstream request proxy handler.
    • Fixed AWS stream link decryption and query parameter cleanup in SwooleStreamResolver.
    • Fixed Improved proxy server startup error handling and background process shutdown.
  • Aug 08, 2026 (v0.0.3)
    • Added Cloudflare rate-limit bypass and X-Content-Length response header for chunked encoding responses.
    • Improved Code quality static analysis compliance and synchronized composer dependencies.
    • Improved Swoole server startup handling and overall runtime stability.
    • Improved Background process manager and server process control stability.
    • Fixed Null coalescing operator check for IP headers in SwooleHandler.
    • Fixed Background service cleanup across different operating system environments.
  • Aug 02, 2026 (v0.0.2)
    • Added Dynamic DB/Redis configuration management in SwooleHandler.
    • Improved Optimized PDO statement cursors closing and memory resource handling.
    • Improved Refactored decentralized stream processing, PHPStan level 8 static analysis compliance, and code formatting.
    • Fixed Resolved live stream video caching logic, direct host redirect flow, and cURL connection reuse.
  • Jul 08, 2026 (v0.0.1)
    • Added Initial Release.
    • Added High-performance PHP proxy engine utilizing Swoole asynchronous server runtime.
    • Added Connection pooling optimization and external host configurations for fast source fetching.
    • Added Built-in system resource monitor (Free RAM checker on start) and clean runtime logs.
  • Oct 02, 2026 (v0.0.5)
    • Added RoadRunnerConfigLoader — per-request settings via a short-TTL Redis cache; admin changes now apply without restarting the worker.
    • Added RoadRunnerPdoManager — per-worker PDO with automatic reconnect and replica→master fallback, replacing the static Conn singleton on the request path.
    • Added RoadRunnerRedisManager — per-worker Redis connection with transparent reconnect on stale links.
    • Added RoadRunnerLogger — superglobal-free logger (explicit ip/url) replacing GDPlayer\Logging\Logger in the worker.
    • Added GitHub Actions CI workflow for static analysis and linting (phpstan, php-cs-fixer, phpcs, php-lint).
    • Added Service uninstallation script (uninstall.php) for clean plugin removal.
    • Fixed Removed $_SERVER/$_POST/php://input usage from the worker request path (NO GLOBALS rule).
    • Fixed Upstream failure no longer blocks the worker with up to 64s of usleep backoff plus an inline re-scrape; the rescue is offloaded to AsyncHelper::spawnBgGet() (fire-and-forget) with a KV-backed retry guard (max 3).
    • Fixed Google Drive auth now resolves the token inline (dedicated cURL handle + Redis cache) instead of instantiating the heavyweight GoogleDriveRestAPI.
    • Fixed Request state (status, length, cache fp, ip) is reset per request; directHosts() is reproduced locally without touching BinFile/Config/InstanceCache.
    • Improved phpstan.neon.dist now sets treatPhpDocTypesAsCertain: false, matching the Swoole plugin.
    • Improved Background service lifecycle management; refactored stop/restart operations with Background helper.
    • Improved State handling for service_stopped flag across start, stop, and restart actions.
    • Improved Forwarded engine alive checks with updated third parameter support in redirect calls.
    • Improved Upstream Nginx configuration headers.
    • Improved Refactored custom URI request handling (/ping and /status endpoints).
    • Improved Introduced RoadRunnerFunctions helper class and streamlined service control routing.
  • Aug 27, 2026 (v0.0.4)
    • Added Open-source and commercial distribution guides and deployment documentation.
    • Improved Added cache driver compatibility validation supporting Redis and Memcached configurations.
    • Improved Web server configuration template with robust 404 error routing.
    • Improved Stream resolver stability, background worker lifecycle, and package dependencies.
  • Aug 23, 2026 (v0.0.4)
    • Improved Background daemon runner process checking combining PID status and un-cached engine ping validation.
    • Improved Background process termination by path and reliable .pid cleanup on stop/restart actions.
    • Improved Real-time engine health ping validation for reload and status check endpoints.
    • Fixed URL encoded trailing slashes (_2f_ to %2F) normalization in request routing and direct host handling.
    • Fixed AWS stream parameter decryption and playback key handling in RoadRunnerHelper.
    • Improved Enhanced background service process validation and graceful termination.
  • Aug 8, 2026 (v0.0.3)
    • Added Cloudflare rate-limit bypass and engine check improvements.
    • Improved Preserved HTTP response status code from origin server and synchronized composer dependencies.
    • Improved Background process manager and server process control stability.
    • Fixed Background service cleanup across different operating system environments.
  • Aug 2, 2026 (v0.0.2)
    • Added Dynamic worker daemon runner and optimized .rr.json configurations.
    • Improved PHPStan level 8 static analysis compliance, code quality, and worker process lifecycle.
    • Fixed Refactored background monitor logging and dynamic configuration options.
  • Jul 8, 2026 (v0.0.1)
    • Added Initial Release.
    • Added High-performance PHP proxy engine utilizing RoadRunner worker daemon.
    • Added Ranged requests caching and bypass mechanism for live streams and non-MP4 playback.
    • Added Optimize remote video source configurations and strict HTTP/1.1 protocol controls.