AI Search lands on the Events page, and a long investigation of broken event clips ends with playback fixed for good.
Added
- AI Search (beta). Search events in plain language, in all six UI languages. Structured queries (types, cameras, dates, times) answer instantly; descriptive ones ("someone in a red jacket") use your configured AI model and its stored event descriptions. Works best with AI event descriptions enabled; basic keyword search works without a model.
- Download button on the event player: save the full-quality clip as a file.
- A live Events page. New events appear in the sidebar as they happen; a still-recording clip shows a clear amber banner and the player switches to the finished clip by itself when the event ends.
- Multi-select camera and threat-level filters that persist per user profile, and a camera filter on the Logs page.
- Signing in from a deep link returns you to the page you asked for.
Fixed
- Event clips no longer break in the browser. Watching a clip while it was still recording could serve corrupt video that browsers refused to decode (VLC concealed it), and a restart mid-recording froze clips in that state forever. The live index now stops at what is on disk, clips reach the disk continuously, and an event only reports closed once its file is final. Previously affected clips play again after upgrading; nothing needs re-recording.
- A camera failing mid-recording now ends the clip cleanly at the gap instead of gluing undecodable resumed footage onto it. The event itself continues and closes normally.
- Notification snapshots can no longer starve a recording. The snapshot decoder runs at low priority with capped threads, so sampling a clip cannot drop the camera connection that is feeding it.
- The SD preview falls back to the HD clip automatically when it cannot play, and captures that never received a frame stop advertising a clip.