* generic job infrastructure
* types and dispatcher changes for jobs
* save data in memory only for completed jobs
* implement media sync job and endpoints
* change logs to debug
* websocket hook and types
* frontend
* i18n
* docs tweaks
* endpoint descriptions
* tweak docs
* added hwaccel_args to camera.record.export config struct
* populate camera.record.export.hwaccel_args with a cascade up to camera then global if 'auto'
* use new hwaccel args in export
* added documentation for camera-specific hwaccel export
* fix c/p error
* missed an import
* fleshed out the docs and comments a bit
* ruff lint
* separated out the tips in the doc
* fix documentation
* fix and simplify reference config doc
* improve chip tooltip display
- use formatList to use i18n separators instead of commas
- ensure the correct event type is used so sublabels are not run through normalization
- remove smart-capitalization classes as translated labels use i18n (which includes capitalization)
- give icons an optional key so that the console doesn't complain about duplication when rendering
* Add grace period for recording segment checks to prevent spurious ffmpeg restarts
* add admin precedence to proxy role_map resolution to prevent downgrade
* clean up
* formatting
* work around radix pointer events issue when dialog is opened from drawer
fixes https://github.com/blakeblackshear/frigate/discussions/21940
* prevent console warnings about missing titles and descriptions
make these invisible with sr-only
* remove duplicate language
* Adjust handling for device sizes
* Cleanup
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Update installation.md for Raspberry Pi and Hailo
Updated Hailo installation instructions to cover both Bookworm and Trixie OS on Raspberry Pi.
Referenced discussions: #21177, #20621, #20062, #19531
* Update user_installation.sh for Raspberry Pi (Bookworm and Trixie)
Simplified and improved the user installation script for Hailo to support Raspberry Pi OS Bookworm, Trixie, and x86 platforms.
Referenced discussions: #21177, #20621, #20062, #19531
* Update installation.md
* Update user_installation.sh
* Update installation.md
* Update installation.md
Added optional fix for PCIe descriptor page size error.
Related discussion: #19481
* Update installation.md
Changed kernel driver version check from modinfo to /sys/module for correct post-reboot output
* Adjust title prompt to have less rigidity
* Improve motion boxes handling for features that don't require motion
* Improve handling of classes starting with digits
* Improve vehicle nuance
* tweak lpr docs
* Improve grammar
* Don't allow # in face name
* add password requirements to new user dialog
* change password requirements
* Clenaup
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* version update
* Restrict go2rtc exec sources by default (#21543)
* Restrict go2rtc exec sources by default
* add docs
* check for addon value too
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add 640x640 Intel NPU stats
* use css instead of js for reviewed button hover state in filmstrip
* update copilot instructions to copy HA's format
* Set json schema for genai
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* use default stable api version for gemini genai client
* update gemini docs
* remove outdated genai.md and update correct file
* Classification fixes
* Mutate when a date is selected and marked as reviewed
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* tracking details tweaks
- fix 4:3 layout
- get and use aspect of record stream if different from detect stream
* aspect ratio docs tip
* spacing
* fix
* i18n fix
* additional logs on ffmpeg exit
* improve no camera view
instead of showing an "add camera" message, show a specific message for empty camera groups when frigate already has cameras added
* add note about separate onvif accounts in some camera firmware
* clarify review summary report docs
* review settings tweaks
- remove horizontal divider
- update description language for switches
- keep save button disabled until review classification settings change
* use correct Toaster component from shadcn
* clarify support for intel b-series (battlemage) gpus
* add clarifying comment to dummy camera docs
* misc triggers tweaks
i18n fixes
fix toaster color
fix clicking on labels selecting incorrect checkbox
* update copilot instructions
* lpr docs tweaks
* add retry params to gemini
* i18n fix
* ensure users only see recognized plates from accessible cameras in explore
* ensure all zone filters are converted to pixels
zone-level filters were never converted from percentage area to pixels. RuntimeFilterConfig was only applied to filters at the camera level, not zone.filters.
Fixes https://github.com/blakeblackshear/frigate/discussions/21694
* add test for percentage based zone filters
* use export id for key instead of name
* update gemini docs
* Strip model name before training
* Handle options file for go2rtc option
* Make reviewed optional and add null to API call
* Send reviewed for dashboard
* Allow setting context size for openai compatible endpoints
* push empty go2rtc config to avoid homekit error in log
* Add option to set runtime options for LLM providers
* Docs
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* icon improvements
add type to getIconForLabel
provide default icon for audio events
* Add preferred language to review docs
* prevent react Suspense crash during auth redirect
add redirect-check guards to stop rendering lazy routes while navigation is pending (fixes some users seeing React error #426 when auth expires)
* Uppsercase model name
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* mse player improvements
- fix WebSocket race condition by registering message handlers before sending and avoid closing CONNECTING sockets to eliminate "Socket is not connected" errors.
- attempt to resolve Safari MSE timeout and handler issues by wrapping temporary handlers in try/catch and stabilizing the permanent mse handler so SourceBuffer setup completes reliably.
- add intentional disconnect tracking to prevent unwanted reconnects during navigation/StrictMode cycles
* Update Ollama
* additional MSE tweaks
* Turn activity context prompt into a yaml example
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Correctly set query padding
* Adjust AMD headers and add community badge
* Simplify getting started guide for camera wizard
* add optimizing performance guide
* tweaks
* fix character issue
* fix more characters
* fix links
* fix more links
* Refactor new docs
* Add import
* Fix link
* Don't list hardware
* Reduce redundancy in titles
* Add note about Intel NPU and addon
* Fix ability to specify if card is using heading
* improve display of area percentage
* fix text color on genai summary chip
* fix indentation in genai docs
* Adjust default config model to align with recommended
* add correct genai key
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* disable modal on dropdown menu in explore
* add another example case for when classification overrides a sub label
* update ollama docs link
* Improve handling of automatic playback for recordings
* Improve ollama documentation
* Don't fall out when all recording segments exist
* clarify coral docs
* improve initial scroll to active item in detail stream
* i18n fixes
* remove console warning
* detail stream scrolling fixes for HA/iOS
* Improve usability of GenAI summary dialog and make clicking on the description directly open it
* Review card too
* Use empty card with dynamic text for review based on the user's config
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add shortSummary field to review summary to be used for notifications
* pull in current config version into default config
* fix crash when dynamically adding cameras
depending on where we are in the update loop, camera configs might not be updated yet and we are receiving detections already
* add no tracked objects and icon to explore summary view
* reset add camera wizard when closing and saving
* don't flash no exports icon while loading
* Improve handling of homekit config
* Increase prompt tokens reservation
* Adjust
* Catch event not found object detection
* Use thread lock for JinaV2 in onnxruntime
* remove incorrect embeddings process from memray docs
* only show transcribe button if audio event has video
* apply aspect ratio and margin constraints to path overlay in detail stream on mobile
improves a specific case where the overlay was not aligned with 4:3 cameras on mobile phones
* show metadata title as tooltip on icon hover in detail stream
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* use fallback timeout for opening media source
covers the case where there is no active connection to the go2rtc stream and the camera takes a long time to start
* Add review thumbnail URL to integration docs
* fix weekday starting point on explore when set to monday in UI settings
* only show allowed cameras and groups in camera filter button
* Reset the wizard state after closing with model
* remove footnote about 0.17
* 0.17
* add triggers to note
* add slovak
* Ensure genai client exists
* Correctly catch JSONDecodeError
* clarify docs for none class
* version bump on updating page
* fix ExportRecordingsBody to allow optional name field
fixes https://github.com/blakeblackshear/frigate/discussions/21413 because of https://github.com/blakeblackshear/frigate-hass-integration/pull/1021
* Catch remote protocol error from ollama
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Send preferred language for report service
* make object lifecycle scrollable in tracking details
* fix info popovers in live camera drawer
* ensure metrics are initialized if genai is enabled
* docs
* ollama cloud model docs
* Ensure object descriptions get claened up
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* remove footer messages and add update topic to motion tuner view
restart after changing values is no longer required
* add cache key and activity indicator for loading classification wizard images
* Always mark model as untrained when a classname is changed
* clarify object classification docs
* add debug logs for individual lpr replace_rules
* update memray docs
* memray tweaks
* Don't fail for audio transcription when semantic search is not enabled
* Fix incorrect mismatch for object vs sub label
* Check if the video is currently playing when deciding to seek due to misalignment
* Refactor timeline event handling to allow multiple timeline entries per update
* Check if zones have actually changed (not just count) for event state update
* show event icon on mobile
* move div inside conditional
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Fix genai callbacks in MQTT
* Cleanup cursor pointer for classification cards
* Cleanup
* Handle unknown SOCs for RKNN converter by only using known SOCs
* don't allow "none" as a classification class name
* change internal port user to admin and default unspecified username to viewer
* keep 5000 as anonymous user
* suppress tensorflow logging during classification training
* Always apply base log level suppressions for noisy third-party libraries even if no specific logConfig is provided
* remove decorator and specifically suppress TFLite delegate creation messages
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* attributes endpoint
* event endpoints
* add attributes to more filters
* add to suggestions and query in explore
* support attributes in search input
* i18n
* add object type filter to endpoint
* add attributes to tracked object details pane
* add generic multi select dialog
* save object attributes endpoint
* add group by param to fetch attributes endpoint
* add attribute editing to tracked object details
* docs
* fix docs
* update openapi spec to match python
* fix coral docs
* add note about sub label object classification with person
* Catch OSError for deleting classification image
* add docs for dummy camera debugging
* add to sidebar
* fix formatting
* fix
* avx instructions are required for classification
* break text on classification card to prevent button overflow
* Ensure there is no NameError when processing
* Don't use region for state classification models
* fix spelling
* Handle attribute based models
* Catch case of non-trained model that doesn't add infinite number of classification images
* Actually train object classification models automatically
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Fix Safari popover issue in classification wizard
* use name for key instead of title
prevents duplicate key warnings when users mix vaapi and qsv
* update auth api endpoint descriptions and docs
* tweak headings
* fix note
* clarify classification docs
* Fix cuda birdseye
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* only show jwt secret tip for admin users
* fix preview endpoint 403 for viewer role when "all" param is used
* Update docs dependencies
* add warning if ffmpeg isn't selected for reolink http streams
* Update the motion for motion masks
* Also update objects
* Add docs about backchannel and two way talk takeover
* don't require restart when deleting zone or mask
* Ensure motion is correctly set when adjusting masks
* don't use python style raw prefixes in yaml examples in LPR docs
* wording
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* conditionally display actions for admin role only
* only allow admins to save annotation offset
* Fix classification reset filter
* fix explore context menu from blocking pointer events on the body element after dialog close
applying modal=false to the menu (not to the dialog) to fix this in the same way as elsewhere in the codebase
* add select all link to face library, classification, and explore
* Disable iOS image dragging for classification card
* add proxmox ballooning comment
* lpr docs tweaks
* yaml list
* clarify tls_insecure
* Improve security summary format and usefulness
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* jwt permissions
* add old password to body req
* add model and migration
need to track the datetime that passwords were changed for the jwt
* auth api backend changes
- use os.open to create jwt secret with restrictive permissions (0o600: read/write for owner only)
- add backend validation for password strength
- add iat claim to jwt so the server can determine when a token was issued and reject any jwts issued before a user's password_changed_at timestamp, ensuring old tokens are invalidated after a password change
- set logout route to public to avoid 401 when logging out
- issue new jwt for users who change their own password so they stay logged in
* improve set password dialog
- add field to verify old password
- add password strength requirements
* frontend tweaks for password dialog
* i18n
* use verify endpoint for existing password verification
avoid /login side effects (creating a new session)
* public logout
* only check if password has changed on jwt refresh
* fix tests
Fix migration 030 by using raw sql to select usernames (avoid ORM selecting nonexistent columns)
* add multi device warning to password dialog
* remove password verification endpoint
Just send old_password + new password in one request, let the backend handle verification in a single operation