v1.30.14
What's Changed
- 🧹 [code health: refactor complex motion detect logic and add tests] by @spupuz in #211
- 🧹 [Remove unused crud import] by @spupuz in #213
- 🧪 Add frontend tests for camera utils by @spupuz in #214
- fix(engine): fix AI motion state persistence logic when ignoring exclusion zones by @spupuz in #215
- 🎨 Palette: Keyboard Accessibility for Timeline Event Cards by @spupuz in #216
- ⚡ Optimize N+1 Query in Restore Users by @spupuz in #219
- ⚡ [Performance Improvement] Resolve N+1 delete query bottleneck in corrupted video cleanups by @spupuz in #220
- ⚡ [Optimize async PTZ endpoints by unblocking event loop] by @spupuz in #225
- 🎨 Palette: [UX improvement] Add keyboard accessibility to timeline hour filter by @spupuz in #226
- 🛡️ Sentinel: [MEDIUM] Fix timing attack in webhook verification by @spupuz in #227
- ⚡ Bolt: [performance improvement] by @spupuz in #228
- 🎨 Palette: Add accessible ARIA labels to timeline filter controls by @spupuz in #200
- 🧹 [code health: unused import removed] by @spupuz in #207
- 🧹 [refactor start_recording method to improve readability and code health] by @spupuz in #208
- ⚡ [Optimize N+1 queries in camera import] by @spupuz in #209
- 🧹 [code health] Remove unused imports in migrate_captured_before.py by @spupuz in #212
- 🧹 [remove leftover console.log from OnvifTab] by @spupuz in #217
Full Changelog: v1.30.13...v1.30.14