* add prop to disable id field
* disable id field when editing profile mask/zone
also, disable if the zone name already exists in required_zones or the base config is being edited and the id already exists on a profile
* add backend validation to reject profile-omly masks/zones
* add tests
* update docs
* tweak
* restructure camera enable/disable pane
* remove obsolete camera edit form
* change terminology to off/on instead of disabled/enabled
* docs
* move menu options and add current camera name badge
* docs
* tweaks
* filter motion review by allowed cameras
* filter alertCameras by allowed cameras so the recent alerts query for restricted roles doesn't reference cameras they can't access
* skip data streams in chapter exports to avoid ffmpeg segfault
* formatting
* restrict debug replay UI entry points to admin users
* Adjust default iGPU name when it can't be found
* Fix when model tries to request an invalid camera
* Improve prompt
* add collapsible main nav items in settings
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* add review padding to explore debug replay api calls
* add semantic search model size widget
disables model_size select with n/a text when an embeddings genai provider is selected
* regenerate zone contours and per-zone filter masks on detect resolution change
* treat null as a clear sentinel in buildOverrides so nullable field edits don't snap back
* extract replay config sheet to new component
* add validation and messages for detect settings
* unlink shm frames when camera is removed
* drop stale shm cache refs when cached segment is too small for requested shape
* skip new-object frame cache write when current_frame is unavailable
* add tests
* use setdefault when adding a new camera
Multiple subscribers in the same process each unpickle the ZMQ payload independently and would otherwise write divergent Python objects to the shared cameras dict — leaving long-lived references (e.g. CameraState.camera_config) pointing at a copy that subsequent in-place mutations like apply_section_update can never reach. setdefault collapses everyone onto the first writer's object so attribute mutations propagate to every consumer in this process.
* rebuild ffmpeg commands on detect update
Rebuild the cached ffmpeg cmd so the next process spawn picks up new resolution/fps. Running cameras keep their existing cmd (ffmpeg_cmds is only read at process startup); replay cameras are recycled by CameraMaintainer to pick up the rebuilt cmd
* drop stale shm cache refs when cached segment size doesn't match requested shape
The cached SharedMemoryFrameManager reference can point at a segment whose
size no longer matches the requested shape — the segment was unlinked and
recreated at a different size in a camera add/remove cycle. This catches
both a resolution increase (cached too small) and a decrease (cached too
large, pointing at an orphaned inode whose stale bytes would otherwise be
misinterpreted at the new shape, producing distorted/miscolored YUV frames).
After reopening, if the OS-level segment still doesn't match the requested
shape we're in a transient mid-recreate state — either the maintainer
hasn't allocated the new segment yet (size too small) or we opened a
pre-recycle segment (size too big). Either way, skip the frame and don't
cache the mismatched ref.
* recycle replay camera on detect update
* discard tracked-object state when detect resolution changes mid-session
When detect resolution changes mid-session every tracked object we hold
was localized against the old pixel grid. Their boxes no longer
correspond to anything in the new frame, and the `end` callback that
fires when their IDs disappear from the new detect process's detections
publishes those stale boxes to consumers (LPR, snapshot crop) that slice
the new frame and crash on empty arrays. Drop the tracked-object state
on a shape change so no stale boxes ever cross the CameraState boundary.
Belt-and-suspenders: also drop any incoming batch whose boxes exceed the
current detect resolution. These are in-flight queue entries from the
pre-recycle detect process that beat the new detect process to the
queue; processing them would re-introduce stale-resolution tracked
objects we just dropped above. The per-camera detect process clamps
legitimate boxes to detect.width-1 / detect.height-1, so any coord
beyond that is unambiguously stale.
* rebuild motion and object filter masks on detect resolution change
Apply the detect update first so frame_shape reflects the new resolution
before we rebuild dependents.
Motion's rasterized_mask is sized to frame_shape at construction. When
detect resolution changes we must rebuild RuntimeMotionConfig so the
mask matches the new frame size; otherwise consumers like the LPR
processor and motion detector hit a shape mismatch when they index
frames with the stale mask.
Same story for per-object filter masks — rebuild RuntimeFilterConfig at
the new frame_shape so the merged global+per-object masks they hold
match what they'll be indexed against.
* republish motion and objects on in-memory detect resize
A detect resolution change also invalidates the rasterized masks on
motion and per-object filters. apply_section_update has rebuilt them at
the new frame_shape; publish them too so other processes replace their
old values.
* add test
* frontend
* add refresh topic for camera maintainer recycle action
The maintainer's recycle branch is doing an action (recycle the camera)
in response to a section-level signal. Introduce a
CameraConfigUpdateEnum.refresh case as an explicit action signal — the
maintainer subscribes to refresh instead of detect, parallel with add
and remove. Publishers fire refresh alongside detect when a recycle is
needed; section-level subscribers keep their existing topic.
Since no main-process subscriber listens for detect anymore, the
refresh handler calls recreate_ffmpeg_cmds() explicitly so the shared
CameraConfig's ffmpeg_cmds is rebuilt before the new subprocesses
spawn.
* factor stale-resolution state drop into a CameraState method
* use monotonic clock for detector inference duration to prevent negative values from wall clock steps
* add ability to set camera's webui_url from camera management pane
* Gemini send thought signature
* Update docs
* copy face and lpr configs from source camera to replay camera
* add guard
* improve dummy camera docs
* remove version number
* fix stale field message after reverting a conditional form field
Routes field-level conditional messages through a dedicated React Context instead of merging them into uiSchema. RJSF's Form keeps state.uiSchema sticky across renders during processPendingChange (formData is updated, uiSchema is not), so a previously injected ui:messages array stays attached to a field even after the triggering condition flips back to false. Context propagation re-runs FieldTemplate directly on every provider value change, sidestepping that staleness.
* add semantic search field message to note that model_size is irrelevant when embeddings provider is selected
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* filter replay camera from camera selectors
* add face rec and lpr to replay configuration sheet
* add missing config topic subscriptions in embeddings maintainer
* pop replay camera from config object when stopping
* ensure motion masks from source camera are copied to replay
* stop polling debug_replay/status after live_ready
* use vod for constructing replay clips
* render orphaned filter entries as collapsibles instead of the Key/Value editor
* Symlink for various AI files
* change replay confg dialog to platform aware sheet
* change agents title
* fix test
* tweak collapsible
* remove camera ui section in settings
no point to having it anymore with profiles and camera management settings
* fix admin response cache leak to non-admin users via nginx proxy_cache
* add model fetcher endpoint for genai config ui
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
Currently translated at 100.0% (1162 of 1162 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1150 of 1150 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (50 of 50 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1141 of 1141 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (127 of 127 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.8% (1128 of 1141 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (473 of 473 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (794 of 794 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (1122 of 1122 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (792 of 792 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (237 of 237 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (471 of 471 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (127 of 127 strings)
Co-authored-by: Edward Zhang <hsrzq@126.com>
Co-authored-by: GuoQing Liu <842607283@qq.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Currently translated at 100.0% (53 of 53 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1171 of 1171 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (811 of 811 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1150 of 1150 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (50 of 50 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1141 of 1141 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (127 of 127 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1137 of 1137 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (175 of 175 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1129 of 1129 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (794 of 794 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (145 of 145 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (473 of 473 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (127 of 127 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (129 of 129 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (45 of 45 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (59 of 59 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (64 of 64 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (237 of 237 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (40 of 40 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (237 of 237 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (471 of 471 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (101 of 101 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (1122 of 1122 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (792 of 792 strings)
Translated using Weblate (Spanish)
Currently translated at 52.5% (31 of 59 strings)
Translated using Weblate (Spanish)
Currently translated at 99.4% (174 of 175 strings)
Translated using Weblate (Spanish)
Currently translated at 23.3% (110 of 471 strings)
Translated using Weblate (Spanish)
Currently translated at 68.8% (31 of 45 strings)
Translated using Weblate (Spanish)
Currently translated at 21.8% (173 of 792 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (100 of 100 strings)
Translated using Weblate (Spanish)
Currently translated at 62.3% (63 of 101 strings)
Translated using Weblate (Spanish)
Currently translated at 40.6% (35 of 86 strings)
Translated using Weblate (Spanish)
Currently translated at 80.0% (32 of 40 strings)
Translated using Weblate (Spanish)
Currently translated at 67.6% (759 of 1122 strings)
Translated using Weblate (Spanish)
Currently translated at 70.3% (45 of 64 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: jjavin <javiernovoa@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/es/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
Currently translated at 100.0% (794 of 794 strings)
Translated using Weblate (Dutch)
Currently translated at 83.0% (49 of 59 strings)
Translated using Weblate (Dutch)
Currently translated at 83.9% (397 of 473 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (1150 of 1150 strings)
Translated using Weblate (Dutch)
Currently translated at 15.2% (72 of 473 strings)
Translated using Weblate (Dutch)
Currently translated at 30.0% (15 of 50 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (45 of 45 strings)
Translated using Weblate (Dutch)
Currently translated at 10.2% (81 of 794 strings)
Translated using Weblate (Dutch)
Currently translated at 59.3% (35 of 59 strings)
Translated using Weblate (Dutch)
Currently translated at 35.0% (14 of 40 strings)
Translated using Weblate (Dutch)
Currently translated at 23.7% (14 of 59 strings)
Translated using Weblate (Dutch)
Currently translated at 24.4% (11 of 45 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (26 of 26 strings)
Translated using Weblate (Dutch)
Currently translated at 63.4% (712 of 1122 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (25 of 25 strings)
Translated using Weblate (Dutch)
Currently translated at 11.8% (7 of 59 strings)
Translated using Weblate (Dutch)
Currently translated at 20.0% (8 of 40 strings)
Translated using Weblate (Dutch)
Currently translated at 8.8% (4 of 45 strings)
Translated using Weblate (Dutch)
Currently translated at 10.1% (80 of 792 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (22 of 22 strings)
Translated using Weblate (Dutch)
Currently translated at 93.7% (121 of 129 strings)
Co-authored-by: Bart Smeding <bartsmeding@gmail.com>
Co-authored-by: Björn Vanneste <info@nidhhoggr.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Hosted Weblate user 151476 <marijndekker3@gmail.com>
Co-authored-by: bb61523 <brambini@gmail.com>
Co-authored-by: soosterwaal <sebastiaan@bg-engineering.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/Config - Groups
Translation: Frigate NVR/Config - Validation
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Currently translated at 100.0% (53 of 53 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (811 of 811 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1171 of 1171 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1162 of 1162 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1151 of 1151 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1150 of 1150 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1141 of 1141 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (794 of 794 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (50 of 50 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (127 of 127 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1141 of 1141 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (501 of 501 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1137 of 1137 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (60 of 60 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (473 of 473 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1129 of 1129 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (794 of 794 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (1122 of 1122 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (237 of 237 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (127 of 127 strings)
Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com>
Co-authored-by: Gerard Ricart Castells <gerard.ricart@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Currently translated at 31.8% (7 of 22 strings)
Translated using Weblate (Thai)
Currently translated at 22.8% (40 of 175 strings)
Translated using Weblate (Thai)
Currently translated at 15.2% (9 of 59 strings)
Translated using Weblate (Thai)
Currently translated at 15.5% (7 of 45 strings)
Translated using Weblate (Thai)
Currently translated at 0.5% (4 of 794 strings)
Translated using Weblate (Thai)
Currently translated at 16.0% (4 of 25 strings)
Translated using Weblate (Thai)
Currently translated at 16.0% (8 of 50 strings)
Translated using Weblate (Thai)
Currently translated at 13.5% (8 of 59 strings)
Translated using Weblate (Thai)
Currently translated at 37.5% (24 of 64 strings)
Translated using Weblate (Thai)
Currently translated at 21.7% (38 of 175 strings)
Translated using Weblate (Thai)
Currently translated at 12.0% (3 of 25 strings)
Translated using Weblate (Thai)
Currently translated at 11.6% (10 of 86 strings)
Translated using Weblate (Thai)
Currently translated at 14.0% (7 of 50 strings)
Translated using Weblate (Thai)
Currently translated at 13.3% (6 of 45 strings)
Translated using Weblate (Thai)
Currently translated at 7.8% (90 of 1141 strings)
Translated using Weblate (Thai)
Currently translated at 0.3% (3 of 794 strings)
Translated using Weblate (Thai)
Currently translated at 4.6% (6 of 129 strings)
Translated using Weblate (Thai)
Currently translated at 1.2% (6 of 473 strings)
Translated using Weblate (Thai)
Currently translated at 77.6% (184 of 237 strings)
Translated using Weblate (Thai)
Currently translated at 9.6% (14 of 145 strings)
Translated using Weblate (Thai)
Currently translated at 27.2% (6 of 22 strings)
Translated using Weblate (Thai)
Currently translated at 8.0% (2 of 25 strings)
Translated using Weblate (Thai)
Currently translated at 11.8% (7 of 59 strings)
Translated using Weblate (Thai)
Currently translated at 8.8% (4 of 45 strings)
Translated using Weblate (Thai)
Currently translated at 10.4% (9 of 86 strings)
Translated using Weblate (Thai)
Currently translated at 16.0% (16 of 100 strings)
Translated using Weblate (Thai)
Currently translated at 21.1% (37 of 175 strings)
Translated using Weblate (Thai)
Currently translated at 15.0% (6 of 40 strings)
Translated using Weblate (Thai)
Currently translated at 45.0% (27 of 60 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ton Zabretooth <zabretooth@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/th/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/Config - Groups
Translation: Frigate NVR/Config - Validation
Translation: Frigate NVR/common
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
* filter outbound ws broadcasts by per-recipient camera access
* fan out config updates to comms
* tests
* mypy
* allow viewers to use jobstate
* update agent instructions
* remove vitest
* Ensure runtime options are passed
* Add attribute info to prompt when configured
* Move GenAI plugins to dedicated directory
* Migrate prompts to dedicated folder
* Move chat prompts to prompts
* Implement reasoning traces in the UI
* Cleanup
* Make azure a subclass of openai
* Implement reasoning for other providers
* mypy
* Cleanup
* preserve user-set min_score on attribute filters instead of bumping any 0.5 value
use model_fields_set to distinguish "user explicitly set min_score" from "Pydantic applied the generic FilterConfig default of 0.5"
* add config test for attributes
* fix attributes frontend type
* add expanded hidden field context
* extend schema modification
* special case for attributes
* i18n for attributes
* handle dedicated lpr mode
* strip unrendered FilterConfig fields from attribute filter form data to fix validation errors
* start audio transcription post processor when enabled on any camera
* Fetch embed key whenever an error occurs in case the llama server was restarted
* mypy
* add tooltips for colored dots in settings menu
* add ability to reorder cameras from management pane
* add ability to reorder birdseye
* add reordering save text to camera management view
* Include NPU in latency performance hint
* Implement turbo for NPU on object detection
* hide order fields
* drop auto-derived field paths from camera value when unset globally
* use correct field type for export hwaccel args
* add debug replay to detail actions menu
* clarify debug replay in docs
* guard get_current_frame_time against missing camera state
* Implement debug reply from export
* Refactor debug replay to use sources for dynamic playback
* Mypy
* fix debug export replay source timestamp handling
* skip replay cameras in stats immediately
* broadcast debug replay state over ws and buffer pre-OPEN sends
- push debug replay session state over the job_state ws topic so the status bar reacts instantly to start/stop without polling
- fix child-effect-before-parent-effect race in WsProvider that silently dropped initial snapshot requests on cold load
* fix debug replay test hang
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* detector UI fixes
- derive detector and model from memo rather than using two drain useeffects
- sanitize save payload through sanitizeSectionData to prevent yaml validation issues
* increase display duration for restart required toasts
* mimic logic in detector section for save all button
also, increase toast duration for restart required toasts
* fixes and tweaks
- use section hidden fields for sanitization instead of duplicating code
- use parent hooks so save all, pending data, and the status dots work correctly
* add embedded mode to BaseSection so parents can host the save action
* add optional action slot to current Frigate+ model summary
* add w-full to action slot flex wrapper for explicit width contract
* i18n
* merged detectors and model settings view
* fix document title
* Embed detector form in merged settings view
* add detection model card with tabs and custom model embed
* add Frigate+ model selector with filter popover to merged page
* Add mismatch banner and gate save on detector and model compatibility
* Wire atomic save, restart toast, and undo on detectors and model page
* Clear child pending data on undo
* route merged detectors and model view in settings
* trim Frigate+ page to account-only and remove old detection model view
* basic e2e
* Fix unsaved-changes guard, custom path leak, and post-failure cache resync
* Rename to Detectors and model, float Modified badge, use ConfigMessageBanner for mismatch
* Hide Plus/Custom tabs when Frigate+ is not enabled
* Detect active Plus model via model.plus.id instead of path prefix
* Sync state back to snapshot when child form un-modifies and remount on undo
* Always require restart on save since model changes also need one
* Wrap Frigate+ model selector in SplitCardRow with label and description
* rename tab
* update docs
* sync top-level model with default detector's resolved model
when the user doesn't define a top-level `model:` block, `FrigateConfig.model` stayed at pydantic field defaults (320×320, /labelmap.txt) while the per-detector model picked up `DEFAULT_MODEL` for openvino on cpu (300×300, coco_91cl_bkgr.txt introduced in #23127), causing `RemoteObjectDetector` to fail with "buffer is too small for requested array" because the SHM was sized from the per-detector model but mapped using the top-level one. After the detector loop, copy the first detector's resolved model up to `self.model` so both sides agree on dimensions and labelmap
* revert to cpu detector by default
use openvino cpu for new configs only
* add defaults
* sync filter entries with track and listen labels
- Auto-populate `audio.filters` from `audio.listen` instead of the full audio labelmap, matching how `objects.filters` is keyed by `track` (no longer need to populate the full audio labelmap, which was added in #22630)
- Synthesize the matching filter entries in the settings form on load so each track/listen label shows its collapsible after a profile is selected, since the backend's auto-populate only runs at config init
* translate main label for lifecycle description with attribute
* reject restricted go2rtc stream sources when added via api
* add env var check function
* Support token streaming stats
* Propogate streaming token stats to chat calls
* Show token stats for each image
* Add settings to handle token stats and other options
* i18n
* Use select
* Improve mobile layout and spacing
On multi-GPU systems, OpenVINO enumerates devices as "GPU.0", "GPU.1",
etc. rather than a single "GPU". The exact string match in
is_openvino_gpu_npu_available() fails to recognize these suffixed device
names, causing enrichments (face recognition, semantic search) to
silently fall back to CPU-only inference via ONNXModelRunner instead of
using OpenVINOModelRunner on GPU.
Switch from exact match to prefix match so both single-GPU ("GPU") and
multi-GPU ("GPU.0", "GPU.1") device names are correctly detected, along
with any future suffixed variants for NPU and other accelerators.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>