Commit Graph

1491 Commits

Author SHA1 Message Date
Josh Hawkins
16cff564c5 Media sync API refactor and UI (#21542)
* 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
2026-02-14 15:21:22 -07:00
Josh Hawkins
a57393fb50 Add media sync API endpoint (#21526)
* add media cleanup functions

* add endpoint

* remove scheduled sync recordings from cleanup

* move to utils dir

* tweak import

* remove sync_recordings and add config migrator

* remove sync_recordings

* docs

* remove key

* clean up docs

* docs fix

* docs tweak
2026-02-14 15:21:22 -07:00
Nicolas Mowen
6fbb6a843c Exports Improvements (#21521)
* Add images to case folder view

* Add ability to select case in export dialog

* Add to mobile review too
2026-02-14 15:21:22 -07:00
Nicolas Mowen
64f5f0b345 Add support for GPU and NPU temperatures (#21495)
* Add rockchip temps

* Add support for GPU and NPU temperatures in the frontend

* Add support for Nvidia temperature

* Improve separation

* Adjust graph scaling
2026-02-14 15:21:22 -07:00
Nicolas Mowen
096cf494ad Refactor temperature reporting for detectors and implement Hailo temp reading (#21395)
* Add Hailo temperature retrieval

* Refactor `get_hailo_temps()` to use ctxmanager

* Show Hailo temps in system UI

* Move hailo_platform import to get_hailo_temps

* Refactor temperatures calculations to use within detector block

* Adjust webUI to handle new location

---------

Co-authored-by: tigattack <10629864+tigattack@users.noreply.github.com>
2026-02-14 15:21:22 -07:00
Nicolas Mowen
6df07a6df7 Export filter UI (#21322)
* Get started on export filters

* implement basic filter

* Implement filtering and adjust api

* Improve filter handling

* Improve navigation

* Cleanup

* handle scrolling
2026-02-14 15:21:22 -07:00
Josh Hawkins
194a3dbbba Camera connection quality indicator (#21297)
* add camera connection quality metrics and indicator

* formatting

* move stall calcs to watchdog

* clean up

* change watchdog to 1s and separately track time for ffmpeg retry_interval

* implement status caching to reduce message volume
2026-02-14 15:21:22 -07:00
Nicolas Mowen
b05b26fe44 Case management UI (#21299)
* Refactor export cards to match existing cards in other UI pages

* Show cases separately from exports

* Add proper filtering and display of cases

* Add ability to edit and select cases for exports

* Cleanup typing

* Hide if no unassigned

* Cleanup hiding logic

* fix scrolling

* Improve layout
2026-02-14 15:21:21 -07:00
Josh Hawkins
5f93cee732 fix tooltips (#21989) 2026-02-13 07:22:28 -06:00
Josh Hawkins
67e3f8eefa Miscellaneous fixes (0.17 beta) (#21934)
* 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>
2026-02-12 13:42:08 -07:00
Josh Hawkins
ea1533f456 Miscellaneous Fixes (0.17 beta) (#21912)
* fix display of custom sublabels in review item chip

use "manual" as type so it's not run through translation and normalized, producing "Josh S Car" instead of "Josh's Car"

* use css instead of js for reviewed button hover state in filmstrip
2026-02-07 09:06:55 -07:00
GuoQing Liu
c9055ea941 fix: fix delete zone type i18n (#21894) 2026-02-05 09:38:09 -06:00
Josh Hawkins
21e4b36c7c Add languages (#21870)
* add persian, croatian, and slovak

* i18n

* fix formatting due to new version of ruff
2026-02-03 13:29:52 -06:00
Nicolas Mowen
2d83992284 Miscellaneous fixes (0.17 beta) (#21867)
* 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>
2026-02-03 08:31:00 -06:00
Josh Hawkins
b4520d9e2f Miscellaneous fixes (0.17 beta) (#21826)
* revert other changes

* fix verified icon overlay in debug view list

* Add classification object debug logs

* Formatting

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2026-01-29 12:42:06 -07:00
Josh Hawkins
3b6814fbc9 Revert "Miscellaneous fixes (0.17 beta) (#21764)" (#21825)
This reverts commit 50ac5a1483.
2026-01-29 11:30:21 -07:00
Marijn0
338d85a9a2 Fix i18n keys (#21814) 2026-01-28 13:55:38 -07:00
Josh Hawkins
50ac5a1483 Miscellaneous fixes (0.17 beta) (#21764)
* 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>
2026-01-25 18:59:25 -07:00
Josh Hawkins
a75f6945ae Miscellaneous fixes (0.17 beta) (#21737)
* 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>
2026-01-21 17:46:24 -07:00
Josh Hawkins
d633c7d966 Miscellaneous fixes (0.17 beta) (#21699)
* 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
2026-01-20 08:17:58 -07:00
Josh Hawkins
0a8f499640 Miscellaneous fixes (0.17 beta) (#21683)
* 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
2026-01-18 06:36:27 -07:00
Nicolas Mowen
bf099c3edd Miscellaneous fixes (0.17 beta) (#21655)
* Fix jetson stats reading

* Return result

* Avoid unknown class for cover image

* fix double encoding of passwords in camera wizard

* formatting

* empty homekit config fixes

* add locks to jina v1 embeddings

protect tokenizer and feature extractor in jina_v1_embedding with per-instance thread lock to avoid the "Already borrowed" RuntimeError during concurrent tokenization

* Capitalize correctly

* replace deprecated google-generativeai with google-genai

update gemini genai provider with new calls from SDK
provider_options specifies any http options
suppress unneeded info logging

* fix attribute area on detail stream hover

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2026-01-15 07:08:49 -07:00
Nicolas Mowen
2c34e1ec10 Miscellaneous fixes (0.17 beta) (#21607)
* 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>
2026-01-12 20:36:38 -07:00
GuoQing Liu
91cc6747b6 i18n miscellaneous fixes (#21614)
* fix: fix face library unknown label i18n wrong

* fix: fix review genai threat level i18n

* fix: fix preview unknown label i18n

* fix: fix AM/PM i18n display issue
2026-01-12 09:15:27 -06:00
Josh Hawkins
c08fa15724 Miscellaneous Fixes (0.17 beta) (#21575)
* 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>
2026-01-09 16:23:33 -07:00
GuoQing Liu
f3543cfee2 I18N Miscellaneous Fixes (#21573)
* fix: fix classification none tag i18n wrong

* fix: fix set password dialog jwt time i18n wrong

* fix: fix wizard other camera i18n

* fix: fix explore tracking detail audio i18n

* feat: add system processes info i18n

* fix: fix live page label i18n
2026-01-08 14:28:18 -07:00
Josh Hawkins
74d14cb8ca Miscellaneous Fixes (0.17 beta) (#21558)
* 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>
2026-01-07 17:29:19 -06:00
Nicolas Mowen
047ae19191 Miscellaneous fixes (0.17 Beta) (#21489)
* 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>
2026-01-04 12:12:03 -06:00
Josh Hawkins
e0d6365f62 Miscellaneous Fixes (0.17 beta) (#21474)
* 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>
2025-12-31 05:48:56 -07:00
Nicolas Mowen
e2a1208c90 Miscellaneous fixes (0.17 Beta) (#21443)
* Use thread lock for JinaV2 call as it sets multiple internal fields while being called

* fix audio label translation in explore filter

* Show event in all cases, even without non-none match

* improve i18n key fallback when translation files aren't loaded

just display a valid time now instead of "invalid time"

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-12-29 09:31:54 -06:00
Nicolas Mowen
3c5eb1aee5 Miscellaneous fixes (0.17 beta) (#21431)
* 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>
2025-12-26 08:45:03 -06:00
Josh Hawkins
a4ece9dae3 Miscellaneous Fixes (0.17 beta) (#21396)
* 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>
2025-12-24 08:03:09 -06:00
GuoQing Liu
f74df040bb fix: fix password setting overlay time i18n (#21387) 2025-12-22 05:56:19 -06:00
Nicolas Mowen
54f4af3c6a Miscellaneous fixes (#21373)
* 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>
2025-12-20 18:30:34 -06:00
GuoQing Liu
8a4d5f34da fix: fix system enrichments view classification i18n (#21366) 2025-12-20 05:45:31 -07:00
Josh Hawkins
60052e5f9f Miscellaneous Fixes (0.17 beta) (#21355)
* 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>
2025-12-19 18:59:26 -06:00
Nicolas Mowen
e636449d56 Miscellaneous fixes (0.17 beta) (#21350)
* 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>
2025-12-18 15:12:10 -07:00
Josh Hawkins
6a0e31dcf9 Add object classification attributes to Tracked Object Details (#21348)
* 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
2025-12-18 08:35:47 -06:00
Josh Hawkins
ae009b9861 Miscellaneous Fixes (0.17 beta) (#21336)
* 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>
2025-12-17 16:52:27 -07:00
GuoQing Liu
13957fec00 classification i18n fix (#21331)
* fix: fix classification pages none label i18n

* fix: fix README_CN formatting issue
2025-12-17 15:26:11 -07:00
Nicolas Mowen
78eace258e Miscellaneous Fixes (0.17 Beta) (#21320)
* Exclude D-FINE from using CUDA Graphs

* fix objects count in detail stream

* Add debugging for classification models

* validate idb stored stream name and reset if invalid

fixes https://github.com/blakeblackshear/frigate/discussions/21311

* ensure jina loading takes place in the main thread to prevent lazily importing tensorflow in another thread later

reverts atexit changes in https://github.com/blakeblackshear/frigate/pull/21301 and fixes https://github.com/blakeblackshear/frigate/discussions/21306

* revert old atexit change in bird too

* revert types

* ensure we bail in the live mode hook for empty camera groups

prevent infinite rendering on camera groups with no cameras

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-12-16 22:35:43 -06:00
Josh Hawkins
e7d047715d Miscellaneous Fixes (0.17 beta) (#21301)
* Wait for config to load before evaluating route access

Fix race condition where custom role users are temporarily denied access after login while config is still loading. Defer route rendering in DefaultAppView until config is available so the complete role list is known before ProtectedRoute evaluates permissions

* Use batching for state classification generation

* Ignore incorrect scoring images if they make it through the deletion

* Delete unclassified images

* mitigate tensorflow atexit crash by pre-importing tflite/tensorflow on main thread

Pre-import Interpreter in embeddings maintainer and add defensive lazy imports in classification processors to avoid worker-thread tensorflow imports causing "can't register atexit after shutdown"

* don't require old password for users with admin role when changing passwords

* don't render actions menu if no options are available

* Remove hwaccel arg as it is not used for encoding

* change password button text

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2025-12-16 08:11:53 -06:00
Issy Szemeti
818cccb2e3 Settings page layout shift - follow up (#21300)
* Fix layout shift with camera filter

* Move min height
2025-12-15 11:42:11 -07:00
Issy Szemeti
f543d0ab31 Fix layout shift with camera filter (#21298) 2025-12-15 11:18:41 -07:00
Nicolas Mowen
fa16539429 Miscellaneous Fixes (#21289)
* Exclude yolov9 license plate from migraphx runner

* clarify auth endpoint return in openapi schema

* Clarify ROCm enrichments

* fix object mask creation

* Consider audio activity when deciding if recording segments should be kept due to motion

* ensure python defs match openapi spec for auth endpoints

* Fix check for audio activity to keep a segemnt

* fix calendar popover modal bug on export dialog

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-12-15 09:32:11 -06:00
Josh Hawkins
e1545a8db8 Miscellaneous Fixes (0.17 beta) (#21279)
* 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>
2025-12-14 16:41:38 -07:00
Nicolas Mowen
8ddcbf9a8d Improve handling of backchannel audio in camera wizard (#21250)
* Improve handling of backchannel audio in camera wizard

* Cleanup

* look for backchannel on all registered streams on save

avoids potential issues with a timeout in stream registration

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-12-13 07:12:37 -07:00
Josh Hawkins
308e692732 Miscellaneous Fixes (#21241)
* 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>
2025-12-12 07:45:03 -06:00
Josh Hawkins
fa6dda6735 Miscellaneous Fixes (#21208)
* 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>
2025-12-11 07:23:34 -07:00
Nicolas Mowen
4cf4520ea7 Miscellaneous Fixes (#21193)
* Fix saving zone friendly name when it wasn't set

* Fix UTF-8 handling for Onvif

* Don't remove none directory for classes

* Lookup all event IDs for review item immediately

* Cleanup typing

* Only fetch events when review group is open

* Cleanup

* disable debug paths switch for autotracking cameras

* fix clickable birdseye

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-12-09 12:08:44 -06:00