# Changelog All notable changes to NextNVR will be documented in this file. ## [0.4.0] — 2026-08-06 ### Added - Two-port auth system: `:8080` with optional master login, `:8090` always-open viewer - Auth management card in Settings UI - Add / remove cameras in Settings - Collapsible advanced camera settings - `remove.sh` for clean uninstall ### Changed - **Pivot to JSON config** — zero external Go dependencies - Deploy script: greenfield vs update detection, no interactive prompts - Camera names auto-sanitized (spaces → underscores) - Storage path in config only, deploy script no longer asks ### Fixed - First-run wizard auto-loads Settings when no cameras configured - Snapshot path resolution for clip thumbnails - Timezone-aware playback presets (BST) - XSS in clip cards (DOM-based rendering) - Interval leak in live grid - Credentials file permissions (0600) - Data race on recorder process manager ## [0.3.0] — 2026-08-05 ### Added - go2rtc integration for live streaming - Snapshots via go2rtc (1s interval, disk-based) - Focus overlay with go2rtc WebRTC player - ONVIF hybrid probe (TCP + SOAP) - Playback presets: Today, Yesterday, Last 7 Days, Custom - Per-minute archival snapshots for thumbnail browsing ### Changed - Flat recording directory: `{cam-name}/rec_*.mp4` + `snap_*.jpg` - Per-segment FFmpeg with `.part.mp4` atomic rename - go2rtc proxied through NextNVR to avoid mixed-content blocking - 7-day retention default ## [0.2.0] — 2026-08-05 ### Added - FFmpeg stream recorder with zero transcoding - Retention cleaner with hourly purge - Deployment script (now `deploy_nvr.sh`) ## [0.1.0] — 2026-08-05 ### Added - Initial project scaffold - YAML configuration with camera stubs - Embedded single-binary SPA - HTTP API endpoints - Live Wall 4x2 grid with focus overlay - Playback browser - ONVIF scan stub