4.0.0-alpha.2
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
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