NVR with realtime local object detection for IP cameras
This report summarizes scanner evidence for blakeblackshear/frigate, a Python project with 36,472 GitHub stars. SynthScan examined 593,667 lines of code across 2924 source files, recording 4529 pattern matches distributed across 25 syntactic categories. The legacy adjusted pattern signal is 9.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2665 finding(s).
Are imports declared and package/API names verified? 1110 finding(s).
Are wrappers, guards, and repeated structures necessary? 2932 finding(s).
Which changes need focused human review? 4529 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 4529 distinct pattern matches across 25 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 205 | def test_detects_motion_above_threshold(self): | CODE |
| LOW | generate_config_translations.py | 35 | def extract_translations_from_schema( | CODE |
| LOW | generate_config_translations.py | 205 | def generate_section_translation(config_class: type) -> dict[str, Any]: | CODE |
| LOW | generate_config_translations.py | 536 | def sanitize_camera_descriptions(obj): | CODE |
| LOW | CLAUDE.md | 205 | def test_detects_motion_above_threshold(self): | CODE |
| LOW | testing-scripts/object_dataset.py | 699 | def pick_worst_confusion_pair( | CODE |
| LOW | testing-scripts/object_dataset.py | 717 | def cross_class_contamination( | CODE |
| LOW | testing-scripts/face_dataset.py | 506 | def degenerate_embedding_test(pos: list[FaceSample], neg: list[FaceSample]) -> None: | CODE |
| LOW | testing-scripts/analyze_recording_keyframes.py | 80 | def find_segments_near_timestamp( | CODE |
| LOW | web/i18next.config.ts | 8 | function ignoreDynamicNamespaceKeys(): Plugin { | CODE |
| LOW | web/e2e/specs/chat.spec.ts | 20 | async function installChatStreamOverride( | CODE |
| LOW | web/e2e/helpers/clipboard.ts | 16 | export async function grantClipboardPermissions( | CODE |
| LOW | web/src/context/statusbar-provider.tsx | 12 | export function StatusBarMessagesProvider({ | CODE |
| LOW | web/src/context/streaming-settings-provider.tsx | 20 | export function StreamingSettingsProvider({ | CODE |
| LOW | web/src/utils/cameraUtil.ts | 133 | export function calculateDetectDimensions( | CODE |
| LOW | web/src/utils/cameraUtil.ts | 164 | export function detectCameraAudioFeatures( | CODE |
| LOW | web/src/utils/lifecycleUtil.ts | 6 | export function getLifecycleItemDescription( | CODE |
| LOW | web/src/utils/chatUtil.ts | 307 | export function getFindSimilarObjectsFromToolCalls( | CODE |
| LOW | web/src/utils/plusModels.ts | 15 | export function describeSupportedDetectors(model: PlusModel): string { | CODE |
| LOW | web/src/utils/dateUtil.ts | 371 | export function getBeginningOfDayTimestamp(date: Date) { | CODE |
| LOW | web/src/utils/configUtil.ts | 115 | export function getBaseCameraSectionValue( | CODE |
| LOW | web/src/utils/configUtil.ts | 179 | export function parseProfileFromSectionPath(sectionPath: string): { | CODE |
| LOW | web/src/utils/configUtil.ts | 489 | export function requiresRestartForOverrides( | CODE |
| LOW | web/src/utils/configUtil.ts | 516 | export function requiresRestartForFieldPath( | CODE |
| LOW | web/src/utils/configUtil.ts | 638 | export function prepareSectionSavePayload(opts: { | CODE |
| LOW | web/src/utils/configUtil.ts | 875 | export function getEffectiveAttributeLabels( | CODE |
| LOW | web/src/utils/configUtil.ts | 929 | export function resolveHiddenFieldEntries( | CODE |
| LOW | web/src/utils/uiSettingsTransfer.ts | 418 | export function importedLayoutsNaturalAspect( | CODE |
| LOW | web/src/utils/liveTranscode.ts | 47 | export function reconcileTranscodeStreams( | CODE |
| LOW | web/src/utils/videoUtil.ts | 90 | export function playWithTemporaryMuteFallback(video: HTMLVideoElement) { | CODE |
| LOW | web/src/utils/webrtcUtil.ts | 70 | export function browserSupportsWebRTCVideoCodec(codec: string): boolean { | CODE |
| LOW | web/src/utils/webrtcUtil.ts | 106 | export function resetWebRTCUnavailableLog(): void { | CODE |
| LOW | web/src/utils/cameraClone.ts | 302 | function applyDetectComputedDefaults( | CODE |
| LOW | web/src/utils/cameraClone.ts | 472 | export function buildClonedCameraPayloads({ | CODE |
| LOW | …nents/classification/ClassificationModelEditDialog.tsx | 75 | export default function ClassificationModelEditDialog({ | CODE |
| LOW | …nts/classification/ClassificationModelWizardDialog.tsx | 93 | export default function ClassificationModelWizardDialog({ | CODE |
| LOW | web/src/components/ui/circular-progress-bar.tsx | 12 | export default function AnimatedCircularProgressBar({ | CODE |
| LOW | web/src/components/card/ClassificationCard.tsx | 207 | export function GroupedClassificationCard({ | CODE |
| LOW | …b/src/components/camera/ConnectionQualityIndicator.tsx | 16 | export function ConnectionQualityIndicator({ | CODE |
| LOW | web/src/components/graph/LineGraph.tsx | 193 | export function EventsPerSecondsLineGraph({ | CODE |
| LOW | web/src/components/filter/CalendarFilterButton.tsx | 101 | export function CalendarRangeFilterButton({ | CODE |
| LOW | …mponents/config-form/sections/section-special-cases.ts | 130 | function buildAttributeFilterSchema( | CODE |
| LOW | …mponents/config-form/sections/section-special-cases.ts | 292 | export function getEffectiveDefaultsForSection( | CODE |
| LOW | …mponents/config-form/sections/section-special-cases.ts | 396 | export function sanitizeOverridesForSection( | CODE |
| LOW | …nfig-form/sectionExtras/CameraReviewClassification.tsx | 32 | export default function CameraReviewClassification({ | CODE |
| LOW | …onfig-form/sectionExtras/CameraReviewStatusToggles.tsx | 18 | export default function CameraReviewStatusToggles({ | CODE |
| LOW | …fig-form/sectionExtras/NotificationsSettingsExtras.tsx | 70 | export default function NotificationsSettingsExtras({ | CODE |
| LOW | …omponents/config-form/theme/fields/LayoutGridField.tsx | 132 | function GridLayoutObjectFieldTemplate( | CODE |
| LOW | …nfig-form/theme/widgets/GenAIBackedModelSizeWidget.tsx | 18 | export function GenAIBackedModelSizeWidget(props: WidgetProps) { | CODE |
| LOW | …g-form/theme/widgets/AudioTranscriptionModelWidget.tsx | 7 | export function AudioTranscriptionModelWidget(props: WidgetProps) { | CODE |
| LOW | …rm/theme/widgets/AudioTranscriptionModelSizeWidget.tsx | 6 | export function AudioTranscriptionModelSizeWidget(props: WidgetProps) { | CODE |
| LOW | …onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx | 80 | function getObjectLabelDisplayName(label: string): string { | CODE |
| LOW | …onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx | 84 | export function ObjectLabelSwitchesWidget(props: WidgetProps) { | CODE |
| LOW | …onfig-form/theme/widgets/ReviewLabelSwitchesWidget.tsx | 57 | function getReviewLabelDisplayName( | CODE |
| LOW | …onfig-form/theme/widgets/ReviewLabelSwitchesWidget.tsx | 69 | export function ReviewLabelSwitchesWidget(props: WidgetProps) { | CODE |
| LOW | …g-form/theme/widgets/SemanticSearchModelSizeWidget.tsx | 6 | export function SemanticSearchModelSizeWidget(props: WidgetProps) { | CODE |
| LOW | …onfig-form/theme/widgets/SemanticSearchModelWidget.tsx | 6 | export function SemanticSearchModelWidget(props: WidgetProps) { | CODE |
| LOW | …/src/components/overlay/MobileReviewSettingsDrawer.tsx | 90 | export default function MobileReviewSettingsDrawer({ | CODE |
| LOW | …c/components/overlay/ClassificationSelectionDialog.tsx | 44 | export default function ClassificationSelectionDialog({ | CODE |
| LOW | …b/src/components/overlay/dialog/SearchFilterDialog.tsx | 675 | export function SnapshotClipFilterContent({ | CODE |
| 2112 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/public/locales/sl/components/filter.json | 130 | "placeholder": "Tipkaj za iskanje tablic…", | CODE |
| LOW | web/public/locales/sl/components/camera.json | 35 | "placeholder": "Izberi način pretakanja" | CODE |
| LOW | web/public/locales/sl/components/camera.json | 50 | "placeholder": "Izberi tok", | CODE |
| LOW | web/public/locales/sl/components/camera.json | 57 | "placeholder": "Vnesi ime…", | CODE |
| LOW | web/public/locales/sl/components/icons.json | 5 | "placeholder": "Iskanje ikone…" | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 52 | "placeholder": "Poimenuj izvoz" | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 71 | "placeholder": "Izberi primer" | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 92 | "placeholder": "Vnesi ime iskanja", | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 123 | "placeholder": "Išči po oznaki ali podoznaki..." | CODE |
| LOW | web/public/locales/sl/views/explore.json | 43 | "placeholder": "Opis sledenega objekta", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 163 | "placeholder": "Vnesi ime..." | CODE |
| LOW | web/public/locales/sl/views/settings.json | 198 | "placeholder": "Vnesi ime..." | CODE |
| LOW | web/public/locales/sl/views/settings.json | 654 | "placeholder": "Vnesi ime vloge", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 728 | "placeholder": "Izberi tip sprožilca", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 733 | "placeholder": "Poimenuj sprožilec", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1012 | "placeholder": "Vnesi uporabniško ime" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1016 | "placeholder": "Vnesi geslo", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1021 | "placeholder": "Ponovno vnesi geslo" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1039 | "placeholder": "Vnesi novo geslo", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1041 | "placeholder": "Ponovno vnesi novo geslo" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1046 | "placeholder": "Vnesi svoje trenutno geslo" | CODE |
| LOW | web/public/locales/sl/views/settings.json | 1104 | "placeholder": "npr. primer@email.com", | CODE |
| LOW | web/public/locales/sl/views/search.json | 70 | "placeholder": { | CODE |
| LOW | web/public/locales/sl/views/faceLibrary.json | 4 | "placeholder": "Vnesi ime za to zbirko", | CODE |
| LOW | web/public/locales/sk/components/filter.json | 130 | "placeholder": "Zadajte text pre vyhľadávanie evidenčných čísel…", | CODE |
| LOW | web/public/locales/sk/components/camera.json | 15 | "placeholder": "Zadajte meno…", | CODE |
| LOW | web/public/locales/sk/components/camera.json | 42 | "placeholder": "Vyberte prúd", | CODE |
| LOW | web/public/locales/sk/components/camera.json | 45 | "placeholder": "Vyberte metódu vysielania", | CODE |
| LOW | web/public/locales/sk/components/icons.json | 5 | "placeholder": "Hľadať ikonu…" | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 54 | "placeholder": "Pomenujte Export" | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 77 | "placeholder": "Vyberte prípad" | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 126 | "placeholder": "Zadajte názov pre vyhľadávanie", | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 157 | "placeholder": "Hľadať podľa štítku alebo podštítku..." | CODE |
| LOW | web/public/locales/sk/views/explore.json | 68 | "placeholder": "Popis sledovaného objektu", | CODE |
| LOW⚡ | web/public/locales/sk/views/settings.json | 713 | "placeholder": "Zadajte používateľské meno" | CODE |
| LOW⚡ | web/public/locales/sk/views/settings.json | 717 | "placeholder": "Zadajte heslo", | CODE |
| LOW⚡ | web/public/locales/sk/views/settings.json | 720 | "placeholder": "Potvrdiť heslo" | CODE |
| LOW | web/public/locales/sk/views/settings.json | 734 | "placeholder": "Zadajte nové heslo", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 736 | "placeholder": "Znovu zadajte nové heslo" | CODE |
| LOW | web/public/locales/sk/views/settings.json | 823 | "placeholder": "Zadajte názov roly", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 852 | "placeholder": "e.g. príklad@email.com", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 977 | "placeholder": "Zadajte meno pre spúšťača", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 990 | "placeholder": "Vybrať typ spúšťača", | CODE |
| LOW | web/public/locales/sk/views/search.json | 69 | "placeholder": { | CODE |
| LOW | web/public/locales/sk/views/faceLibrary.json | 5 | "placeholder": "Zadajte názov pre túto kolekciu" | CODE |
| LOW | web/public/locales/ur/components/icons.json | 5 | "placeholder": "آئیکن تلاش کریں…" | CODE |
| LOW | web/public/locales/ur/views/faceLibrary.json | 4 | "placeholder": "اس مجموعہ کے لیے ایک نام درج کریں", | CODE |
| LOW | web/public/locales/zh-Hant/components/filter.json | 122 | "placeholder": "輸入以搜尋車牌…", | CODE |
| LOW | web/public/locales/zh-Hant/components/camera.json | 21 | "placeholder": "請輸入名稱…" | CODE |
| LOW | web/public/locales/zh-Hant/components/camera.json | 42 | "placeholder": "選擇串流", | CODE |
| LOW | web/public/locales/zh-Hant/components/camera.json | 45 | "placeholder": "選擇串流方式", | CODE |
| LOW | web/public/locales/zh-Hant/components/icons.json | 5 | "placeholder": "搜尋圖示…" | CODE |
| LOW | web/public/locales/zh-Hant/components/dialog.json | 52 | "placeholder": "替匯出資料命名" | CODE |
| LOW | web/public/locales/zh-Hant/components/dialog.json | 85 | "placeholder": "選擇案件" | CODE |
| LOW | web/public/locales/zh-Hant/components/dialog.json | 144 | "placeholder": "請輸入搜尋的名稱", | CODE |
| LOW | web/public/locales/zh-Hant/components/dialog.json | 184 | "placeholder": "以標籤或子標籤搜尋..." | CODE |
| LOW | web/public/locales/zh-Hant/views/chat.json | 5 | "placeholder": "嘗試問我任何事…", | CODE |
| LOW | web/public/locales/zh-Hant/views/explore.json | 94 | "placeholder": "追蹤物件的說明", | CODE |
| LOW | web/public/locales/zh-Hant/views/settings.json | 468 | "placeholder": "觸發器名稱", | CODE |
| LOW | web/public/locales/zh-Hant/views/settings.json | 481 | "placeholder": "選擇觸發型別", | CODE |
| 968 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | generate_api_auth_spec.py | 205 | except (TypeError, ValueError): | CODE |
| HIGH | docker/rockchip/conv2rknn.py | 10 | except FileNotFoundError: | CODE |
| HIGH | frigate/log.py | 253 | except OSError: | CODE |
| HIGH | frigate/storage.py | 317 | except FileNotFoundError: | CODE |
| HIGH | frigate/storage.py | 348 | except FileNotFoundError: | CODE |
| HIGH | frigate/embeddings/__init__.py | 84 | except FileNotFoundError: | CODE |
| HIGH | frigate/embeddings/maintainer.py | 822 | except FileNotFoundError: | CODE |
| HIGH | frigate/embeddings/embeddings.py | 581 | except IntegrityError: | CODE |
| HIGH | frigate/record/maintainer.py | 94 | except OSError: | CODE |
| HIGH | frigate/test/test_maintainer.py | 63 | except Exception: | CODE |
| HIGH | frigate/test/test_media_auth.py | 225 | except OSError: | CODE |
| HIGH | frigate/test/test_storage.py | 98 | except OSError: | CODE |
| HIGH | frigate/test/test_notice_registry.py | 70 | except OSError: | CODE |
| HIGH | frigate/test/test_model_downloader.py | 59 | except Exception: | CODE |
| HIGH | frigate/test/http_api/base_http_test.py | 144 | except OSError: | CODE |
| HIGH | frigate/util/services.py | 766 | except (FileNotFoundError, OSError, ValueError): | CODE |
| HIGH | frigate/util/services.py | 798 | except (FileNotFoundError, OSError, ValueError): | CODE |
| HIGH | frigate/util/services.py | 835 | except Exception: | CODE |
| HIGH | frigate/util/services.py | 915 | except Exception: | CODE |
| HIGH | frigate/util/services.py | 1255 | except Exception: | CODE |
| HIGH | frigate/util/services.py | 1276 | except requests.RequestException: | CODE |
| HIGH | frigate/util/media.py | 94 | except FileNotFoundError: | CODE |
| HIGH | frigate/util/config.py | 1142 | except AttributeError: | CODE |
| HIGH | frigate/util/ffmpeg.py | 35 | except OSError: | CODE |
| HIGH | frigate/util/ffmpeg.py | 150 | except (BrokenPipeError, OSError): | CODE |
| HIGH | frigate/util/ffmpeg.py | 190 | except Exception: | CODE |
| HIGH | frigate/util/ffmpeg.py | 155 | except (BrokenPipeError, OSError): | CODE |
| HIGH | frigate/util/file.py | 401 | except Exception: | CODE |
| HIGH | frigate/util/file.py | 490 | except FileNotFoundError: | CODE |
| HIGH | frigate/util/file.py | 460 | except Exception: | CODE |
| HIGH | frigate/util/audio.py | 177 | except OSError: | CODE |
| HIGH | frigate/util/builtin.py | 423 | except Exception: | CODE |
| HIGH | frigate/util/builtin.py | 231 | except (ValueError, SyntaxError): | CODE |
| HIGH | frigate/util/builtin.py | 307 | except ValueError: | CODE |
| HIGH | frigate/util/image.py | 1119 | except FileNotFoundError: | CODE |
| HIGH | frigate/util/image.py | 1128 | except FileNotFoundError: | CODE |
| HIGH | frigate/util/image.py | 1137 | except FileNotFoundError: | CODE |
| HIGH | frigate/util/image.py | 1090 | except Exception: | CODE |
| HIGH | frigate/util/image.py | 1100 | except Exception: | CODE |
| HIGH | frigate/camera/maintainer.py | 137 | except FileExistsError: | CODE |
| HIGH | frigate/comms/object_detector_signaler.py | 28 | except zmq.ZMQError: | CODE |
| HIGH | frigate/comms/object_detector_signaler.py | 85 | except zmq.ZMQError: | CODE |
| HIGH | frigate/comms/mqtt.py | 384 | except BlockingIOError: | CODE |
| HIGH | frigate/comms/mqtt.py | 412 | except BlockingIOError: | CODE |
| HIGH | frigate/comms/ws.py | 602 | except (ConnectionResetError, BrokenPipeError, ValueError): | CODE |
| HIGH | frigate/comms/zmq_proxy.py | 32 | except zmq.ZMQError: | CODE |
| HIGH | frigate/comms/zmq_proxy.py | 93 | except zmq.ZMQError: | CODE |
| HIGH | frigate/output/birdseye.py | 889 | except queue.Full: | CODE |
| HIGH | frigate/output/birdseye.py | 243 | except queue.Empty: | CODE |
| HIGH | frigate/output/birdseye.py | 282 | except ValueError: | CODE |
| HIGH | frigate/output/camera.py | 178 | except queue.Full: | CODE |
| HIGH | frigate/output/camera.py | 93 | except queue.Empty: | CODE |
| HIGH | frigate/output/camera.py | 132 | except ValueError: | CODE |
| HIGH | …igate/data_processing/real_time/audio_transcription.py | 295 | except queue.Empty: | CODE |
| HIGH | …igate/data_processing/real_time/audio_transcription.py | 315 | except queue.Full: | CODE |
| HIGH | frigate/data_processing/post/semantic_trigger.py | 62 | except FileNotFoundError: | CODE |
| HIGH | frigate/ptz/onvif.py | 448 | except (UnicodeEncodeError, UnicodeDecodeError): | CODE |
| HIGH | frigate/ptz/onvif.py | 953 | except Exception: | CODE |
| HIGH | frigate/ptz/autotrack.py | 181 | except Exception: | CODE |
| HIGH | frigate/api/auth.py | 1197 | except Exception: | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 370 | except Exception: # ❌ Too broad | CODE |
| LOW | generate_config_translations.py | 439 | except Exception as e: | CODE |
| LOW | generate_config_translations.py | 499 | except Exception as e: | CODE |
| LOW | generate_config_translations.py | 565 | except Exception as e: | CODE |
| LOW | CLAUDE.md | 370 | except Exception: # ❌ Too broad | CODE |
| LOW | docker/main/rootfs/usr/local/go2rtc/prepare_homekit.py | 50 | except Exception: | CODE |
| LOW | frigate/watchdog.py | 112 | except Exception: | CODE |
| LOW | frigate/debug_replay.py | 141 | except Exception as e: | CODE |
| LOW | frigate/debug_replay.py | 316 | except Exception as e: | CODE |
| LOW | frigate/debug_replay.py | 359 | except Exception as e: | CODE |
| LOW | frigate/debug_replay.py | 397 | except Exception: | CODE |
| LOW | frigate/app.py | 220 | except Exception: | CODE |
| LOW | frigate/__main__.py | 89 | except Exception as traverse_error: | CODE |
| LOW | frigate/video/ffmpeg.py | 83 | except Exception: | CODE |
| LOW | frigate/embeddings/maintainer.py | 508 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 239 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 610 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 622 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 657 | except Exception as e: | CODE |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 109 | except Exception: | CODE |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 123 | except Exception: | CODE |
| LOW | frigate/embeddings/onnx/base_embedding.py | 43 | except Exception: | CODE |
| LOW | frigate/record/export.py | 346 | except Exception: | CODE |
| LOW | frigate/record/export.py | 814 | except Exception: | CODE |
| LOW | frigate/record/export.py | 827 | except Exception: | CODE |
| LOW | frigate/record/export.py | 926 | except Exception: | CODE |
| LOW | frigate/record/maintainer.py | 1047 | except Exception: | CODE |
| LOW | frigate/record/maintainer.py | 1139 | except Exception: | CODE |
| LOW | frigate/test/test_maintainer.py | 63 | except Exception: | CODE |
| LOW | frigate/test/test_model_downloader.py | 59 | except Exception: | CODE |
| MEDIUM | frigate/util/services.py | 841 | def try_get_info(f, h, default="N/A", sensor=None): | CODE |
| LOW | frigate/util/services.py | 87 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 108 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 173 | except Exception: | CODE |
| LOW | frigate/util/services.py | 835 | except Exception: | CODE |
| LOW | frigate/util/services.py | 915 | except Exception: | CODE |
| LOW | frigate/util/services.py | 937 | except Exception: | CODE |
| LOW | frigate/util/services.py | 979 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 984 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 1255 | except Exception: | CODE |
| LOW | frigate/util/media.py | 269 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 362 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 463 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 548 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 631 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 728 | except Exception as e: | CODE |
| LOW | frigate/util/config.py | 1202 | except Exception: | CODE |
| LOW | frigate/util/downloader.py | 98 | except Exception as e: | CODE |
| LOW | frigate/util/downloader.py | 140 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 40 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 47 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 54 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 61 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 70 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 77 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 84 | except Exception as e: | CODE |
| LOW | frigate/util/camera_cleanup.py | 99 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 126 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 133 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 139 | except Exception as e: | CODE |
| 295 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | generate_config_translations.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | testing-scripts/process_clip.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/timeline.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/plus.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/watchdog.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/debug_replay.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/storage.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/app.py | 100 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/ffmpeg_presets.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/video/ffmpeg.py | 44 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/video/detect.py | 57 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/__init__.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/__init__.py | 296 | def update_description(self, event_id: str, description: str) -> None: | STRING |
| LOW | frigate/embeddings/genai_embedding.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/maintainer.py | 83 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/embeddings.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/embeddings.py | 158 | def update_stats(self) -> None: | CODE |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/lpr_embedding.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/face_embedding.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/base_embedding.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/track/object_processing.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/track/stationary_classifier.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/track/centroid_tracker.py | 133 | def update_frame_times(self, frame_name: str, frame_time: float) -> None: | CODE |
| LOW | frigate/track/norfair_tracker.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/track/norfair_tracker.py | 491 | def update_frame_times(self, frame_name: str, frame_time: float) -> None: | CODE |
| LOW | frigate/track/tracked_object.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/export.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/cleanup.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/maintainer.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/record.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/test/test_go2rtc_pid_stats.py | 33 | def update_stats(stats: dict) -> None: | CODE |
| LOW | frigate/util/ownership.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/time.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/services.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/services.py | 1621 | def set_file_limit() -> None: | CODE |
| LOW | frigate/util/media.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/config.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/downloader.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/camera_cleanup.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/object.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/classification.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/ffmpeg.py | 75 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/live_streams.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/object_names.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/model.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/runtime_deps.py | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/hwaccel.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | frigate/util/file.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/process.py | 80 | def _setup_memray(self) -> None: | CODE |
| LOW | frigate/util/audio.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/builtin.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/rknn_converter.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/recording_coverage.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/image.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/config/auth.py | 5 | __all__ = ["AuthConfig"] | CODE |
| LOW | frigate/config/profile_manager.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/config/profile_manager.py | 143 | def update_config(self, new_config) -> None: | CODE |
| LOW | frigate/config/config.py | 84 | __all__ = ["FrigateConfig"] | CODE |
| 163 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | generate_api_auth_spec.py | 189 | CODE | |
| LOW | generate_api_auth_spec.py | 480 | CODE | |
| LOW | generate_config_translations.py | 35 | CODE | |
| LOW | generate_config_translations.py | 213 | CODE | |
| LOW | testing-scripts/object_dataset.py | 532 | CODE | |
| LOW | testing-scripts/face_dataset.py | 188 | CODE | |
| LOW | testing-scripts/process_clip.py | 141 | CODE | |
| LOW | testing-scripts/genai_review_tester.py | 98 | CODE | |
| LOW | testing-scripts/genai_review_tester.py | 383 | CODE | |
| LOW | docs/scripts/lib/ui_generator.py | 71 | CODE | |
| LOW | docs/scripts/lib/ui_generator.py | 100 | CODE | |
| LOW | docs/scripts/lib/yaml_extractor.py | 28 | CODE | |
| LOW | docs/scripts/lib/yaml_extractor.py | 134 | CODE | |
| LOW | frigate/timeline.py | 81 | CODE | |
| LOW | frigate/plus.py | 76 | CODE | |
| LOW | frigate/plus.py | 190 | CODE | |
| LOW | frigate/plus.py | 234 | CODE | |
| LOW | frigate/log.py | 217 | CODE | |
| LOW | frigate/log.py | 226 | CODE | |
| LOW | frigate/__main__.py | 17 | CODE | |
| LOW | frigate/video/ffmpeg.py | 353 | CODE | |
| LOW | frigate/video/detect.py | 236 | CODE | |
| LOW | frigate/embeddings/genai_embedding.py | 29 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 470 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 588 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 846 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 473 | CODE | |
| LOW | frigate/embeddings/embeddings.py | 453 | CODE | |
| LOW | frigate/embeddings/embeddings.py | 627 | CODE | |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 84 | CODE | |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 97 | CODE | |
| LOW | frigate/track/object_processing.py | 118 | CODE | |
| LOW | frigate/track/object_processing.py | 400 | CODE | |
| LOW | frigate/track/object_processing.py | 731 | CODE | |
| LOW | frigate/track/object_processing.py | 192 | CODE | |
| LOW | frigate/track/centroid_tracker.py | 140 | CODE | |
| LOW | frigate/track/norfair_tracker.py | 334 | CODE | |
| LOW | frigate/track/norfair_tracker.py | 507 | CODE | |
| LOW | frigate/track/tracked_object.py | 130 | CODE | |
| LOW | frigate/track/tracked_object.py | 598 | CODE | |
| LOW | frigate/record/maintainer.py | 282 | CODE | |
| LOW | frigate/record/maintainer.py | 940 | CODE | |
| LOW | frigate/record/maintainer.py | 1055 | CODE | |
| LOW | frigate/test/test_record_sub_maintainer.py | 295 | CODE | |
| LOW | frigate/test/test_maintainer.py | 31 | CODE | |
| LOW | frigate/test/test_object_detector.py | 16 | CODE | |
| LOW | frigate/test/test_deepx.py | 137 | CODE | |
| LOW | frigate/test/test_deepx.py | 734 | CODE | |
| LOW | frigate/test/http_api/test_http_media.py | 1863 | CODE | |
| LOW | frigate/util/services.py | 61 | CODE | |
| LOW | frigate/util/services.py | 93 | CODE | |
| LOW | frigate/util/services.py | 179 | CODE | |
| LOW | frigate/util/services.py | 200 | CODE | |
| LOW | frigate/util/services.py | 265 | CODE | |
| LOW | frigate/util/services.py | 372 | CODE | |
| LOW | frigate/util/services.py | 506 | CODE | |
| LOW | frigate/util/services.py | 804 | CODE | |
| LOW | frigate/util/services.py | 921 | CODE | |
| LOW | frigate/util/services.py | 943 | CODE | |
| LOW | frigate/util/services.py | 995 | CODE | |
| 184 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | testing-scripts/object_dataset.py | 225 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 227 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 318 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 320 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 451 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 453 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 614 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 616 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 851 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/object_dataset.py | 853 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 53 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 213 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 259 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 376 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 378 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 686 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 688 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | web/src/components/filter/ExportActionGroup.tsx | 51 | // ── Delete ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/components/filter/ExportActionGroup.tsx | 90 | // ── Remove from case ──────────────────────────────────────────── | COMMENT |
| MEDIUM | web/src/components/filter/ExportActionGroup.tsx | 143 | // ── Case picker ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/docs/guides/reverse_proxy.md | 120 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM | docs/docs/guides/reverse_proxy.md | 122 | # ------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 128 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 200 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 832 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 834 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 302 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 304 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 573 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 575 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 1212 | # ── Bulk delete exports ──────────────────────────────────────── | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 1345 | # ── Bulk reassign exports ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | frigate/test/http_api/test_http_camera_access.py | 275 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | frigate/test/http_api/test_http_camera_access.py | 277 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_camera_access.py | 261 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_camera_access.py | 263 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | frigate/api/chat.py | 1804 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/api/chat.py | 1806 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | web/e2e/specs/settings/camera-wizard-ptz.spec.ts | 56 | // Step 1: name + host (probe mode is the default), then Continue. | COMMENT |
| LOW⚡ | web/e2e/specs/settings/camera-wizard-ptz.spec.ts | 61 | // Step 2: the probe auto-runs on mount; once candidates exist, Next enables. | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 103 | // Step 1: Create config for the new model | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 153 | // Step 2: Classify each image by moving it to the correct category folder | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 212 | // Step 3: Determine if we should train | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 225 | // Step 4: Kick off training only if we have enough classes with images | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 117 | // Step 1: Can proceed if camera name is set | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 120 | // Step 2: Can proceed if at least one stream exists (from probe or manual test) | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 123 | // Step 3: requires a detect stream; if PTZ is enabled, also require | COMMENT |
| LOW | web/src/components/settings/CameraWizardDialog.tsx | 136 | // Step 4: Always can proceed from final step (save will be handled there) | COMMENT |
| LOW⚡ | docs/docs/configuration/cameras.md | 14 | ### Step 1: Name and connection | COMMENT |
| LOW⚡ | docs/docs/configuration/cameras.md | 23 | ### Step 2: Probe or snapshot | COMMENT |
| LOW⚡ | docs/docs/configuration/cameras.md | 31 | ### Step 3: Stream configuration | COMMENT |
| LOW⚡ | docs/docs/configuration/cameras.md | 37 | ### Step 4: Validation and testing | COMMENT |
| LOW | docs/docs/configuration/face_recognition.md | 215 | ### Step 1 - Building a Strong Foundation | COMMENT |
| LOW | docs/docs/configuration/face_recognition.md | 223 | ### Step 2 - Expanding The Dataset | COMMENT |
| LOW⚡ | …guration/custom_classification/state_classification.md | 100 | ### Step 1: Name and Define | COMMENT |
| LOW⚡ | …guration/custom_classification/state_classification.md | 104 | ### Step 2: Select the Crop Area | COMMENT |
| LOW⚡ | …guration/custom_classification/state_classification.md | 108 | ### Step 3: Assign Training Examples | COMMENT |
| LOW | …uration/custom_classification/object_classification.md | 122 | ### Step 1: Name and Define | COMMENT |
| LOW | …uration/custom_classification/object_classification.md | 128 | ### Step 2: Assign Training Examples | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 150 | # NOTE: The default values are for the EdgeTPU detector. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 605 | # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 893 | # NOTE: The default go2rtc API port (1984) must be used, | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 127 | #### Step 1: Confirm it is a browser issue | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 131 | #### Step 2: Rule out H.265 / HEVC | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 167 | #### Step 3: Clean up damaged packets from the camera | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 178 | #### Step 4: Fix incompatible or corrupt audio | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 182 | #### Step 5: Avoid "smart" / "+" codecs and check the keyframe interval | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 187 | #### Step 6: Consider bitrate and the client hardware | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 260 | #### Step 1: Enable recording debug logging | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 278 | #### Step 2: Interpret the copy times | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 285 | #### Step 3: Check RAM, swap, cache, and disk utilization | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 321 | #### Step 4: Check your storage type | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 325 | #### Step 5: Check your mount options | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 329 | #### Step 6: Rule out CPU load | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 345 | #### Step 1: Get the full logs | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 349 | #### Step 2: Check the cache directory | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 359 | #### Step 3: Verify segment duration | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 381 | #### Step 4: Check for a stuck detector | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 390 | #### Step 5: Check for GPU hangs | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 400 | #### Step 6: Verify go2rtc stream configuration | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 404 | #### Step 7: Check system resources | COMMENT |
| LOW | docs/docs/guides/reverse_proxy.md | 54 | ### Step 1: Configure the Apache2 Reverse Proxy | COMMENT |
| LOW | docs/docs/guides/reverse_proxy.md | 81 | ### Step 2: Use SSL to encrypt access to your Frigate instance | COMMENT |
| LOW | docs/docs/guides/reverse_proxy.md | 96 | ### Step 3: Authenticate users at the proxy | COMMENT |
| LOW⚡ | docs/docs/plus/first_model.md | 10 | ## Step 1: Upload and annotate your images | COMMENT |
| LOW⚡ | docs/docs/plus/first_model.md | 18 | ## Step 2: Submit a model request | COMMENT |
| LOW⚡ | docs/docs/plus/first_model.md | 23 | ## Step 3: Set your model | COMMENT |
| LOW | docs/docs/plus/first_model.md | 59 | ## Step 4: Adjust your object filters for higher scores | COMMENT |
| LOW⚡ | frigate/util/classification.py | 393 | # Step 2: Create balanced timestamp selection (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 396 | # Step 3: Extract keyframes from recordings with crops applied | COMMENT |
| LOW⚡ | frigate/util/classification.py | 401 | # Step 4: Select 24 most visually distinct images (they're already cropped) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 404 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW⚡ | frigate/util/classification.py | 746 | # Step 2: Select balanced events (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 750 | # Step 3: Extract thumbnails from events | COMMENT |
| LOW⚡ | frigate/util/classification.py | 754 | # Step 4: Select 24 most visually distinct thumbnails | COMMENT |
| LOW⚡ | frigate/util/classification.py | 758 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW | frigate/util/classification.py | 376 | # Step 1: Get review items for the cameras | COMMENT |
| LOW | frigate/util/classification.py | 735 | # Step 1: Query events for the specified label and cameras | COMMENT |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | frigate/track/centroid_tracker.py | 95 | max_frames = self.detect_config.stationary.max_frames.objects.get( | CODE |
| CRITICAL | frigate/track/norfair_tracker.py | 243 | self.detect_config.stationary.max_frames.objects.get( | CODE |
| CRITICAL | frigate/track/norfair_tracker.py | 320 | self.detect_config.stationary.max_frames.objects.get( | CODE |
| CRITICAL | frigate/track/norfair_tracker.py | 440 | max_frames = self.detect_config.stationary.max_frames.objects.get( | CODE |
| CRITICAL⚡ | frigate/test/test_mqtt_network_loop.py | 105 | selector.return_value.__enter__.return_value.select.assert_called_once_with( | CODE |
| CRITICAL | frigate/api/auth.py | 506 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 950 | config_roles_set = set(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 1004 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 1169 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/event.py | 1468 | ) in request.app.frigate_config.classification.custom.items(): | STRING |
| CRITICAL | frigate/api/classification.py | 759 | ) in request.app.frigate_config.classification.custom.items(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testing-scripts/object_dataset.py | 205 | CODE | |
| LOW | testing-scripts/face_dataset.py | 34 | CODE | |
| LOW | docs/scripts/lib/ui_generator.py | 7 | CODE | |
| LOW | docs/scripts/lib/section_config_parser.py | 3 | CODE | |
| LOW | frigate/types.py | 9 | CODE | |
| LOW | frigate/video/__init__.py | 1 | CODE | |
| LOW | frigate/video/__init__.py | 2 | CODE | |
| LOW | frigate/embeddings/genai_embedding.py | 11 | CODE | |
| LOW | frigate/util/live_streams.py | 11 | CODE | |
| LOW | frigate/util/builtin.py | 31 | CODE | |
| LOW | frigate/util/rknn_converter.py | 99 | CODE | |
| LOW | frigate/util/rknn_converter.py | 134 | CODE | |
| LOW | frigate/config/config.py | 1 | CODE | |
| LOW | frigate/config/__init__.py | 1 | CODE | |
| LOW | frigate/config/__init__.py | 1 | CODE | |
| LOW | frigate/config/__init__.py | 3 | CODE | |
| LOW | frigate/config/__init__.py | 4 | CODE | |
| LOW | frigate/config/__init__.py | 5 | CODE | |
| LOW | frigate/config/__init__.py | 6 | CODE | |
| LOW | frigate/config/__init__.py | 7 | CODE | |
| LOW | frigate/config/__init__.py | 8 | CODE | |
| LOW | frigate/config/__init__.py | 9 | CODE | |
| LOW | frigate/config/__init__.py | 10 | CODE | |
| LOW | frigate/config/__init__.py | 11 | CODE | |
| LOW | frigate/config/__init__.py | 12 | CODE | |
| LOW | frigate/config/__init__.py | 13 | CODE | |
| LOW | frigate/config/__init__.py | 14 | CODE | |
| LOW | frigate/config/__init__.py | 15 | CODE | |
| LOW | frigate/config/camera/__init__.py | 1 | CODE | |
| LOW | frigate/config/camera/__init__.py | 2 | CODE | |
| LOW | frigate/config/camera/__init__.py | 3 | CODE | |
| LOW | frigate/config/camera/__init__.py | 4 | CODE | |
| LOW | frigate/config/camera/__init__.py | 5 | CODE | |
| LOW | frigate/config/camera/__init__.py | 6 | CODE | |
| LOW | frigate/config/camera/__init__.py | 7 | CODE | |
| LOW | frigate/config/camera/__init__.py | 8 | CODE | |
| LOW | frigate/config/camera/__init__.py | 9 | CODE | |
| LOW | frigate/config/camera/__init__.py | 10 | CODE | |
| LOW | frigate/config/camera/__init__.py | 11 | CODE | |
| LOW | frigate/config/camera/__init__.py | 12 | CODE | |
| LOW | frigate/config/camera/__init__.py | 13 | CODE | |
| LOW | frigate/config/camera/__init__.py | 14 | CODE | |
| LOW | frigate/config/camera/__init__.py | 15 | CODE | |
| LOW | frigate/config/camera/__init__.py | 16 | CODE | |
| LOW | frigate/config/camera/__init__.py | 17 | CODE | |
| LOW | frigate/comms/base_communicator.py | 6 | CODE | |
| LOW | frigate/comms/mqtt.py | 1 | CODE | |
| LOW | frigate/data_processing/types.py | 3 | CODE | |
| LOW | …igate/data_processing/real_time/audio_transcription.py | 37 | CODE | |
| LOW | frigate/data_processing/post/object_descriptions.py | 27 | CODE | |
| LOW | frigate/notices/__init__.py | 18 | CODE | |
| LOW | frigate/service_manager/service.py | 1 | CODE | |
| LOW | frigate/service_manager/__init__.py | 1 | CODE | |
| LOW | frigate/service_manager/__init__.py | 2 | CODE | |
| LOW | frigate/service_manager/__init__.py | 2 | CODE | |
| LOW | frigate/api/media_auth.py | 12 | CODE | |
| LOW | frigate/detectors/__init__.py | 3 | CODE | |
| LOW | frigate/detectors/__init__.py | 3 | CODE | |
| LOW | frigate/detectors/__init__.py | 3 | CODE | |
| LOW | frigate/detectors/__init__.py | 4 | CODE | |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frigate/video/ffmpeg.py | 468 | # Check if enough time has passed to allow ffmpeg restart (backoff pacing) | COMMENT |
| LOW | frigate/embeddings/maintainer.py | 154 | # Check if we need to re-index events | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 473 | # Check if data has changed or thumbnail is missing for thumbnail type | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 486 | # Check if thumbnail needs to be updated (data changed or missing) | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 518 | # Check if embedding is missing or needs update | COMMENT |
| LOW | frigate/util/services.py | 806 | # Check if axcl-smi exists | COMMENT |
| LOW | frigate/util/media.py | 408 | # Check if event exists with inline thumbnail | COMMENT |
| LOW | frigate/util/config.py | 1071 | # Check if it's a percentage | COMMENT |
| LOW | frigate/util/classification.py | 499 | # Check if we already have a timestamp near this one | COMMENT |
| LOW | frigate/util/file.py | 377 | # Check if lock file is older than stale_timeout | COMMENT |
| LOW | frigate/util/file.py | 475 | # Close file descriptor and release fcntl lock | COMMENT |
| LOW | frigate/util/rknn_converter.py | 77 | # Check if the SoC is actually a supported RK device | COMMENT |
| LOW | frigate/util/rknn_converter.py | 299 | # Check if RKNN model appeared | COMMENT |
| LOW | frigate/util/rknn_converter.py | 304 | # Check if lock file is gone (conversion completed or failed) | COMMENT |
| LOW | frigate/util/rknn_converter.py | 316 | # Check if lock is stale | COMMENT |
| LOW | frigate/util/rknn_converter.py | 326 | # Check if RKNN file appeared while waiting | COMMENT |
| LOW | frigate/util/rknn_converter.py | 376 | # Check if equivalent .rknn file exists | COMMENT |
| LOW | frigate/config/config.py | 1486 | # Check if the config file needs to be migrated. | COMMENT |
| LOW | frigate/comms/dispatcher.py | 1247 | # Check if this is a global mask | COMMENT |
| LOW | frigate/comms/dispatcher.py | 1261 | # Check if this is a per-object filter mask | COMMENT |
| LOW | frigate/data_processing/post/semantic_trigger.py | 167 | # Check if similarity meets threshold | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 514 | # Check if the boxes are vertically aligned (similar y-coordinates) | COMMENT |
| LOW | frigate/review/maintainer.py | 863 | # Check if the current segment should be processed based on enabled settings | COMMENT |
| LOW | frigate/api/auth.py | 516 | # Check if we have any roles | COMMENT |
| LOW | frigate/api/auth.py | 817 | # Check if password has been changed since token was issued | COMMENT |
| LOW | frigate/api/event.py | 1906 | # Check if trigger already exists | STRING |
| LOW | frigate/api/event.py | 2122 | # Check if trigger exists for upsert | STRING |
| LOW | frigate/api/camera.py | 885 | # Check if PTZ service is available | COMMENT |
| LOW | frigate/api/camera.py | 1221 | # Check if the camera has a close method and call it | COMMENT |
| LOW | frigate/api/motion_search.py | 262 | # Check if already finished | COMMENT |
| LOW⚡ | frigate/detectors/plugins/zmq_ipc.py | 118 | # Check if model is available and transfer if needed | COMMENT |
| LOW | frigate/detectors/plugins/zmq_ipc.py | 187 | # Check if this is a JSON response (model management) | COMMENT |
| LOW | frigate/detectors/plugins/zmq_ipc.py | 241 | # Check if this is a JSON response (model management) | COMMENT |
| LOW | frigate/detectors/plugins/memryx.py | 126 | # Check if model_type was explicitly set by the user | COMMENT |
| LOW | frigate/detectors/plugins/memryx.py | 432 | # Check if shutdown is requested | COMMENT |
| LOW | frigate/detectors/plugins/rknn.py | 113 | # Check if this is an ONNX model or model without extension that needs conversion | COMMENT |
| LOW | frigate/jobs/media_sync.py | 121 | # Check if a job is already running | COMMENT |
| LOW | frigate/jobs/manager.py | 58 | # Check if it's the current job | COMMENT |
| LOW | frigate/jobs/manager.py | 62 | # Check if it's a completed job | COMMENT |
| LOW | frigate/genai/plugins/gemini.py | 393 | # Check if response is valid | COMMENT |
| LOW | frigate/stats/emitter.py | 165 | # Check if values are dicts (dict-of-dicts like cameras/detectors) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | web/e2e/specs/settings/camera-wizard-ptz.spec.ts | 56 | // Step 1: name + host (probe mode is the default), then Continue. | COMMENT |
| LOW⚡ | web/e2e/specs/settings/camera-wizard-ptz.spec.ts | 61 | // Step 2: the probe auto-runs on mount; once candidates exist, Next enables. | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 103 | // Step 1: Create config for the new model | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 153 | // Step 2: Classify each image by moving it to the correct category folder | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 212 | // Step 3: Determine if we should train | COMMENT |
| LOW | …mponents/classification/wizard/Step3ChooseExamples.tsx | 225 | // Step 4: Kick off training only if we have enough classes with images | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 117 | // Step 1: Can proceed if camera name is set | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 120 | // Step 2: Can proceed if at least one stream exists (from probe or manual test) | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 123 | // Step 3: requires a detect stream; if PTZ is enabled, also require | COMMENT |
| LOW | web/src/components/settings/CameraWizardDialog.tsx | 136 | // Step 4: Always can proceed from final step (save will be handled there) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 393 | # Step 2: Create balanced timestamp selection (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 396 | # Step 3: Extract keyframes from recordings with crops applied | COMMENT |
| LOW⚡ | frigate/util/classification.py | 401 | # Step 4: Select 24 most visually distinct images (they're already cropped) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 404 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW⚡ | frigate/util/classification.py | 746 | # Step 2: Select balanced events (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 750 | # Step 3: Extract thumbnails from events | COMMENT |
| LOW⚡ | frigate/util/classification.py | 754 | # Step 4: Select 24 most visually distinct thumbnails | COMMENT |
| LOW⚡ | frigate/util/classification.py | 758 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW | frigate/util/classification.py | 376 | # Step 1: Get review items for the cameras | COMMENT |
| LOW | frigate/util/classification.py | 735 | # Step 1: Query events for the specified label and cameras | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 270 | # Step 1: Compute box heights and group boxes by vertical alignment and height similarity | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 302 | # Step 2: Process each initial group, filter by confidence | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 423 | # Step 3: Sort the combined plates | COMMENT |
| LOW⚡ | frigate/detectors/plugins/memryx.py | 410 | # Step 4: Slice the padded image into 4 quadrants and concatenate them into 12 channels | COMMENT |
| LOW⚡ | frigate/detectors/plugins/memryx.py | 416 | # Step 5: Concatenate along the channel dimension (axis 2) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testing-scripts/benchmark.py | 21 | # object_detector = LocalObjectDetector() | COMMENT |
| LOW | testing-scripts/benchmark.py | 61 | object_detector.cleanup() | COMMENT |
| LOW | testing-scripts/benchmark_motion.py | 21 | # Nick back: | COMMENT |
| LOW | docker/deepx/user_installation.sh | 1 | #!/bin/bash | COMMENT |
| LOW | web/e2e/specs/face-library.spec.ts | 381 | // the modal DropdownMenu enters its exit animation (Radix's Presence | COMMENT |
| LOW | …b/src/components/config-form/sectionExtras/registry.ts | 21 | Record<string, RendererComponent> | COMMENT |
| LOW | …/src/components/config-form/section-configs/objects.ts | 1 | import type { HiddenFieldContext } from "@/types/configForm"; | COMMENT |
| LOW | …b/src/components/player/dynamic/AutoQualityGovernor.ts | 21 | // total (non-graced) stall time within the rolling window that triggers | COMMENT |
| LOW | docs/docs/configuration/autotracking.md | 81 | # NOTE: HTTP is assumed by default; HTTPS is supported if you specify the scheme, ex: "https://0.0.0.0". | COMMENT |
| LOW | docs/docs/configuration/autotracking.md | 101 | # Optional: calibrate the camera on startup (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/object_detectors.md | 641 | 3. Depending on the model, the compiler may also generate a cropped post-processing network. If present, it will be name | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 21 | # NOTE: MQTT host can be specified with an environment variable or docker secrets that must begin with 'FRIGATE_'. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 41 | tls_ca_certs: /path/to/ca.crt | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 101 | logout_url: /api/logout | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 121 | cookie_secure: False | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 141 | # Optional: Map roles to the list of cameras each role can access (default: none) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 161 | # detectors available and the devices each one accepts. All of a model's | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 201 | # Optional: Audio Events Configuration | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 241 | EXAMPLE_VAR: value | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 261 | # motion: included if motion was detected within the inactivity threshold | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 281 | # Optional: ffmpeg binary path (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 301 | # If set too low, frigate will retry a connection to the camera's stream too frequently, using up the limited streams | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 321 | # Must match the scene of a configured model | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 341 | # Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 361 | # then the value should be decreased. Similarly, if a person is walking from | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 381 | # Optional: A friendly name for the mask | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 481 | enabled: False | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 501 | # Options: "default", "natural", "concise", "detailed" | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 521 | # to recalibrate and motion checks stop for that frame. Recordings are unaffected. (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 541 | # Higher values mean the current frame impacts the average a lot, and a new object will be averaged into the backgroun | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 561 | # Enables dynamic contrast improvement. This should help improve night detections at the cost of making motion detecti | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 581 | # NOTE: Can be overridden at the camera level | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 601 | days: 0 | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 621 | # Optional: alert recording settings | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 641 | # Optional: detection recording settings | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 661 | # Optional: Sub stream recording settings | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 681 | days: 10 | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 721 | # Optional: quality of the encoded snapshot image, 0-100 (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 761 | # Optional: Target a specific device to run the model (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 801 | # Optional: Configuration for AI / LLM providers | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 861 | # Required: name of the classification model | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 881 | cameras: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 921 | # Optional: Set the height of the jsmpeg stream. (default: 720) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 941 | # All Required when color is specified (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 961 | # Optional: camera type used for some Frigate features (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 981 | # hwaccel_args: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1001 | COMMENT | |
| LOW | docs/docs/configuration/advanced/reference.md | 1061 | # Optional: Adjust sort order of cameras in the UI. Larger numbers come later (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1081 | port: 8000 | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1101 | # Optional: calibrate the camera on startup (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1141 | # Required: Enable or disable the trigger. (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1161 | profiles: | COMMENT |
| LOW | frigate/track/centroid_tracker.py | 201 | # value in each row (i.e. the distance from each current object to | COMMENT |
| LOW | frigate/util/audio.py | 21 | from frigate.models import Recordings | COMMENT |
| LOW | frigate/util/audio.py | 41 | # re-covers, so when the provider got one of them wrong it blocks every | COMMENT |
| LOW | frigate/motion/improved_motion.py | 181 | # skip motion entirely if the scene change percentage exceeds configured | COMMENT |
| LOW | .github/workflows/stale.yml | 21 | exempt-draft-pr: false | COMMENT |
| LOW | .github/workflows/stale.yml | 41 | # token: ${{ secrets.GITHUB_TOKEN }} | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | frigate/data_processing/post/license_plate.py | 74 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 75 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 77 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 99 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 113 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 140 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 147 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 149 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 150 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 153 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 154 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 157 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 194 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 195 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 198 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 199 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 200 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 201 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 202 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 206 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 207 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 223 | CODE | |
| MEDIUM | frigate/data_processing/post/license_plate.py | 224 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/main/build_pysqlite3.sh | 45 | # Create the wheel and put it in the /wheels dir. | COMMENT |
| MEDIUM | …c/components/DockerComposeGenerator/config/config.yaml | 2 | # This file defines all devices, hardware options, and ports for Frigate Docker Compose generation | COMMENT |
| MEDIUM | frigate/app.py | 325 | # Create a client for other processes to use | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 554 | # Create a zero-byte file — partial ffmpeg output | COMMENT |
| MEDIUM | frigate/config/config.py | 1286 | # Create a new ObjectMaskConfig with raw_coordinates set | COMMENT |
| MEDIUM | frigate/data_processing/real_time/whisper_online.py | 972 | # Create the tokenizer | COMMENT |
| MEDIUM | frigate/data_processing/real_time/whisper_online.py | 978 | # Create the OnlineASRProcessor | COMMENT |
| MEDIUM | frigate/service_manager/multiprocessing_waiter.py | 146 | # Create the future while still holding the lock, | COMMENT |
| MEDIUM | frigate/ptz/onvif.py | 66 | # Create a dedicated event loop and run it in a separate thread | COMMENT |
| MEDIUM | frigate/stats/prometheus.py | 58 | # Create a local copy of CPU usages to work with | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frigate/embeddings/__init__.py | 0 | select thumbnail_embedding from vec_thumbnails where id = ? | STRING |
| HIGH | frigate/data_processing/post/semantic_trigger.py | 0 | select thumbnail_embedding from vec_thumbnails where id = ? | STRING |
| HIGH | frigate/api/event.py | 0 | select thumbnail_embedding from vec_thumbnails where id = ? | STRING |
| HIGH | frigate/data_processing/real_time/license_plate.py | 0 | handle processing images for face detection and recognition. | STRING |
| HIGH | frigate/data_processing/real_time/face.py | 0 | handle processing images for face detection and recognition. | STRING |
| HIGH | frigate/data_processing/common/license_plate/mixin.py | 0 | handle processing images for face detection and recognition. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/docs/configuration/advanced/reference.md | 493 | # Frame count is automatically calculated based on context window size, aspect ratio, and image source (capped at 20 | COMMENT |
| MEDIUM | docs/docs/configuration/genai/config.md | 219 | Ollama can serve the `embeddings` role for [Semantic Search](/configuration/semantic_search#genai-provider). Embedding i | CODE |
| MEDIUM⚡ | frigate/test/test_genai_prompts.py | 67 | # observations is a reasoning scaffold and potential_threat_level is | COMMENT |
| MEDIUM | frigate/data_processing/common/face/detector.py | 23 | # crop and scaled to whatever size the embedding model takes | COMMENT |
| MEDIUM | frigate/api/chat.py | 1697 | # Emit the full reasoning trace up front when the | COMMENT |
| MEDIUM | frigate/genai/prompts.py | 19 | # Base guidance per response field. `observations` is a reasoning scaffold, | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 232 | # Gemini Pro Vision has a 1M token context window | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 377 | # reasoning trace as separate `thought` parts so we can surface | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 632 | # Ask thinking-capable models to include their reasoning trace | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frigate/test/test_deferred_processor.py | 59 | def handle_request( | CODE |
| LOW | frigate/data_processing/real_time/bird.py | 186 | def handle_request( | CODE |
| LOW | frigate/data_processing/real_time/api.py | 45 | def handle_request( | CODE |
| LOW | frigate/data_processing/real_time/license_plate.py | 69 | def handle_request( | CODE |
| LOW | …ate/data_processing/real_time/custom_classification.py | 381 | def handle_request( | CODE |
| LOW | …ate/data_processing/real_time/custom_classification.py | 716 | def handle_request( | CODE |
| LOW | …igate/data_processing/real_time/audio_transcription.py | 460 | def handle_request( | CODE |
| LOW | frigate/data_processing/real_time/face.py | 273 | def handle_request( | CODE |
| LOW | frigate/data_processing/post/semantic_trigger.py | 65 | def process_data( | CODE |
| LOW | frigate/data_processing/post/semantic_trigger.py | 269 | def handle_request( | CODE |
| LOW | frigate/data_processing/post/object_descriptions.py | 201 | def process_data(self, frame_data: dict, data_type: PostProcessDataEnum) -> None: | CODE |
| LOW | frigate/data_processing/post/object_descriptions.py | 225 | def handle_request(self, topic: str, data: dict[str, Any]) -> str | None: | CODE |
| LOW | frigate/data_processing/post/review_descriptions.py | 143 | def process_data( | CODE |
| LOW | frigate/data_processing/post/review_descriptions.py | 229 | def handle_request(self, topic: str, request_data: dict[str, Any]) -> str | None: | CODE |
| LOW | frigate/data_processing/post/api.py | 28 | def process_data( | CODE |
| LOW | frigate/data_processing/post/api.py | 42 | def handle_request( | CODE |
| LOW | frigate/data_processing/post/license_plate.py | 60 | def process_data( | CODE |
| LOW | frigate/data_processing/post/license_plate.py | 226 | def handle_request(self, topic: str, request_data: dict) -> dict[str, Any] | None: | CODE |
| LOW | frigate/data_processing/post/audio_transcription.py | 88 | def process_data( | CODE |
| LOW | frigate/data_processing/post/audio_transcription.py | 244 | def handle_request(self, topic: str, request_data: dict[str, Any]) -> str | None: | CODE |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 1692 | def handle_request( | CODE |
| LOW | frigate/service_manager/service.py | 273 | def run_task( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/docs/configuration/audio_detectors.md | 317 | api_key: your-api-key | CODE |
| HIGH | docs/docs/configuration/genai/config.md | 262 | api_key: your-api-key # May not be required for local servers | CODE |
| HIGH | docs/docs/configuration/genai/config.md | 315 | api_key: your-api-key | CODE |
| HIGH | frigate/plus.py | 120 | "Plus API key not set. See https://docs.frigate.video/integrations/plus#set-your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frigate/config/classification.py | 74 | # An absent value ("model:" with nothing after it, or an explicit null) | COMMENT |
| HIGH | frigate/api/event.py | 260 | zone_clauses.append(Event.zones.length() == 0) | CODE |
| HIGH | frigate/api/event.py | 1775 | - If a duration is set to null, the event will need to be ended manually by calling /events/{event_id}/end. | CODE |
| HIGH | frigate/api/event.py | 663 | zone_clauses.append(Event.zones.length() == 0) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frigate/detectors/device.py | 35 | Parse a device string into its detector type and detector specific device. Args: raw: The configured device | STRING |
| HIGH | frigate/detectors/device.py | 64 | Build the detector config a device string describes. Args: spec: The parsed device spec model: The | STRING |
| HIGH | frigate/genai/__init__.py | 489 | Send chat messages to LLM with optional tool definitions. This method handles conversation-style inter | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | testing-scripts/analyze_recording_keyframes.py | 108 | # target_ts is before the earliest segment we have — just return the | COMMENT |
| MEDIUM | web/src/components/timeline/DetailStream.tsx | 200 | // robust to unordered reviewItems and avoids always picking the last | COMMENT |
| MEDIUM | docs/package-lock.json | 18580 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| LOW | frigate/util/services.py | 1607 | # If we can't parse the line properly, just add it as is | COMMENT |
| LOW | frigate/object_detection/base.py | 340 | # if the process has already exited on its own, just return | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/docs/configuration/advanced/reference.md | 415 | # Optional: Configuration for AI generated tracked object descriptions | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frigate/test/test_dispatcher_runtime_state.py | 15 | CODE | |
| LOW | frigate/test/http_api/test_http_media.py | 607 | CODE | |
| LOW | frigate/util/image.py | 407 | CODE | |
| LOW | frigate/data_processing/real_time/whisper_online.py | 92 | CODE | |
| LOW | frigate/detectors/plugins/memryx.py | 710 | CODE | |
| LOW | frigate/detectors/plugins/memryx.py | 727 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/data/object_detectors_models.yaml | 83 | # just make sure to give it the write configuration based on the model | COMMENT |
| LOW | .github/DISCUSSION_TEMPLATE/report-a-bug.yml | 72 | Provide the full name and don't forget to add the version! | CODE |
| LOW | .github/DISCUSSION_TEMPLATE/camera-support.yml | 35 | Provide the full name and don't forget to add the version! | CODE |
| LOW | .github/DISCUSSION_TEMPLATE/general-support.yml | 35 | Provide the full name and don't forget to add the version! | CODE |