Releases: spupuz/VibeNVR
v1.26.0
Full Changelog: v1.25.3...v1.26.0
🚀 Release v1.26.0
📝 Summary
VibeNVR v1.26.0 introduces a significant architectural leap in system efficiency and code maintainability. This release implements native Dual-Stream (Main/Sub) support to drastically optimize bandwidth and CPU usage, paired with a complete modularization of the Timeline system and hardened RBAC security.
🛠️ Key Improvements
- 🔀 Dual-Stream Optimization: Implemented concurrent support for Main (High-Res) and Sub (Low-Res) streams. The system now automatically prioritizes sub-streams for the Live Grid—saving up to 80% bandwidth and CPU—while dedicating the main stream entirely to high-quality recording.
🏁 Final Steps
- Wiki: Technical details of the new Dual-Stream architecture are available in the Official Wiki.
Release v1.26.0 is now live and stable! 📹🔀🛡️
v1.25.3
What's Changed
- chore(deps): bump the npm_and_yarn group across 1 directory with 1 update by @dependabot[bot] in #7
New Contributors
- @dependabot[bot] made their first contribution in #7
Full Changelog: v1.25.2...v1.25.3
🚀 Release v1.25.3
📝 Summary
This patch release consolidates critical security hardenings, native UniFi Protect support, and a complete UI modularization of the Event Timeline. The focus is on system integrity and efficient asset management through new bulk operations and a mandatory path traversal guard.
🛠️ Key Improvements
- 🛡️ Security: Implemented a mandatory Path Traversal Guard for all event deletion operations. Every file-system interaction is now verified against the
/data/storage prefix, mitigating malicious traversal attempts. - 🚀 UniFi Protect: Native support for RSTSPS/RTSP protocols, including automatic TLS verification handling for UniFi NVR controllers.
- 🧩 Architecture: Full modularization of the
Timeline.jsxcomponent. Logic is now cleanly separated into specialized sub-components (HourTimeline,EventCard, etc.), improving maintainability and performance. - 📊 Bulk Operations: Introduced new API endpoints and Frontend logic for Bulk Delete and Delete All events, significantly streamlining storage management.
- 📝 Documentation: Synchronized all repository guides, AGENTS instructions, and the project Wiki to reflect the latest security patterns and API capabilities.
v1.25.2
Full Changelog: v1.25.1...v1.25.2
🚀 Release v1.25.2
📝 Summary
This patch focuses heavily on refining the VibeNVR Timeline playback experience, delivering crucial adaptability updates for both robust desktop setups and mobile browsers. We have eliminated interface horizontal squishing constraints present on compact screens, whilst ensuring the event media player remains persistently visible during long timeline navigation on wide displays.
🛠️ Key Improvements
- 🎨 Responsive Mobile UI: Radically optimized timeline components for compact devices by adjusting the width of video thumbnails and enabling intelligent wrapping on file size and duration badges. Critical context is no longer compressed when handling dense event lists.
- 📌 Sticky Desktop Player: Converted the media preview panel to stick tightly across the vertical viewport (
100dvh). You can now continuously scroll through heavy multi-day event streams without losing sight of the active playback window.
v1.25.1
Full Changelog: v1.25.0...v1.25.1
🚀 Release v1.25.1
📝 Summary
This patch release restores the sticky video player functionality on the Timeline page and optimizes the mobile layout for a more premium, responsive experience. Ahead of this release, a comprehensive security audit and automated test suite were successfully completed to ensure maximum stability and reliability.
🛠️ Key Improvements
- 🚀 Timeline UI: Restored the sticky behavior for the mobile video player, ensuring it remains visible while scrolling through events.
- 🛡️ Security Assurance: Passed the full Deep Assurance Suite (60+ points) including RBAC isolation, path traversal guards, and frame integrity verification.
- 🎨 Aesthetics: Optimized padding and added subtle shadows to mobile components to improve visual depth and readability in both light and dark modes.
- 📦 Deployment: Synchronized both
VibeNVRandVibeNVR-siterepositories with the latest configuration and CNAME settings.
v1.25.0
Full Changelog: v1.5.2...v1.25.0
🚀 VibeNVR Release v1.25.0
📝 Summary
VibeNVR v1.25.0 is a landmark release focusing on extreme modularity, security-first architecture, and enhanced data resilience. This version successfully de-monolithizes the core engine and frontend, introducing a robust backup system and passing a rigorous 60-point Deep Assurance security suite.
🛠️ Key Improvements
- 🚀 Core Componentry: Successfully decomposed monolithic
Cameras.jsx,Settings.jsx, andcamera_thread.pyinto over 20 cohesive modules, dramatically improving maintainability and LOC policy compliance. - 🛡️ Security & Sanitization: Implemented deep log and URL sanitization across the engine and backend. Verified RBAC isolation, 2FA enforcement, and Path Traversal guards.
- 💾 Resilient Backups: Introduced a feature-rich Backup Manager supporting automatic and manual exports of all system configurations, including API tokens and recovery codes.
- 🎨 UX Refinement: Redesigned the Settings interface with dedicated tabs for General, LiveView, Storage, and User Management.
- 📖 Documentation: Finalized the Relative Path Policy and fully synchronized the project Wiki with the latest architectural changes.
v1.24.0
Full Changelog: v1.23.0...v1.24.0
🚀 Release v1.24.0
📝 Summary
This release focuses on hardening the system's security while improving the administrator experience. By moving from a blocking "startup crash" to a reactive, informative warning system, VibeNVR v1.24.0 ensures that security issues are managed proactively without sacrificing system availability. We've also codified a more rigorous development workflow to maintain these standards in future updates.
🛠️ Key Improvements
- 🛡️ Proactive Security Shield: Replaced startup exit logic with a non-blocking validation for
SECRET_KEY. The system now remains operational while clearly flagging insecure configurations for immediate resolution. - 🚀 Interactive Admin Overlay: Introduced a high-visibility, modal-style security banner. It provides administrators with cryptographically secure key-generation commands (
openssl rand -hex 32) and step-by-step resolution guides directly in the UI. - 🎨 Layout Optimization: Refined the global application layout to host priority alerts gracefully, ensuring critical notices are unavoidable without overlapping essential monitoring controls.
v1.23.0
Full Changelog: v1.22.3...v1.23.0
🚀 Release v1.23.0
📝 Summary
This release introduces the highly requested Multiple Storage Profiles feature, enabling advanced storage management for professional surveillance setups. Users can now map specific cameras to different host volumes (e.g., SSDs for motion events or NAS for long-term storage) with independent quota enforcement and automated cleanup policies.
🛠️ Key Improvements
- 💾 Storage Profiles: Dedicated management UI to create and configure custom storage locations with absolute path validation and path traversal protection.
- 🎯 Advanced Quotas: Profile-level storage limits that automatically purge the oldest recordings across all assigned cameras when capacity is reached.
- 📁 Dynamic Routing: The VibeEngine now dynamically resolves and redirects write streams based on the assigned storage profile in real-time.
- 🛡️ Security Guards: Enhanced path validation prevents unauthorized local file access or traversal attacks via storage configurations.
- 📱 Responsive UI: Polished storage management dashboard with refined mobile stacking and element visibility.
- 🔄 Persistence: Full support for storage profiles in system backups, camera imports, and "Copy Settings" operations.
- 🐛 Stability: Fixed a critical
DetachedInstanceErrorduring camera/profile deletion to ensure smooth API responses.
Release v1.22.3
🚀 Release v1.22.3
📝 Summary
This release focuses on visual precision and layout adaptability. We've enhanced the WebCodecs rendering engine to correctly handle legacy aspect ratios and introduced a dynamic grid system that adjusts to each camera's unique resolution, ensuring a premium, undistorted viewing experience.
🛠️ Key Improvements
- 📐 Fix Aspect Ratio: Resolved horizontal stretching in WebCodecs for legacy 4:3 resolutions (e.g., 640x480). The video content now remains perfectly proportioned regardless of the container.
- 🖼️ Dynamic Camera Cards: The Live View grid now automatically calculates the aspect ratio of each camera. 4:3 cameras now occupy their native space, significantly reducing wasted black bars.
- 📡 Stream Resilience: Finalized bitstream-level configuration (SPS/PPS) injection to guarantee instant, "black-screen-free" starts for all H.264 streams.
- 💾 System Persistence: Verified full portability of all new streaming and mode-selection parameters in system backups and camera migrations.
VibeNVR v1.22.3 — Precise control, absolute resilience.
v1.22.2
Full Changelog: v1.22.1...v1.22.2
🚀 Release v1.22.2
📝 Summary
VibeNVR v1.22.2 focuses on maximum streaming reliability and user control. This release introduces bitstream-level configuration sniffing (NAL injection) to eliminate the "black screen" starts in WebCodecs and adds granular streaming mode selectors. We've also resolved critical engine demuxer issues and ensured that all new streaming parameters are fully persistent across system backups and camera imports.
🛠️ Key Improvements
- 📡 WebCodecs Resilience (NAL Injection): The engine now automatically sniffs H.264 configuration headers (SPS/PPS) and injects them into initial keyframes, ensuring immediate video playback even on cameras with infrequent configuration packets.
- 🎛️ Streaming Modes: New "Auto", "Force WebCodecs", and "Force MJPEG Polling" options are available globally and per-camera, providing a robust fail-safe for problematic hardware.
- 🛡️ Engine Stability: Fixed a critical
UnboundLocalErrorin the NAL parser bitstream loop that caused engine crashes and potential camera IP bans. - 🔗 RTSP Compatibility: Improved RTSP URL parsing to support raw paths with double slashes (e.g.,
rtsp://ip:port//stream2), ensuring compatibility with a wider range of camera brands. - 💾 Persistence & Audit: Full support for new parameters in system backups and camera import/export operations.
VibeNVR v1.22.2 — Precise control, absolute resilience.
v1.22.1
Full Changelog: v1.22.0...v1.22.1
🚀 Release v1.22.1 — WebCodecs Resilience & Speed
📝 Summary
This patch release focuses on perfecting the WebCodecs live streaming experience, specifically for environments with high network latency or jitter. By introducing intelligent keyframe caching in the backend and a smarter jitter buffer in the frontend, we've nearly eliminated "black screen" stalls and achieved near-instant stream synchronization.
🛠️ Key Improvements
- 📺 Backend Keyframe Cache: The engine now caches the most recent SPS/PPS/IDR packets, ensuring new WebSocket clients can start decoding immediately without waiting for the next GOP boundary.
- ⚡ Instant Synchronization: Dramatically reduced the time-to-first-frame on live views, especially noticeable on high-latency remote connections.
- 🧩 Smart Jitter Buffer: Implemented a 2-frame micro-buffer in the frontend to absorb network fluctuations while maintaining ultra-low latency.
- 🔄 Stall Prevention: Corrected the frame-dropping logic to prioritize the newest frames, ensuring the stream remains "live" even when network conditions degrade.
- 🛡️ Documentation Sync: Updated
SECURITY.mdand the system Wiki with detailed troubleshooting guides for WebCodecs and information on resilience mechanisms.
🐛 Bug Fixes
- Fixed a race condition in
StreamReaderthat could lead to inconsistent keyframe cache states under heavy load. - Resolved a logic error in
WebCodecsPlayer.jsxwhere older frames were incorrectly buffered while newer ones were dropped during backlog clearance.