v0.30.0
Overview
This release significantly improves the performance and reliability of the frame analysis and embedding pipeline, faster visual indexing, and more accurate audio embeddings. It also introduces a dedicated beta release pipeline so beta Docker images are published separately from production releases.
Improvements
Frame Analysis & Face Recognition
The frame analysis pipeline now passes the original (unprocessed) frame to all plugins, giving face recognition and other plugins full image fidelity instead of a downscaled or pre-processed copy to use for cropping the face, and has the highest quality dataset for face recognition to prevent false recognition labels.
Visual & Audio Embedding
Visual embedding now runs in batches with thumbnail-based keyframe extraction, reducing memory pressure and speeding up indexing for long videos. Audio embedding has been reworked to embed directly from audio sample vectors by reading the full audio raw data and slicing the data in memory instead of using FFmpeg.
Processing Time UI
The processing times panel now shows a Total line that sums all stages. Null and negative values (from skipped or uncounted stages) are excluded from the total to keep the number meaningful.
Infrastructure
Beta Release Pipeline
A dedicated CI pipeline (release-beta / release-beta-gpu) now publishes beta Docker images to GHCR whenever a *-beta tag is pushed. Production release jobs are explicitly guarded to exclude beta tags, so the two paths no longer interfere with each other. The MCP server release is similarly scoped to non-beta tags only.
Bug Fixes
- Audio embeddings no longer produce NaN vectors when a segment has no signal
- FFmpeg partial output files are cleaned up on failure instead of being left on disk
- Face recognition plugin no longer errors when the configured backend is unavailable at startup
- Video stitching and exporting jobs issue with GPU encoding
- Safe JSON parse for analytics chat response
Full Changelog: v0.22.0...v0.30.0