Releases: N3XT0R/dashclip-delivery
4.0.0-beta.4
Fixed
- AssignmentService:
- Fixed a null pointer exception in
canReturnAssignment()whenexpires_atisnull
assignments without an expiry date are now correctly treated as non-expired.
- Fixed a null pointer exception in
Security
- Packages
- upgraded packages to newest version (e.g. laravel or npm dependencies)
Full Changelog: 4.0.0-beta.3...4.0.0-beta.4
4.0.0-beta.3
Fixed
- Horizon video ingest processing
- Fixed an issue where
ProcessVideoIngestJobcould fail to be dispatched
when stale unique job locks remained after interrupted processing or
worker timeouts.
ReplacedShouldBeUniquewith
ShouldBeUniqueUntilProcessingto prevent persistent locks from blocking
future ingest jobs.
Increased the job timeout to better support long-running video ingest
processing.
Unique job identifiers are now environment-aware to avoid collisions
between staging and production environments sharing the same Redis
instance.
- Fixed an issue where
Full Changelog: 4.0.0-beta.2...4.0.0-beta.3
4.0.0-beta.2
Fixed
- ChannelWorkspace cluster access
- Fixed missing permission validation in
ChannelWorkspace::canAccess(): the
Channel-Workspace cluster did not properly enforce access restrictions and
could appear in navigation without the intended authorization check.
Visibility is now limited to users with the
page.channels.accesspermission (Channel-Operators).
- Fixed missing permission validation in
Full Changelog: 4.0.0-beta.1...4.0.0-beta.2
4.0.0-beta.1
⚠️ Beta Release
This is the first beta release of Dashclip Delivery 4.x and marks a major architectural milestone.
4.0.0-beta.1 is also the first 4.x version intended for productive deployment.
It is the first version actively deployed to the production environment of dashclip-delivery.net, marking the transition from architectural experimentation to real-world production usage.
The core architecture has been stabilized and validated throughout the alpha cycle. While minor breaking changes may still occur before the final stable release, the system is now considered mature enough for production workloads.
This release consolidates all improvements introduced during the 4.x alpha cycle, including the new ingest architecture, WebDAV support, queue observability, AI tooling, infrastructure hardening, and developer experience improvements.
✨ Added
Modular Video Ingest Pipeline
- Introduced a fully step-based ingest pipeline
- Deterministic and reproducible ingest processing
- Supports:
- Step retries
- Dependency-aware execution
- Partial reprocessing of failed steps
- Improved observability through persisted ingest state
- Prevents duplicate processing via unique jobs
- Supports maintenance and recovery commands for failed or stale jobs
Included ingest capabilities
- Video hashing
- Preview generation
- Dropbox upload
- Input validation and duplicate detection
- Resume support for incomplete ingest runs
- Missing ingest-step detection for already processed videos
WebDAV-based ZIP Ingest
- Added WebDAV upload support for ingesting media packages
- ZIP uploads are automatically:
- Detected
- Extracted
- Imported into the ingest pipeline
- Supports accompanying CSV metadata imports (
info.csv) - Added scheduled fallback scanning for uploaded ZIP archives
- Added automatic cleanup of invalid/non-ZIP uploads
- Introduced upload restrictions to allow ZIP-only ingest workflows
Queue Monitoring with Laravel Horizon
- Introduced Laravel Horizon for advanced queue management
- Real-time dashboard for:
- Job throughput
- Execution time
- Failures & retries
- Improved visibility into queue performance and bottlenecks
- Easier debugging of failed or long-running ingest jobs
- Better monitoring for production environments
AI Integration via Laravel Boost
- Added Laravel Boost integration
- Exposes application context to AI tools:
- Routes
- Models
- Configuration
- Logs
- Framework conventions
- Enables interaction via Model Context Protocol (MCP)
- Supports runtime inspection and execution through Tinker
- Improves AI-assisted:
- Debugging
- Refactoring
- Code navigation
- Development workflows
Ingest Status Tracking
- Added unified ingest progress tracking
- Frontend-friendly ingest status representation
- Enables:
- Progress indicators
- Step-based processing visibility
- Current pipeline state insights
- Integrated into the Filament UI
Module System
- Introduced a module-based architecture
- Added modular Filament integration
- Improves:
- Separation of concerns
- Scalability
- Maintainability
Architecture & Developer Standards
- Added Architecture Decision Records (ADRs) covering:
- SOLID principles
- Naming conventions
- Design patterns
- Exception hierarchies
- PHPDoc conventions
- Changelog maintenance
- Conventional Commits
- Added Pint configuration using PSR-12
- Improved architectural consistency and contributor guidance
Maintenance & Recovery Commands
- Added maintenance commands for:
- Requeueing stale ingest jobs
- Recovering incomplete pipeline executions
- Cleaning missing storage references
- Cleaning stale FFmpeg temporary files
- WebDAV ZIP ingestion fallback processing
🔄 Changed
Complete Ingest Architecture Rewrite
- Replaced the legacy monolithic ingest workflow
- Migrated to a modular step-based processing architecture
- Improved:
- Reliability
- Retry behavior
- Recovery handling
- Maintainability
- Testability
- Observability
Laravel 13 Upgrade
- Upgraded framework to Laravel 13
- Updated dependencies for compatibility
- Refactored affected components to support breaking changes
- Verified stability through extensive testing
Queue System Improvements
- Migrated ingest workers to Laravel Horizon
- Improved queue performance and monitoring
- Better separation between request lifecycle and background processing
- Reduced blocking during ingest dispatch
Video Processing Improvements
- Added support for multiple clips per video
- Improved preview generation for multi-clip workflows
- Centralized processing state handling via enums
- Improved ingest lifecycle consistency
Storage & Resource Management
- Improved Dropbox upload handling using session-based uploads
- Reduced memory and temporary storage usage
- Improved FFmpeg temporary file handling
- Prevented
/tmpexhaustion issues - Added automated cleanup for stale temporary files
- Improved stream handling and storage reliability
Internationalization Foundation
- Migrated hardcoded UI and mail strings to the i18n system
- Improved maintainability and localization readiness
Separation of Concerns
- Moved business logic out of models and controllers into services
- Improved testability and architecture boundaries
- Increased maintainability of domain logic
Filament Structure Improvements
- Refactored Filament structure to better separate admin concerns
- Improved maintainability of resources, pages, widgets, and clusters
🐛 Fixed
Limitations of the 3.x Architecture
Dashclip Delivery 4.x resolves several architectural limitations that existed in the 3.x series.
Video Ingest Reliability
- Replaced the legacy monolithic ingest workflow with a deterministic, step-based pipeline
- Eliminates the "all-or-nothing" ingest behavior of 3.x
- Failed ingest runs can now resume from incomplete steps instead of restarting entirely
- Improved recoverability after worker crashes or interrupted processing
Processing Transparency
- Added explicit ingest state tracking to replace the previously opaque ingest process
- Videos now expose detailed processing progress and step visibility
- Easier troubleshooting of failed or stalled ingest operations
Queue Processing
- Reduced blocking behavior caused by tightly coupled request/processing lifecycles in 3.x
- Improved queue observability and operational monitoring through Laravel Horizon
- Better visibility into retries, failures, and long-running jobs
Storage & Resource Handling
- Improved temporary file handling to avoid resource exhaustion scenarios
- Better FFmpeg temp management and cleanup
- More reliable large-file Dropbox uploads through session-based streaming
Maintainability & Extensibility
- Reduced framework and business logic coupling
- Improved separation of concerns across services and workflows
- Added modular architecture to improve long-term maintainability and scalability
- Established ADR-based architectural standards for future development
Internationalization & Configuration
- Replaced hardcoded strings with localization support
- Reduced hardcoded configuration handling through centralized configuration abstractions
🧠 Developer Notes
- Dashclip Delivery 4.x is now centered around the new ingest pipeline architecture
- 4.0.0-beta.1 is the first version actively intended for productive deployment
- This is also the first release deployed to the production environment of dashclip-delivery.net
- While APIs and workflows are considered stable, expect minor adjustments before the final stable release
- Laravel Horizon is now the default queue system and should be configured accordingly
- WebDAV ingest expects ZIP uploads only
- Review
.envchanges before upgrading - Laravel Boost introduces AI interaction capabilities — review access permissions and security boundaries carefully
- ADRs are now part of the project's architectural guidance
Full Changelog: 3.x...4.0.0-beta.1
3.14.0
Security
- Packages
- upgraded packages to newest version (e.g. laravel or npm dependencies)
What's Changed
- chore(deps): bump maennchen/zipstream-php from 3.2.1 to 3.2.2 by @dependabot[bot] in #286
- chore(deps-dev): bump barryvdh/laravel-debugbar from 4.2.4 to 4.2.6 by @dependabot[bot] in #287
- chore(deps): bump filament/filament from 5.4.5 to 5.5.0 by @dependabot[bot] in #289
- chore(deps-dev): bump follow-redirects from 1.15.11 to 1.16.0 by @dependabot[bot] in #290
- chore(deps-dev): bump axios from 1.13.6 to 1.15.0 by @dependabot[bot] in #291
Full Changelog: 3.13.1...3.14.0
4.0.0-alpha.3
⚠️ Alpha Release
This is an early alpha version intended for testing and feedback. Expect breaking changes and incomplete features.
✨ Added
Queue Monitoring with Laravel Horizon
- Introduced Laravel Horizon for advanced queue management
- Real-time dashboard for:
- Job throughput
- Execution time
- Failures & retries
- Improved visibility into queue performance and bottlenecks
- Support for multiple queues and job types with detailed metrics
- Easier debugging of failed or long-running jobs
AI Integration via Laravel Boost
- Added Laravel Boost integration
- Exposes application context to AI tools:
- Routes, models, configuration, logs, etc.
- Enables interaction via Model Context Protocol (MCP)
- Supports runtime inspection and execution via Tinker
- Provides access to Laravel-specific conventions and documentation
- Enhances AI-assisted development:
- Debugging
- Refactoring
- Code navigation
🔄 Changed
Queue System Improvements
- Migrated queue workers to Horizon (
horizonconnection) - Updated
ProcessVideoIngestJobto use Horizon queues - Improved performance and observability for ingest processing
- Updated documentation to reflect new setup and usage
Laravel 13 Upgrade
- Upgraded framework to Laravel 13
- Updated dependencies for compatibility
- Refactored code to handle breaking changes
- Verified stability through testing of core features
🐛 Fixed
- Various minor bugfixes across the application and ingest pipeline
- Improvements based on alpha testing feedback
🧠 Developer Notes
- Horizon is now the default queue driver — ensure it is properly configured in your environment
- Review
.envand queue configuration changes before deploying - Laravel Boost introduces AI interaction capabilities — verify access and security boundaries when using MCP/Tinker
- Expect further breaking changes in upcoming alpha releases
Full Changelog: 4.0.0-alpha.2...4.0.0-alpha.3
4.0.0-alpha.2
This pre-release focuses on improving the robustness, consistency, and evolution capabilities of the video ingest pipeline, while also addressing user experience issues during video uploads.
🔧 Ingest Pipeline Improvements
- Introduced a new
ValidateInputFileStepto ensure that source files exist and are processable before any further ingest steps are executed. - Added early pipeline termination for invalid inputs, preventing downstream failures (e.g. hash calculation or preview generation).
- Introduced an explicit
isInvalidstate in the ingest context to clearly distinguish invalid inputs from duplicate detection. - Improved pipeline control flow to consistently stop processing when a video is marked as invalid or duplicate.
🔁 Pipeline Evolution & Recovery
- Added support for detecting missing ingest steps based on the current pipeline definition.
- Enables retroactive execution of newly introduced steps for already processed videos.
- Introduced a new maintenance command to requeue completed videos with missing steps, allowing safe and incremental pipeline evolution without full reprocessing.
🗂️ Video Lifecycle Handling
- Switched to soft deletes for videos to prevent immediate data loss.
- Decoupled logical deletion from physical file removal, preparing the system for deferred cleanup strategies.
📊 Ingest Status Handling
- Refactored ingest state interpretation into a centralized
IngestStateService. - Simplified the status query layer (
GetVideoIngestStatusUseCase) by delegating state logic. - Improved consistency between backend processing state and frontend representation.
⚡ Improved User Experience During Upload
- Introduced a delayed dispatch for ingest jobs to decouple heavy processing from the request lifecycle.
- Prevents blocking behavior during video creation (e.g. Filament form submission and redirect).
- Ensures immediate UI responsiveness while processing continues asynchronously in the background.
ℹ️ If you rely on queue processing, ensure that a proper queue worker is configured (e.g.
databaseorredisdriver) and running, as synchronous execution (sync) may block requests.
Full Changelog: 4.0.0-alpha.1...4.0.0-alpha.2
3.13.1
Fixed
- Fixed external package filament-log-viewer. The package was not compatible with the latest version of Filament and
caused errors in the admin panel. The package has been updated to the latest version, which resolves the compatibility
issues and restores full functionality to the admin interface.
Full Changelog: 3.13.0...3.13.1
3.13.0
What's Changed
- chore(deps-dev): bump vite from 6.4.1 to 6.4.2 by @dependabot[bot] in #282
- chore(deps): bump filament/filament from 5.4.3 to 5.4.4 by @dependabot[bot] in #280
- chore(deps-dev): bump barryvdh/laravel-debugbar from 4.2.2 to 4.2.4 by @dependabot[bot] in #281
Full Changelog: 3.12.0...3.13.0
4.0.0-alpha.1
This alpha release introduces a major architectural overhaul of the video ingest system, alongside improvements in modularization, maintainability, and system consistency.
It lays the foundation for a more deterministic, scalable, and recoverable processing workflow.
✨ Highlights
⚙️ New Step-Based Video Ingest Pipeline
- Introduced a fully redesigned, deterministic ingest pipeline with clearly defined processing steps.
- Each step is idempotent, allowing safe retries without reprocessing completed work.
- Supports dependency-aware execution, ensuring only invalid or incomplete steps are re-run.
- Enables fine-grained recovery after failures (e.g. worker crashes).
- Asynchronous processing via queue jobs with concurrency protection.
👉 Result: A robust, traceable, and recoverable ingest workflow.
📊 Ingest Status & Progress Tracking
- Added a unified ingest status representation per video.
- Provides:
- Step-by-step status
- Progress metrics (completion %, total steps, etc.)
- Integrated into the admin UI for real-time visibility.
- Designed for frontend usage without exposing internal error handling.
👉 Result: Full transparency of ingest progress for users and operators.
🔄 Event-Driven Workflow
- Ingest is now triggered via domain events.
- Decoupled architecture improves extensibility and system clarity.
🧩 Modular System Architecture
- Introduced module-based structure using
nwidart/laravel-modules. - Improved separation of features and better organization of Filament resources.
👉 Result: Cleaner boundaries and improved scalability of the codebase.
🛠 Improvements
🧱 Architecture & Code Structure
- Refactored business logic into dedicated services.
- Removed logic from models and controllers.
- Introduced centralized processing state handling.
🎞 Video & Clip Processing
- Updated ingest flow to support multiple clips per video.
- Improved preview generation for all clips.
- Enhanced preview handling with automatic UI updates (polling).
🌍 Internationalization (i18n)
- Migrated hardcoded UI and email strings to translation-based system.
⚙️ Configuration Handling
- Replaced hardcoded config keys with structured constant classes.
🧹 Cleanup & Removal
- Removed legacy monolithic ingest workflow.
- Removed deprecated notification system (
NotificationTableResource, model). - Removed obsolete scheduler commands and related code.
- Simplified channel approval flow and removed legacy token handling.
🔒 Security
- Updated dependencies to latest versions (including Laravel).
⚠️ Notes
- This is an alpha release and not intended for production use.
- Breaking changes have been introduced, especially in the ingest workflow and architecture.
- Further refinements and stabilizations are expected in upcoming releases.
Full Changelog: 3.12.0...4.0.0-alpha.1