Josh Hawkins
c527ca2b58
fixes
2026-10-29 16:01:45 -05:00
Josh Hawkins
d7178faaab
change wording
2026-10-29 16:01:45 -05:00
Josh Hawkins
70405971d6
Document anonymous analytics
2026-10-29 16:01:45 -05:00
Josh Hawkins
a50a8bace5
Show the analytics preview in telemetry settings
2026-10-29 16:01:45 -05:00
Josh Hawkins
3fe51fbbe2
Record the image variant in each Dockerfile
2026-10-29 16:01:36 -05:00
Josh Hawkins
3b527c19a1
Generate the analytics schema and check it in CI
2026-10-29 16:01:27 -05:00
Josh Hawkins
f3ab6cbda7
Add the analytics preview API
2026-10-29 16:01:27 -05:00
Josh Hawkins
2a9a9edff4
Send the daily analytics report from the main process
2026-10-29 16:01:14 -05:00
Josh Hawkins
2fd9c11dde
Add the analytics report transport
2026-10-29 16:01:14 -05:00
Josh Hawkins
89745dc903
Build analytics reports from the section collectors
2026-10-29 16:01:14 -05:00
Josh Hawkins
e474db5008
Add the health analytics collector
2026-10-29 16:01:14 -05:00
Josh Hawkins
df40ffd932
Add the features analytics collector
2026-10-29 16:01:14 -05:00
Josh Hawkins
e0d9ef762b
Add the cameras analytics collector
2026-10-29 16:01:14 -05:00
Josh Hawkins
a155e0d79c
Add the detection analytics collector
2026-10-29 16:01:14 -05:00
Josh Hawkins
e0764dae58
Add the install and hardware analytics collectors
2026-10-29 16:01:14 -05:00
Josh Hawkins
6cbae92f18
Add the analytics state file
2026-10-29 16:01:14 -05:00
Josh Hawkins
355dc6fe93
Add the analytics report schema
2026-10-29 16:01:14 -05:00
Josh Hawkins
47d7d6348e
Add analytics opt-in setting, prompt notice kind, and notice watermarks
2026-10-29 16:01:14 -05:00
a6b2a29c4c
Bump protobuf from 3.20.3 to 5.29.6 in /docker/tensorrt in the pip-trt-security group across 1 directory ( #24825 )
...
CI / AMD64 Build (push) Waiting to run
CI / AMD64 Smoke Test (push) Blocked by required conditions
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* Bump protobuf
Bumps the pip-trt-security group with 1 update in the /docker/tensorrt directory: [protobuf](https://developers.google.com/protocol-buffers/ ).
Updates `protobuf` from 3.20.3 to 5.29.6
---
updated-dependencies:
- dependency-name: protobuf
dependency-version: 5.29.6
dependency-type: direct:production
dependency-group: pip-trt-security
...
Signed-off-by: dependabot[bot] <support@github.com >
* keep amd64 tensorrt protobuf on 7.36
Dependabot moved every protobuf pin in docker/tensorrt to 5.29, but the security alerts only cover the aarch64 pin. On amd64 that would downgrade protobuf below what TensorFlow 2.21 requires (>=6.31.1), and the image would build with a pip warning and fail at import tensorflow. This keeps the aarch64 change to 5.29.6, which is the same change verified on #24350 (onnx 1.14.0 and TensorFlow 2.19 both work on it).
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com >
2026-10-29 14:04:22 -05:00
40aa2da22a
Bump the web-security group across 1 directory with 2 updates ( #24826 )
...
Bumps the web-security group with 2 updates in the /web directory: [fast-uri](https://github.com/fastify/fast-uri ) and [postcss-selector-parser](https://github.com/postcss/postcss-selector-parser ).
Updates `fast-uri` from 3.1.8 to 3.1.9
- [Release notes](https://github.com/fastify/fast-uri/releases )
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9 )
Updates `fast-uri` from 4.2.1 to 4.2.3
- [Release notes](https://github.com/fastify/fast-uri/releases )
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9 )
Updates `postcss-selector-parser` from 6.1.4 to 6.1.5
- [Release notes](https://github.com/postcss/postcss-selector-parser/releases )
- [Changelog](https://github.com/postcss/postcss-selector-parser/blob/6.1.5/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss-selector-parser/compare/6.1.4...6.1.5 )
---
updated-dependencies:
- dependency-name: fast-uri
dependency-version: 3.1.9
dependency-type: indirect
dependency-group: web-security
- dependency-name: fast-uri
dependency-version: 4.2.3
dependency-type: indirect
dependency-group: web-security
- dependency-name: postcss-selector-parser
dependency-version: 6.1.5
dependency-type: indirect
dependency-group: web-security
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-29 13:16:34 -05:00
Nicolas Mowen and GitHub
3dd59d9a44
Optimize Python Tests ( #24823 )
...
* Optimize tests
* Address comments
* Fix test
2026-10-29 12:39:21 -05:00
Nicolas Mowen and GitHub
bbf23ccce7
Refactor TFL so code is shared among all detectors ( #24822 )
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
2026-10-29 08:49:18 -06:00
Josh Hawkins and GitHub
4953c19a71
Miscellaneous fixes ( #24820 )
...
* keep base path in logout redirect
* store manual event sub labels as verified objects
Manual events created with a sub label were stored in the review item as "label: sub_label", so review previews and collapsed History cards showed a generic icon, the review label filter missed them, and the sub label never reached sub_labels for chips, notifications, or GenAI prompts. The object processor now publishes the label and sub label separately, and the review maintainer stores them as label-verified plus a sub_labels entry, the same as tracked objects.
* only expire snapshots for events that still have one
Snapshot expiry selected every event older than snapshot retention, including events whose snapshot was already deleted, so with snapshot retention shorter than alert/detection retention the same missing files were unlinked again every cleanup cycle until the event row expired. That was nearly free on local disk but caused constant metadata load on network shares. The expiry queries now filter on has_snapshot so each snapshot is deleted once.
2026-10-29 09:04:16 -05:00
Nicolas Mowen and GitHub
ff2cd6a417
Add LFM to recommended local models ( #24812 )
2026-10-27 21:58:47 -05:00
Gleb Nikiforov and GitHub
4f03480afd
Fix audio worker startup after enabling a disabled camera ( #24806 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* Fix audio worker startup after enabling a disabled camera
* Document audio lifecycle test helpers
* Focus audio startup coverage on the enabled update regression
2026-10-26 17:44:48 -05:00
Josh Hawkins and GitHub
9769741713
Set modified time on case zip entries ( #24803 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* set modified time on case download zip entries
Case download zip entries were written with the zip format's 1980 placeholder date, so extracted files showed a blank or 1980 modified date. Each entry now uses the export's recording start time, converted with the UI timezone since zip times have no zone and extractors read them as local time.
* clamp case zip entry dates to 1980
2026-10-26 13:17:48 -05:00
Josh Hawkins and GitHub
0dc05305ae
Improve History playback after camera audio dropouts ( #24793 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* skip vod clips that start after their audio ends
When a camera's audio dropped out, a recording segment could end its audio early. If a playback range started past that point in the segment, nginx-vod saw no audio track in the first clip, failed the whole range with a track count mismatch, and left the player spinning for up to an hour of footage. Recording now stores each segment's audio length alongside its keyframe index, from the same ffprobe pass, and plan_clip skips a clip whose window starts at or after its audio ends when the range has other clips. A range made of only that clip still plays video-only, and legacy rows without the new column are unchanged.
* keep audio skip consistent with playback
Clips were skipped even when the range would be served video-only, and seeking into a skipped span landed on later footage. The skip now only applies when every row in the range carries audio, and seeks inside a zero-duration span land on the next clip.
2026-10-26 06:25:21 -06:00
Josh Hawkins and GitHub
975f346618
Export dialog improvements ( #24787 )
...
* show validation errors in multi-camera export
Clearing part of a time field in the export time picker set the range to NaN, while the picker kept showing a valid fallback time. The multi-camera Export button then stayed disabled with no explanation, and non-admins could never start an export because a case name was required even though they can't see the case field. The picker now ignores incomplete time values. The multi-camera tab shows inline errors for an invalid range, no selected cameras, and a blank case name, only requires a case name from admins, and prefills a default case name.
* add viewer export test and remove stale non-admin case text
* fix test
2026-10-26 06:24:34 -06:00
Josh Hawkins and GitHub
9fec1c76b5
Update zod to 4 ( #24791 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* fix races in ui settings import e2e tests
confirmImport clicked any button named "Import", so when the file parse was slow it hit the Import Settings button before the dialog opened and the page never reloaded. The click is now scoped to the dialog. The legacy layouts test also wrote naturalAspectLayout after the view had already read it, so it reloads the view after the write.
* update zod to 4.6.7
zod 4 types the input of z.coerce.number() as unknown, so the zone, camera wizard, and classification edit forms pass number to keep their field types. The ONVIF port error showed zod's built-in English text, which zod 4 rewords, so it now uses a translated message. New e2e tests cover zone inertia validation and camera wizard step 1 validation.
2026-10-25 20:44:39 -06:00
Josh Hawkins and GitHub
7d4b87946e
Miscellaneous fixes ( #24790 )
...
* stagger the daily region grid rebuild across cameras
Every camera requested its region grid at exactly 02:00, so the requests queued up in the dispatcher and held up recording segment inserts behind them. Each camera now picks a random offset of up to an hour.
* only log ffmpeg crashes when restarting
* round preview skeleton corners to match the player
2026-10-25 18:13:00 -05:00
7738f022e7
Update openai requirement from ==3.35.* to ==3.36.* in /docker/main ( #24784 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Updates the requirements on [openai](https://github.com/openai/openai-python ) to permit the latest version.
- [Release notes](https://github.com/openai/openai-python/releases )
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md )
- [Commits](https://github.com/openai/openai-python/compare/v3.35.0...v3.36.1 )
---
updated-dependencies:
- dependency-name: openai
dependency-version: 3.36.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:14:20 -05:00
ba6e3717f4
Update google-genai requirement ( #24779 )
...
Updates the requirements on [google-genai](https://github.com/googleapis/python-genai ) to permit the latest version.
Updates `google-genai` to 2.32.0
- [Release notes](https://github.com/googleapis/python-genai/releases )
- [Changelog](https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md )
- [Commits](https://github.com/googleapis/python-genai/compare/v2.31.0...v2.32.0 )
---
updated-dependencies:
- dependency-name: google-genai
dependency-version: 2.32.0
dependency-type: direct:production
dependency-group: pydantic-genai
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:14:12 -05:00
197ed252d2
Update onnxruntime requirement from ==1.30.* to ==1.31.* in /docker/main ( #24781 )
...
Updates the requirements on [onnxruntime](https://github.com/microsoft/onnxruntime ) to permit the latest version.
- [Release notes](https://github.com/microsoft/onnxruntime/releases )
- [Changelog](https://github.com/microsoft/onnxruntime/blob/main/docs/ReleaseNotesWorkflow.md )
- [Commits](https://github.com/microsoft/onnxruntime/compare/v1.30.0...v1.31.0 )
---
updated-dependencies:
- dependency-name: onnxruntime
dependency-version: 1.31.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:14:01 -05:00
14ddaf9df3
Bump tzlocal in /docker/main in the pip-main-minor-patch group ( #24780 )
...
Bumps the pip-main-minor-patch group in /docker/main with 1 update: [tzlocal](https://github.com/regebro/tzlocal ).
Updates `tzlocal` from 5.4.4 to 5.4.5
- [Changelog](https://github.com/regebro/tzlocal/blob/master/CHANGES.txt )
- [Commits](https://github.com/regebro/tzlocal/compare/5.4.4...5.4.5 )
---
updated-dependencies:
- dependency-name: tzlocal
dependency-version: 5.4.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: pip-main-minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:12:21 -05:00
113d499a61
Update fastapi requirement from ==0.153.* to ==0.159.* in /docker/main ( #24783 )
...
* Update fastapi requirement from ==0.153.* to ==0.159.* in /docker/main
Updates the requirements on [fastapi](https://github.com/fastapi/fastapi ) to permit the latest version.
- [Release notes](https://github.com/fastapi/fastapi/releases )
- [Commits](https://github.com/fastapi/fastapi/compare/0.153.0...0.159.1 )
---
updated-dependencies:
- dependency-name: fastapi
dependency-version: 0.159.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* Move enum param hints to json_schema_extra for fastapi 0.159
FastAPI 0.159 no longer accepts extra keyword arguments on Path() and
Query(), so passing enum= raised a TypeError on import.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com >
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-25 08:09:44 -05:00
ccb58bdff4
Bump actions/setup-python ( #24782 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Bumps the actions group with 1 update in the / directory: [actions/setup-python](https://github.com/actions/setup-python ).
Updates `actions/setup-python` from 7.0.0 to 7.1.0
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/v7.0.0...v7.1.0 )
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-version: 7.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: actions
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:03:37 -05:00
68acbe98b2
Bump the web-minor-patch group in /web with 8 updates ( #24785 )
...
Bumps the web-minor-patch group in /web with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [apexcharts](https://github.com/apexcharts/apexcharts.js ) | `8.3.1` | `8.4.1` |
| [framer-motion](https://github.com/motiondivision/motion ) | `14.4.0` | `14.6.0` |
| [i18next](https://github.com/i18next/i18next ) | `26.5.3` | `26.5.5` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `1.60.0` | `1.61.0` |
| [react-i18next](https://github.com/i18next/react-i18next ) | `17.1.0` | `17.1.1` |
| [virtua](https://github.com/inokawa/virtua ) | `0.53.5` | `0.53.6` |
| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash ) | `4.17.26` | `4.17.27` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `8.3.4` | `8.3.5` |
Updates `apexcharts` from 8.3.1 to 8.4.1
- [Release notes](https://github.com/apexcharts/apexcharts.js/releases )
- [Commits](https://github.com/apexcharts/apexcharts.js/compare/v8.3.1...v8.4.1 )
Updates `framer-motion` from 14.4.0 to 14.6.0
- [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md )
- [Commits](https://github.com/motiondivision/motion/compare/v14.4.0...v14.6.0 )
Updates `i18next` from 26.5.3 to 26.5.5
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v26.5.3...v26.5.5 )
Updates `lucide-react` from 1.60.0 to 1.61.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.61.0/packages/lucide-react )
Updates `react-i18next` from 17.1.0 to 17.1.1
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/react-i18next/compare/v17.1.0...v17.1.1 )
Updates `virtua` from 0.53.5 to 0.53.6
- [Release notes](https://github.com/inokawa/virtua/releases )
- [Commits](https://github.com/inokawa/virtua/compare/0.53.5...0.53.6 )
Updates `@types/lodash` from 4.17.26 to 4.17.27
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash )
Updates `vite` from 8.3.4 to 8.3.5
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite )
---
updated-dependencies:
- dependency-name: apexcharts
dependency-version: 8.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: framer-motion
dependency-version: 14.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: i18next
dependency-version: 26.5.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: lucide-react
dependency-version: 1.61.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: react-i18next
dependency-version: 17.1.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: virtua
dependency-version: 0.53.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: "@types/lodash"
dependency-version: 4.17.27
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: vite
dependency-version: 8.3.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-25 08:03:32 -05:00
David McNett and GitHub
04c62c2ce3
Fix classification model card missing cover image when first category is empty ( #24768 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
The cover image only checked the first category returned by the dataset
API (after skipping none/unknown) and gave up if it had no images. Since
category order follows the dataset directory listing, a model whose first
listed category is still empty showed the skeleton placeholder even when
other categories had plenty of images.
Use the first category that actually has images instead.
2026-10-24 08:12:33 -05:00
f7d532a09d
Update fastapi requirement from ==0.142.* to ==0.153.* in /docker/main ( #24763 )
...
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Updates the requirements on [fastapi](https://github.com/fastapi/fastapi ) to permit the latest version.
- [Release notes](https://github.com/fastapi/fastapi/releases )
- [Commits](https://github.com/fastapi/fastapi/compare/0.142.0...0.153.0 )
---
updated-dependencies:
- dependency-name: fastapi
dependency-version: 0.152.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 09:13:35 -05:00
0171a54207
Bump the web-minor-patch group across 1 directory with 24 updates ( #24765 )
...
* Bump the web-minor-patch group across 1 directory with 24 updates
Bumps the web-minor-patch group with 24 updates in the /web directory:
| Package | From | To |
| --- | --- | --- |
| [framer-motion](https://github.com/motiondivision/motion ) | `14.0.0` | `14.4.0` |
| [i18next](https://github.com/i18next/i18next ) | `26.4.2` | `26.5.3` |
| [i18next-http-backend](https://github.com/i18next/i18next-http-backend ) | `4.0.2` | `4.0.4` |
| [js-yaml](https://github.com/nodeca/js-yaml ) | `5.4.3` | `5.5.0` |
| [konva](https://github.com/konvajs/konva ) | `10.7.1` | `10.9.0` |
| [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react ) | `1.52.0` | `1.60.0` |
| [react](https://github.com/react/react/tree/HEAD/packages/react ) | `19.3.0` | `19.3.1` |
| [react-dom](https://github.com/react/react/tree/HEAD/packages/react-dom ) | `19.3.0` | `19.3.1` |
| [react-dropzone](https://github.com/react-dropzone/react-dropzone ) | `20.1.2` | `20.1.4` |
| [react-hook-form](https://github.com/react-hook-form/react-hook-form ) | `7.89.0` | `7.90.0` |
| [react-i18next](https://github.com/i18next/react-i18next ) | `17.0.16` | `17.1.0` |
| [react-konva](https://github.com/konvajs/react-konva ) | `19.3.0` | `19.3.2` |
| [tailwind-merge](https://github.com/dcastil/tailwind-merge/tree/HEAD/packages/tailwind-merge ) | `2.4.0` | `2.6.1` |
| [virtua](https://github.com/inokawa/virtua ) | `0.53.3` | `0.53.5` |
| [@playwright/test](https://github.com/microsoft/playwright ) | `1.64.0` | `1.64.1` |
| [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash ) | `4.17.25` | `4.17.26` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `26.6.4` | `26.6.5` |
| [eslint](https://github.com/eslint/eslint ) | `10.12.0` | `10.13.0` |
| [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier ) | `5.5.6` | `5.5.7` |
| [monaco-editor](https://github.com/microsoft/monaco-editor ) | `0.52.2` | `0.53.0` |
| [postcss](https://github.com/postcss/postcss ) | `8.5.29` | `8.5.31` |
| [prettier](https://github.com/prettier/prettier ) | `3.9.9` | `3.9.10` |
| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) | `8.71.1` | `8.72.0` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `8.3.3` | `8.3.4` |
Updates `framer-motion` from 14.0.0 to 14.4.0
- [Changelog](https://github.com/motiondivision/motion/blob/main/CHANGELOG.md )
- [Commits](https://github.com/motiondivision/motion/compare/v14.0.0...v14.4.0 )
Updates `i18next` from 26.4.2 to 26.5.3
- [Release notes](https://github.com/i18next/i18next/releases )
- [Changelog](https://github.com/i18next/i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next/compare/v26.4.2...v26.5.3 )
Updates `i18next-http-backend` from 4.0.2 to 4.0.4
- [Changelog](https://github.com/i18next/i18next-http-backend/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/i18next-http-backend/compare/v4.0.2...v4.0.4 )
Updates `js-yaml` from 5.4.3 to 5.5.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/5.4.3...5.5.0 )
Updates `konva` from 10.7.1 to 10.9.0
- [Release notes](https://github.com/konvajs/konva/releases )
- [Changelog](https://github.com/konvajs/konva/blob/master/CHANGELOG.md )
- [Commits](https://github.com/konvajs/konva/compare/10.7.1...10.9.0 )
Updates `lucide-react` from 1.52.0 to 1.60.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.60.0/packages/lucide-react )
Updates `react` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases )
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react )
Updates `react-dom` from 19.3.0 to 19.3.1
- [Release notes](https://github.com/react/react/releases )
- [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md )
- [Commits](https://github.com/react/react/commits/v19.3.1/packages/react-dom )
Updates `react-dropzone` from 20.1.2 to 20.1.4
- [Release notes](https://github.com/react-dropzone/react-dropzone/releases )
- [Commits](https://github.com/react-dropzone/react-dropzone/compare/v20.1.2...v20.1.4 )
Updates `react-hook-form` from 7.89.0 to 7.90.0
- [Release notes](https://github.com/react-hook-form/react-hook-form/releases )
- [Changelog](https://github.com/react-hook-form/react-hook-form/blob/master/CHANGELOG.md )
- [Commits](https://github.com/react-hook-form/react-hook-form/compare/v7.89.0...v7.90.0 )
Updates `react-i18next` from 17.0.16 to 17.1.0
- [Changelog](https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md )
- [Commits](https://github.com/i18next/react-i18next/compare/v17.0.16...v17.1.0 )
Updates `react-konva` from 19.3.0 to 19.3.2
- [Release notes](https://github.com/konvajs/react-konva/releases )
- [Changelog](https://github.com/konvajs/react-konva/blob/master/RELEASE_NOTES.md )
- [Commits](https://github.com/konvajs/react-konva/compare/v19.3.0...v19.3.2 )
Updates `tailwind-merge` from 2.4.0 to 2.6.1
- [Release notes](https://github.com/dcastil/tailwind-merge/releases )
- [Commits](https://github.com/dcastil/tailwind-merge/commits/v2.6.1/packages/tailwind-merge )
Updates `virtua` from 0.53.3 to 0.53.5
- [Release notes](https://github.com/inokawa/virtua/releases )
- [Commits](https://github.com/inokawa/virtua/compare/0.53.3...0.53.5 )
Updates `@playwright/test` from 1.64.0 to 1.64.1
- [Release notes](https://github.com/microsoft/playwright/releases )
- [Commits](https://github.com/microsoft/playwright/compare/v1.64.0...v1.64.1 )
Updates `@types/lodash` from 4.17.25 to 4.17.26
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash )
Updates `@types/node` from 26.6.4 to 26.6.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.12.0 to 10.13.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.12.0...v10.13.0 )
Updates `eslint-plugin-prettier` from 5.5.6 to 5.5.7
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases )
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.6...v5.5.7 )
Updates `monaco-editor` from 0.52.2 to 0.53.0
- [Release notes](https://github.com/microsoft/monaco-editor/releases )
- [Changelog](https://github.com/microsoft/monaco-editor/blob/main/CHANGELOG.md )
- [Commits](https://github.com/microsoft/monaco-editor/compare/v0.52.2...v0.53.0 )
Updates `postcss` from 8.5.29 to 8.5.31
- [Release notes](https://github.com/postcss/postcss/releases )
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md )
- [Commits](https://github.com/postcss/postcss/compare/8.5.29...8.5.31 )
Updates `prettier` from 3.9.9 to 3.9.10
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/3.9.9...3.9.10 )
Updates `typescript-eslint` from 8.71.1 to 8.72.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.72.0/packages/typescript-eslint )
Updates `vite` from 8.3.3 to 8.3.4
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v8.3.4/packages/vite )
---
updated-dependencies:
- dependency-name: framer-motion
dependency-version: 14.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: i18next
dependency-version: 26.5.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: i18next-http-backend
dependency-version: 4.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: js-yaml
dependency-version: 5.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: konva
dependency-version: 10.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: lucide-react
dependency-version: 1.60.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: react
dependency-version: 19.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: react-dom
dependency-version: 19.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: react-dropzone
dependency-version: 20.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: react-hook-form
dependency-version: 7.90.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: react-i18next
dependency-version: 17.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: react-konva
dependency-version: 19.3.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: tailwind-merge
dependency-version: 2.6.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: virtua
dependency-version: 0.53.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: "@playwright/test"
dependency-version: 1.64.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: "@types/lodash"
dependency-version: 4.17.26
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: "@types/node"
dependency-version: 26.6.5
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: eslint
dependency-version: 10.13.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: eslint-plugin-prettier
dependency-version: 5.5.7
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: monaco-editor
dependency-version: 0.53.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: postcss
dependency-version: 8.5.31
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: prettier
dependency-version: 3.9.10
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
- dependency-name: typescript-eslint
dependency-version: 8.72.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: web-minor-patch
- dependency-name: vite
dependency-version: 8.3.4
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: web-minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* keep monaco's textarea input in the config editor
monaco-editor 0.53 focuses EditContext's host div, which the command
menu doesn't treat as a text field, so typing "/" or Ctrl+K in the
config editor opened the command menu.
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com >
2026-10-23 09:03:13 -05:00
356bf04840
Bump apexcharts from 7.8.0 to 8.3.1 in /web ( #24766 )
...
Bumps [apexcharts](https://github.com/apexcharts/apexcharts.js ) from 7.8.0 to 8.3.1.
- [Release notes](https://github.com/apexcharts/apexcharts.js/releases )
- [Commits](https://github.com/apexcharts/apexcharts.js/compare/v7.8.0...v8.3.1 )
---
updated-dependencies:
- dependency-name: apexcharts
dependency-version: 8.3.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:51:07 -05:00
304b676267
Bump @hookform/resolvers from 5.9.1 to 6.0.0 in /web ( #24767 )
...
Bumps [@hookform/resolvers](https://github.com/react-hook-form/resolvers ) from 5.9.1 to 6.0.0.
- [Release notes](https://github.com/react-hook-form/resolvers/releases )
- [Commits](https://github.com/react-hook-form/resolvers/compare/v5.9.1...v6.0.0 )
---
updated-dependencies:
- dependency-name: "@hookform/resolvers"
dependency-version: 6.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:51:02 -05:00
9d1bb704a4
Bump follow-redirects ( #24735 )
...
Bumps the web-security group with 1 update in the /web directory: [follow-redirects](https://github.com/follow-redirects/follow-redirects ).
Updates `follow-redirects` from 1.16.0 to 1.16.1
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases )
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.16.0...v1.16.1 )
---
updated-dependencies:
- dependency-name: follow-redirects
dependency-version: 1.16.1
dependency-type: indirect
dependency-group: web-security
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:50:56 -05:00
92f479831d
Update starlette requirement from ==1.7.* to ==1.9.* in /docker/main ( #24762 )
...
Updates the requirements on [starlette](https://github.com/Kludex/starlette ) to permit the latest version.
- [Release notes](https://github.com/Kludex/starlette/releases )
- [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md )
- [Commits](https://github.com/Kludex/starlette/compare/1.7.0...1.9.0 )
---
updated-dependencies:
- dependency-name: starlette
dependency-version: 1.9.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:50:42 -05:00
09c145d4e4
Update openai requirement from ==3.26.* to ==3.35.* in /docker/main ( #24764 )
...
Updates the requirements on [openai](https://github.com/openai/openai-python ) to permit the latest version.
- [Release notes](https://github.com/openai/openai-python/releases )
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md )
- [Commits](https://github.com/openai/openai-python/compare/v3.26.0...v3.35.1 )
---
updated-dependencies:
- dependency-name: openai
dependency-version: 3.35.1
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:50:37 -05:00
6b21499186
Update transformers requirement in /docker/main ( #24761 )
...
Updates the requirements on [transformers](https://github.com/huggingface/transformers ) to permit the latest version.
- [Release notes](https://github.com/huggingface/transformers/releases )
- [Commits](https://github.com/huggingface/transformers/compare/v5.19.0...v5.20.2 )
---
updated-dependencies:
- dependency-name: transformers
dependency-version: 5.20.2
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:50:32 -05:00
1ebd12b52f
Bump ruff in /docker/main in the pip-main-minor-patch group ( #24760 )
...
Bumps the pip-main-minor-patch group in /docker/main with 1 update: [ruff](https://github.com/astral-sh/ruff ).
Updates `ruff` from 0.17.0 to 0.17.1
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.17.0...0.17.1 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.17.1
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: pip-main-minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-23 08:50:26 -05:00
Josh Hawkins and GitHub
b68c6561d9
hold react-zoom-pan-pinch above 3.4.4 and monaco-editor from 0.54 ( #24712 )
2026-10-23 06:33:14 -06:00
61fd753aed
Add accelerated input transform support to zmq detector protocol ( #24731 )
...
* Let the zmq detector skip the input transform when the detector applies it
_transform_input converts the frame to the model's layout and dtype before
the detector sees it. For a remote detector that can apply the transform
itself, often on a GPU, that work is done twice over and the tensor is sent
in its most expensive form.
The detector now reports input_transform_offload in the model handshake. When
it does, Frigate sends the frame as captured (uint8 NHWC) and adds the model's
expected input_tensor and input_dtype to the request header, so the detector
can apply them. The model config is unchanged either way: the expected format
is relayed, not overridden.
The choice is read per frame rather than cached, because the detector redoes
its handshake on a timeout or socket error, so restarting or upgrading it
while Frigate runs already works and keeps working here.
Negotiated rather than configured, for two reasons. The detector is what knows
whether it can apply the transform, and a user who merely believed it could
would send unconverted frames to a model that cannot take them. It also needs
no config surface, which the device string format has no room for.
On a 640x640 region, measured on a Ryzen 9 5900XT, the host-side cost of
handing the detector a frame drops from about 4 ms to under 0.1 ms per
detection, and the payload from 4.9 MB to 1.2 MB. Nearly all of it is
tobytes(): np.transpose returns a view and astype keeps its strides by
default, so the transpose is deferred to serialization, where it becomes a
strided gather over the whole float32 tensor. The YUV to RGB conversion is
unaffected and stays on the host.
* Test that the handshake decides whether the input transform is applied
Parameterized over the three handshake values against the header the detector
ends up sending: reported, the frame goes over as captured uint8 NHWC with the
model's input_tensor and input_dtype declared; not reported or absent, the
existing transform runs and those fields are omitted.
A second case drives a real reconnect -- a timed out request, then a handshake
from an upgraded detector -- and checks the next frame follows the new answer
rather than the one from startup.
---------
Co-authored-by: Eric <eric@localhost>
2026-10-23 06:26:47 -06:00
Josh Hawkins and GitHub
6e185ed36e
Keep post capture after review items end ( #24726 )
...
* keep post capture segments after a review item ends
The recording maintainer only loaded review items whose end_time was after the oldest cached segment, so once an item closed in the database the segments in its post_capture window no longer matched it. With continuous recording off and no motion after the item, everything past roughly the review cutoff_time was deleted from the cache instead of being kept for the full post_capture. The query bound now subtracts the camera's largest post_capture, and the per-item check still decides the exact cutoff.
* fix mypy and add docstring
2026-10-23 06:25:21 -06:00