🤖 AI-Generated Changelog
Added
- Settings page redesign: Tabbed layout with URL-hash navigation, live search across all settings, and a sticky save button for easier configuration management
- Streams page card grid: New card-based grid layout for streams with a recording-mode badge displayed on each stream card
- go2rtc config override editor: Full-featured YAML editor in settings with validation, presets, effective-config preview, and quarantine banner for invalid configurations
- go2rtc override safety: Automatic quarantine of invalid or crash-looping override configurations, surfaced in the UI with clear status indicators
- go2rtc effective-config preview: New API endpoint showing the merged configuration with YAML-aware redaction of sensitive values
- go2rtc server-side validation: Duplicate-key detection and structural validation of go2rtc override YAML before it is applied
- go2rtc binary discovery hardening: Searches well-known paths and probes the version to reliably locate the go2rtc binary
- AsyncButton and useAsyncAction: New UI primitive for async operations with built-in loading and error state handling
- Per-stream go2rtc source override: Individual streams can now specify a custom go2rtc source, overriding the default pipeline
Changed
- go2rtc configuration architecture: Base config is now emitted separately; a second
--configargument passes the user override, enabling upgrade-safe customization without losing settings - go2rtc config override size cap: Raised from 4 KB to 64 KB to support larger configurations
- Streams page layout: Displays 4 columns on extra-large screens (
2xl) for better use of wide displays - Theme polish: Custom scrollbar styling and support for the
prefers-reduced-motionaccessibility preference - Mobile navigation: Logo now links to home; toast notifications repositioned; safe-area insets applied for notched devices
Fixed
- Recordings table overflow: Corrected layout overflow issues in the recordings table
- Playback modal fit: Improved sizing and fit of the video playback modal
- Audio stream initialization: Declare audio stream before calling
avformat_write_header()to prevent initialization errors in UDT recordings - go2rtc non-RTSP URL handling: Skip RTSP-only URL fragments when the source scheme is not RTSP
- go2rtc disabled build stubs: Added missing stub implementations for override-pipeline APIs when go2rtc is compiled out
- Video controls visibility: Native video controls are now kept visible in the recordings modal
- Settings config state update: Guarded
setStatecall for effective config behind a mounted-ref check to prevent updates on unmounted components
🔗 Full Changelog: 0.33.2...0.34.0