NVR with realtime local object detection for IP cameras
This report presents the forensic synthetic code analysis of blakeblackshear/frigate, a TypeScript project with 34,314 GitHub stars. SynthScan v2.0 examined 506,356 lines of code across 2617 source files, recording 2985 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 6.8 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2985 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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 | 213 | def get_detector_translations( | CODE |
| LOW | generate_config_translations.py | 615 | 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 | 504 | def degenerate_embedding_test( | 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 | 40 | export function StatusBarMessagesProvider({ | CODE |
| LOW | web/src/context/streaming-settings-provider.tsx | 20 | export function StreamingSettingsProvider({ | CODE |
| LOW | web/src/utils/cameraUtil.ts | 132 | export function calculateDetectDimensions( | CODE |
| LOW | web/src/utils/cameraUtil.ts | 163 | export function detectCameraAudioFeatures( | CODE |
| LOW | web/src/utils/lifecycleUtil.ts | 6 | export function getLifecycleItemDescription( | CODE |
| LOW | web/src/utils/chatUtil.ts | 211 | export function getEventIdsFromSearchObjectsToolCalls( | CODE |
| LOW | web/src/utils/chatUtil.ts | 265 | export function getFindSimilarObjectsFromToolCalls( | CODE |
| LOW | web/src/utils/dateUtil.ts | 371 | export function getBeginningOfDayTimestamp(date: Date) { | CODE |
| LOW | web/src/utils/configUtil.ts | 112 | export function getBaseCameraSectionValue( | CODE |
| LOW | web/src/utils/configUtil.ts | 172 | export function parseProfileFromSectionPath(sectionPath: string): { | CODE |
| LOW | web/src/utils/configUtil.ts | 419 | export function requiresRestartForOverrides( | CODE |
| LOW | web/src/utils/configUtil.ts | 446 | export function requiresRestartForFieldPath( | CODE |
| LOW | web/src/utils/configUtil.ts | 566 | export function prepareSectionSavePayload(opts: { | CODE |
| LOW | web/src/utils/configUtil.ts | 794 | export function getEffectiveAttributeLabels( | CODE |
| LOW | web/src/utils/configUtil.ts | 848 | export function resolveHiddenFieldEntries( | CODE |
| LOW | web/src/utils/videoUtil.ts | 87 | export function playWithTemporaryMuteFallback(video: HTMLVideoElement) { | 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 | 74 | 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 | 205 | export function GroupedClassificationCard({ | CODE |
| LOW | …b/src/components/camera/ConnectionQualityIndicator.tsx | 16 | export function ConnectionQualityIndicator({ | CODE |
| LOW | web/src/components/graph/LineGraph.tsx | 191 | 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 | 112 | function buildAttributeFilterSchema( | CODE |
| LOW | …mponents/config-form/sections/section-special-cases.ts | 276 | export function getEffectiveDefaultsForSection( | CODE |
| LOW | …mponents/config-form/sections/section-special-cases.ts | 373 | 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 | 71 | export default function NotificationsSettingsExtras({ | CODE |
| LOW | …omponents/config-form/theme/fields/LayoutGridField.tsx | 132 | function GridLayoutObjectFieldTemplate( | CODE |
| LOW | …onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx | 87 | function getObjectLabelDisplayName(label: string): string { | CODE |
| LOW | …onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx | 91 | 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 | 17 | export function SemanticSearchModelSizeWidget(props: WidgetProps) { | CODE |
| LOW | …onfig-form/theme/widgets/SemanticSearchModelWidget.tsx | 28 | export function SemanticSearchModelWidget(props: WidgetProps) { | CODE |
| LOW | …/src/components/overlay/MobileReviewSettingsDrawer.tsx | 86 | 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 |
| LOW | …b/src/components/overlay/dialog/SearchFilterDialog.tsx | 911 | export function RecognizedLicensePlatesFilterContent({ | CODE |
| LOW | web/src/components/ws/WsMessageRow.tsx | 44 | function getTrackedObjectTypeColor(objectType: string): string { | CODE |
| LOW | web/src/components/ws/WsMessageRow.tsx | 156 | function getTrackedObjectUpdateSummary(data: unknown): string { | CODE |
| LOW | web/src/hooks/use-deferred-stream-metadata.ts | 20 | export default function useDeferredStreamMetadata(streamNames: string[]) { | CODE |
| LOW | web/src/hooks/use-config-override.ts | 89 | function stripAutoDerivedMissingFromGlobal( | CODE |
| LOW | web/src/hooks/use-config-override.ts | 110 | function isAutoDerivedMissingFromGlobal( | CODE |
| 900 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 | 51 | "placeholder": "Izberi tok", | CODE |
| LOW | web/public/locales/sl/components/camera.json | 58 | "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 | 72 | "placeholder": "Izberi primer" | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 94 | "placeholder": "Vnesi ime iskanja", | CODE |
| LOW | web/public/locales/sl/components/dialog.json | 125 | "placeholder": "Išči po oznaki ali podoznaki..." | CODE |
| LOW | web/public/locales/sl/views/explore.json | 44 | "placeholder": "Opis sledenega objekta", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 167 | "placeholder": "Vnesi ime..." | CODE |
| LOW | web/public/locales/sl/views/settings.json | 202 | "placeholder": "Vnesi ime..." | CODE |
| LOW | web/public/locales/sl/views/settings.json | 766 | "placeholder": "Vnesi ime vloge", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 840 | "placeholder": "Izberi tip sprožilca", | CODE |
| LOW | web/public/locales/sl/views/settings.json | 845 | "placeholder": "Poimenuj sprožilec", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1129 | "placeholder": "Vnesi uporabniško ime" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1133 | "placeholder": "Vnesi geslo", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1138 | "placeholder": "Ponovno vnesi geslo" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1156 | "placeholder": "Vnesi novo geslo", | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1158 | "placeholder": "Ponovno vnesi novo geslo" | CODE |
| LOW⚡ | web/public/locales/sl/views/settings.json | 1163 | "placeholder": "Vnesi svoje trenutno geslo" | CODE |
| LOW | web/public/locales/sl/views/settings.json | 1222 | "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 | 43 | "placeholder": "Vyberte prúd", | CODE |
| LOW | web/public/locales/sk/components/camera.json | 46 | "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 | 51 | "placeholder": "Pomenujte Export" | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 75 | "placeholder": "Vyberte prípad" | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 108 | "placeholder": "Zadajte názov pre vyhľadávanie", | CODE |
| LOW | web/public/locales/sk/components/dialog.json | 139 | "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 | 870 | "placeholder": "Zadajte používateľské meno" | CODE |
| LOW⚡ | web/public/locales/sk/views/settings.json | 874 | "placeholder": "Zadajte heslo", | CODE |
| LOW⚡ | web/public/locales/sk/views/settings.json | 877 | "placeholder": "Potvrdiť heslo" | CODE |
| LOW | web/public/locales/sk/views/settings.json | 891 | "placeholder": "Zadajte nové heslo", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 893 | "placeholder": "Znovu zadajte nové heslo" | CODE |
| LOW | web/public/locales/sk/views/settings.json | 980 | "placeholder": "Zadajte názov roly", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 1010 | "placeholder": "e.g. príklad@email.com", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 1137 | "placeholder": "Zadajte meno pre spúšťača", | CODE |
| LOW | web/public/locales/sk/views/settings.json | 1150 | "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 | 43 | "placeholder": "選擇串流", | CODE |
| LOW | web/public/locales/zh-Hant/components/camera.json | 46 | "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 | 146 | "placeholder": "請輸入搜尋的名稱", | CODE |
| LOW | web/public/locales/zh-Hant/components/dialog.json | 186 | "placeholder": "以標籤或子標籤搜尋..." | CODE |
| LOW | web/public/locales/zh-Hant/views/chat.json | 5 | "placeholder": "嘗試問我任何事…", | CODE |
| LOW | web/public/locales/zh-Hant/views/explore.json | 95 | "placeholder": "追蹤物件的說明", | CODE |
| LOW | web/public/locales/zh-Hant/views/settings.json | 470 | "placeholder": "觸發器名稱", | CODE |
| LOW | web/public/locales/zh-Hant/views/settings.json | 483 | "placeholder": "選擇觸發型別", | CODE |
| 823 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 370 | except Exception: # ❌ Too broad | CODE |
| LOW | generate_config_translations.py | 518 | except Exception as e: | CODE |
| LOW | generate_config_translations.py | 578 | except Exception as e: | CODE |
| LOW | generate_config_translations.py | 644 | except Exception as e: | CODE |
| LOW | CLAUDE.md | 370 | except Exception: # ❌ Too broad | CODE |
| LOW | frigate/watchdog.py | 111 | except Exception: | CODE |
| LOW | frigate/debug_replay.py | 143 | except Exception as e: | CODE |
| LOW | frigate/debug_replay.py | 318 | 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 | 213 | except Exception: | CODE |
| LOW | frigate/__main__.py | 89 | except Exception as traverse_error: | CODE |
| LOW | frigate/video/ffmpeg.py | 79 | except Exception: | CODE |
| LOW | frigate/embeddings/maintainer.py | 452 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 240 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 607 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 619 | except Exception as e: | CODE |
| LOW | frigate/embeddings/embeddings.py | 654 | except Exception as e: | CODE |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 108 | except Exception: | CODE |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 114 | except Exception: | CODE |
| LOW | frigate/embeddings/onnx/base_embedding.py | 43 | except Exception: | CODE |
| LOW | frigate/record/export.py | 249 | except Exception: | CODE |
| LOW | frigate/record/export.py | 323 | except Exception: | CODE |
| LOW | frigate/record/export.py | 336 | except Exception: | CODE |
| LOW | frigate/record/export.py | 433 | except Exception: | CODE |
| LOW | frigate/record/maintainer.py | 699 | except Exception as e: | CODE |
| LOW | frigate/record/maintainer.py | 787 | except Exception as e: | CODE |
| LOW | frigate/test/test_maintainer.py | 60 | except Exception: | CODE |
| MEDIUM | frigate/util/services.py | 663 | def try_get_info(f, h, default="N/A", sensor=None): | CODE |
| LOW | frigate/util/services.py | 78 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 99 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 164 | except Exception: | CODE |
| LOW | frigate/util/services.py | 657 | except Exception: | CODE |
| LOW | frigate/util/services.py | 737 | except Exception: | CODE |
| LOW | frigate/util/services.py | 759 | except Exception: | CODE |
| LOW | frigate/util/services.py | 801 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 806 | except Exception as e: | CODE |
| LOW | frigate/util/services.py | 1060 | except Exception: | CODE |
| LOW | frigate/util/media.py | 253 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 341 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 437 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 517 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 595 | except Exception as e: | CODE |
| LOW | frigate/util/media.py | 687 | except Exception as e: | CODE |
| LOW | frigate/util/config.py | 870 | except Exception: | CODE |
| LOW | frigate/util/downloader.py | 94 | 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 |
| LOW⚡ | frigate/util/camera_cleanup.py | 145 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 154 | except Exception as e: | CODE |
| LOW⚡ | frigate/util/camera_cleanup.py | 164 | except Exception as e: | CODE |
| 265 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | generate_api_auth_spec.py | 180 | CODE | |
| LOW | generate_api_auth_spec.py | 463 | CODE | |
| LOW | generate_config_translations.py | 35 | CODE | |
| LOW | generate_config_translations.py | 285 | CODE | |
| LOW | testing-scripts/object_dataset.py | 532 | CODE | |
| LOW | testing-scripts/face_dataset.py | 180 | CODE | |
| LOW | testing-scripts/process_clip.py | 141 | 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 | 35 | CODE | |
| LOW | frigate/plus.py | 140 | CODE | |
| LOW | frigate/plus.py | 184 | CODE | |
| LOW | frigate/watchdog.py | 114 | CODE | |
| LOW | frigate/debug_replay.py | 322 | CODE | |
| LOW | frigate/log.py | 205 | CODE | |
| LOW | frigate/log.py | 214 | CODE | |
| LOW | frigate/storage.py | 33 | CODE | |
| LOW | frigate/__main__.py | 17 | CODE | |
| LOW | frigate/video/ffmpeg.py | 38 | CODE | |
| LOW | frigate/video/ffmpeg.py | 258 | CODE | |
| LOW | frigate/video/detect.py | 176 | CODE | |
| LOW | frigate/embeddings/genai_embedding.py | 29 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 414 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 532 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 756 | CODE | |
| LOW | frigate/embeddings/maintainer.py | 417 | CODE | |
| LOW | frigate/embeddings/embeddings.py | 450 | CODE | |
| LOW | frigate/embeddings/embeddings.py | 624 | CODE | |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 83 | CODE | |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 88 | CODE | |
| LOW | frigate/track/object_processing.py | 116 | CODE | |
| LOW | frigate/track/object_processing.py | 365 | CODE | |
| LOW | frigate/track/object_processing.py | 682 | CODE | |
| LOW | frigate/track/object_processing.py | 186 | CODE | |
| LOW | frigate/track/centroid_tracker.py | 140 | CODE | |
| LOW | frigate/track/norfair_tracker.py | 336 | CODE | |
| LOW | frigate/track/norfair_tracker.py | 509 | CODE | |
| LOW | frigate/track/tracked_object.py | 125 | CODE | |
| LOW | frigate/track/tracked_object.py | 593 | CODE | |
| LOW | frigate/record/maintainer.py | 106 | CODE | |
| LOW | frigate/record/maintainer.py | 614 | CODE | |
| LOW | frigate/record/maintainer.py | 708 | CODE | |
| LOW | frigate/test/test_maintainer.py | 31 | CODE | |
| LOW | frigate/test/test_object_detector.py | 15 | CODE | |
| LOW | frigate/util/services.py | 52 | CODE | |
| LOW | frigate/util/services.py | 84 | CODE | |
| LOW | frigate/util/services.py | 170 | CODE | |
| LOW | frigate/util/services.py | 188 | CODE | |
| LOW | frigate/util/services.py | 241 | CODE | |
| LOW | frigate/util/services.py | 307 | CODE | |
| LOW | frigate/util/services.py | 411 | CODE | |
| LOW | frigate/util/services.py | 626 | CODE | |
| LOW | frigate/util/services.py | 743 | CODE | |
| LOW | frigate/util/services.py | 765 | CODE | |
| LOW | frigate/util/services.py | 812 | CODE | |
| LOW | frigate/util/services.py | 1066 | CODE | |
| LOW | frigate/util/services.py | 1217 | CODE | |
| 175 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 | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/watchdog.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/debug_replay.py | 42 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/storage.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/app.py | 90 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/ffmpeg_presets.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/video/ffmpeg.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/video/detect.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/__init__.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/__init__.py | 287 | 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 | 77 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/embeddings.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/embeddings.py | 157 | def update_stats(self) -> None: | CODE |
| LOW | frigate/embeddings/onnx/jina_v1_embedding.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/jina_v2_embedding.py | 25 | 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 | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/embeddings/onnx/base_embedding.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/track/object_processing.py | 47 | 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 | 493 | 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 | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/cleanup.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/maintainer.py | 43 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/record/record.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/time.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/services.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/services.py | 1285 | def set_file_limit() -> None: | CODE |
| LOW | frigate/util/media.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/config.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/downloader.py | 14 | 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 | 40 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/ffmpeg.py | 53 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/model.py | 13 | 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 | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/builtin.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/util/rknn_converter.py | 13 | 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 | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/config/profile_manager.py | 138 | def update_config(self, new_config) -> None: | CODE |
| LOW | frigate/config/config.py | 76 | __all__ = ["FrigateConfig"] | CODE |
| LOW | frigate/config/config.py | 78 | logger = logging.getLogger(__name__) | CODE |
| LOW | frigate/config/classification.py | 7 | __all__ = [ | CODE |
| LOW | frigate/config/ui.py | 7 | __all__ = ["TimeFormatEnum", "UnitSystemEnum", "UIConfig"] | CODE |
| LOW | frigate/config/proxy.py | 6 | __all__ = ["ProxyConfig", "HeaderMappingConfig"] | CODE |
| LOW | frigate/config/camera_group.py | 5 | __all__ = ["CameraGroupConfig"] | CODE |
| LOW | frigate/config/database.py | 7 | __all__ = ["DatabaseConfig"] | CODE |
| LOW | frigate/config/profile.py | 7 | __all__ = ["ProfileDefinitionConfig"] | CODE |
| 143 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 | 203 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 205 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 251 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 253 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 370 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 696 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | testing-scripts/face_dataset.py | 698 | # --------------------------------------------------------------------------- | 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 | 124 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 126 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 198 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/test/test_genai_providers.py | 370 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 300 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/test_genai_providers.py | 302 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 1125 | # ── Bulk delete exports ──────────────────────────────────────── | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 1258 | # ── Bulk reassign exports ────────────────────────────────────── | 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/test/http_api/test_http_camera_access.py | 275 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | frigate/test/http_api/test_http_camera_access.py | 277 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | frigate/api/chat.py | 1425 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | frigate/api/chat.py | 1427 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 113 | // Step 1: Can proceed if camera name is set | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 116 | // Step 2: Can proceed if at least one stream exists (from probe or manual test) | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 119 | // Step 3: Can proceed if at least one stream has 'detect' role | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 126 | // Step 4: Always can proceed from final step (save will be handled there) | 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 | 88 | ### Step 1: Name and Define | COMMENT |
| LOW⚡ | …guration/custom_classification/state_classification.md | 92 | ### Step 2: Select the Crop Area | COMMENT |
| LOW⚡ | …guration/custom_classification/state_classification.md | 96 | ### 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 | 159 | # NOTE: The default values are for the EdgeTPU detector. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 581 | # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback. | STRING |
| LOW | docs/docs/configuration/advanced/reference.md | 824 | # NOTE: The default go2rtc API port (1984) must be used, | STRING |
| 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 | 216 | #### Step 1: Enable recording debug logging | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 234 | #### Step 2: Interpret the copy times | COMMENT |
| LOW | docs/docs/troubleshooting/recordings.md | 241 | #### Step 3: Check RAM, swap, cache, and disk utilization | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 277 | #### Step 4: Check your storage type | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 281 | #### Step 5: Check your mount options | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 285 | #### Step 6: Rule out CPU load | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 301 | #### Step 1: Get the full logs | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 305 | #### Step 2: Check the cache directory | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 315 | #### Step 3: Verify segment duration | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 337 | #### Step 4: Check for a stuck detector | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 346 | #### Step 5: Check for GPU hangs | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 356 | #### Step 6: Verify hardware acceleration configuration | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 364 | #### Step 7: Verify go2rtc stream configuration | COMMENT |
| LOW⚡ | docs/docs/troubleshooting/recordings.md | 368 | #### Step 8: 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/guides/getting_started.md | 141 | ### Step 1: Start Frigate | COMMENT |
| LOW⚡ | docs/docs/guides/getting_started.md | 145 | ### Step 2: Add a camera | COMMENT |
| LOW⚡ | docs/docs/guides/getting_started.md | 149 | ### Step 3: Configure hardware acceleration (recommended) | COMMENT |
| LOW | docs/docs/guides/getting_started.md | 193 | ### Step 4: Configure detectors | COMMENT |
| LOW | docs/docs/guides/getting_started.md | 306 | ### Step 5: Setup motion masks | COMMENT |
| LOW | docs/docs/guides/getting_started.md | 344 | ### Step 6: Enable recordings | COMMENT |
| LOW | docs/docs/guides/getting_started.md | 393 | ### Step 7: Complete config | 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 | 60 | ## Step 4: Adjust your object filters for higher scores | COMMENT |
| LOW⚡ | frigate/util/classification.py | 392 | # Step 2: Create balanced timestamp selection (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 395 | # Step 3: Extract keyframes from recordings with crops applied | COMMENT |
| LOW⚡ | frigate/util/classification.py | 400 | # Step 4: Select 24 most visually distinct images (they're already cropped) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 403 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW⚡ | frigate/util/classification.py | 744 | # Step 2: Select balanced events (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 748 | # Step 3: Extract thumbnails from events | COMMENT |
| LOW⚡ | frigate/util/classification.py | 752 | # Step 4: Select 24 most visually distinct thumbnails | COMMENT |
| LOW⚡ | frigate/util/classification.py | 756 | # Step 5: Save to train directory for later classification | COMMENT |
| 7 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 | 442 | max_frames = self.detect_config.stationary.max_frames.objects.get( | CODE |
| CRITICAL | frigate/api/auth.py | 450 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 868 | config_roles_set = set(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 913 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/auth.py | 1072 | config_roles = list(request.app.frigate_config.auth.roles.keys()) | CODE |
| CRITICAL | frigate/api/event.py | 1443 | ) in request.app.frigate_config.classification.custom.items(): | STRING |
| CRITICAL | frigate/api/classification.py | 719 | ) in request.app.frigate_config.classification.custom.items(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frigate/video/ffmpeg.py | 361 | # Check if enough time has passed to allow ffmpeg restart (backoff pacing) | COMMENT |
| LOW | frigate/video/ffmpeg.py | 407 | # Check if we're within the grace period after enabling recording | COMMENT |
| LOW | frigate/embeddings/maintainer.py | 137 | # Check if we need to re-index events | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 470 | # Check if data has changed or thumbnail is missing for thumbnail type | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 483 | # Check if thumbnail needs to be updated (data changed or missing) | COMMENT |
| LOW | frigate/embeddings/embeddings.py | 515 | # Check if embedding is missing or needs update | COMMENT |
| LOW | frigate/util/services.py | 628 | # Check if axcl-smi exists | COMMENT |
| LOW | frigate/util/media.py | 387 | # Check if event exists with inline thumbnail | COMMENT |
| LOW | frigate/util/config.py | 739 | # Check if it's a percentage | COMMENT |
| LOW | frigate/util/classification.py | 498 | # Check if we already have a timestamp near this one | COMMENT |
| LOW | frigate/util/file.py | 341 | # Check if lock file is older than stale_timeout | COMMENT |
| LOW | frigate/util/file.py | 439 | # Close file descriptor and release fcntl lock | COMMENT |
| LOW | frigate/util/rknn_converter.py | 75 | # Check if the SoC is actually a supported RK device | COMMENT |
| LOW | frigate/util/rknn_converter.py | 285 | # Check if RKNN model appeared | COMMENT |
| LOW | frigate/util/rknn_converter.py | 290 | # Check if lock file is gone (conversion completed or failed) | COMMENT |
| LOW | frigate/util/rknn_converter.py | 302 | # Check if lock is stale | COMMENT |
| LOW | frigate/util/rknn_converter.py | 312 | # Check if RKNN file appeared while waiting | COMMENT |
| LOW | frigate/util/rknn_converter.py | 362 | # Check if equivalent .rknn file exists | COMMENT |
| LOW | frigate/config/config.py | 1078 | # Check if the config file needs to be migrated. | COMMENT |
| LOW | frigate/comms/dispatcher.py | 1051 | # Check if this is a global mask | COMMENT |
| LOW | frigate/comms/dispatcher.py | 1065 | # 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 | 513 | # Check if the boxes are vertically aligned (similar y-coordinates) | COMMENT |
| LOW | frigate/review/maintainer.py | 679 | # Check if the current segment should be processed based on enabled settings | COMMENT |
| LOW | frigate/api/auth.py | 460 | # Check if we have any roles | COMMENT |
| LOW | frigate/api/auth.py | 739 | # Check if password has been changed since token was issued | COMMENT |
| LOW | frigate/api/event.py | 1875 | # Check if trigger already exists | STRING |
| LOW | frigate/api/event.py | 2090 | # Check if trigger exists for upsert | STRING |
| LOW | frigate/api/camera.py | 822 | # Check if PTZ service is available | COMMENT |
| LOW | frigate/api/camera.py | 1148 | # 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 | 117 | # Check if model is available and transfer if needed | COMMENT |
| LOW | frigate/detectors/plugins/zmq_ipc.py | 186 | # Check if this is a JSON response (model management) | COMMENT |
| LOW | frigate/detectors/plugins/zmq_ipc.py | 240 | # Check if this is a JSON response (model management) | COMMENT |
| LOW | frigate/detectors/plugins/memryx.py | 72 | # Check if model_type was explicitly set by the user | COMMENT |
| LOW | frigate/detectors/plugins/memryx.py | 378 | # Check if shutdown is requested | COMMENT |
| LOW | frigate/detectors/plugins/rknn.py | 110 | # 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 | 331 | # Check if response is valid | COMMENT |
| LOW | frigate/stats/emitter.py | 91 | # Check if values are dicts (dict-of-dicts like cameras/detectors) | COMMENT |
| 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/video/__init__.py | 1 | CODE | |
| LOW | frigate/video/__init__.py | 2 | CODE | |
| LOW | frigate/embeddings/genai_embedding.py | 11 | CODE | |
| LOW | frigate/util/builtin.py | 26 | CODE | |
| LOW | frigate/util/rknn_converter.py | 97 | CODE | |
| LOW | frigate/util/rknn_converter.py | 120 | 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/data_processing/types.py | 3 | CODE | |
| LOW | frigate/data_processing/post/object_descriptions.py | 27 | 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 | |
| LOW | frigate/jobs/debug_replay.py | 32 | CODE | |
| LOW | frigate/genai/__init__.py | 18 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 113 | // Step 1: Can proceed if camera name is set | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 116 | // Step 2: Can proceed if at least one stream exists (from probe or manual test) | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 119 | // Step 3: Can proceed if at least one stream has 'detect' role | COMMENT |
| LOW⚡ | web/src/components/settings/CameraWizardDialog.tsx | 126 | // Step 4: Always can proceed from final step (save will be handled there) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 392 | # Step 2: Create balanced timestamp selection (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 395 | # Step 3: Extract keyframes from recordings with crops applied | COMMENT |
| LOW⚡ | frigate/util/classification.py | 400 | # Step 4: Select 24 most visually distinct images (they're already cropped) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 403 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW⚡ | frigate/util/classification.py | 744 | # Step 2: Select balanced events (100 samples) | COMMENT |
| LOW⚡ | frigate/util/classification.py | 748 | # Step 3: Extract thumbnails from events | COMMENT |
| LOW⚡ | frigate/util/classification.py | 752 | # Step 4: Select 24 most visually distinct thumbnails | COMMENT |
| LOW⚡ | frigate/util/classification.py | 756 | # Step 5: Save to train directory for later classification | COMMENT |
| LOW | frigate/util/classification.py | 375 | # Step 1: Get review items for the cameras | COMMENT |
| LOW | frigate/util/classification.py | 733 | # Step 1: Query events for the specified label and cameras | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 269 | # Step 1: Compute box heights and group boxes by vertical alignment and height similarity | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 301 | # Step 2: Process each initial group, filter by confidence | COMMENT |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 422 | # Step 3: Sort the combined plates | COMMENT |
| LOW⚡ | frigate/detectors/plugins/memryx.py | 356 | # Step 4: Slice the padded image into 4 quadrants and concatenate them into 12 channels | COMMENT |
| LOW⚡ | frigate/detectors/plugins/memryx.py | 362 | # Step 5: Concatenate along the channel dimension (axis 2) | 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 |
|---|---|---|---|---|
| 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 | web/e2e/specs/face-library.spec.ts | 361 | COMMENT | |
| LOW | web/e2e/specs/face-library.spec.ts | 381 | // DropdownMenu (desktop path only). With modal=false the DropdownMenu | COMMENT |
| LOW | web/src/utils/configUtil.ts | 181 | return { isProfile: false, actualSection: sectionPath }; | 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 | 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/advanced/reference.md | 21 | host: mqtt.server.com | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 41 | # certificates (default: None) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 61 | # Required: type of the detector | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 81 | ipv6: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 121 | # Optional: Enable authentication | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 141 | # Optional: Trusted proxies for determining IP address to rate limit | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 161 | model: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 241 | # Optional: Restream birdseye via RTSP (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 261 | scaling_factor: 2.0 | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 281 | # Optional: global output args | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 301 | enabled: False | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 321 | interval: 50 | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 341 | # with the recording. The value can be positive or negative. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 381 | # Optional: maximum width/height of the bounding box for the detected object (default: 24000000) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 461 | # Optional: GenAI Review Summary Configuration | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 481 | # Optional: Preferred response language (default: English) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 501 | # Decreasing this value will make motion detection more likely to ignore large amounts of motion such as a person appr | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 521 | # https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/ | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 541 | improve_contrast: True | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 561 | # the UI or MQTT later will have no effect. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 581 | # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback. | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 601 | # Optional: Number of seconds after the alert to include (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 621 | # Optional: Number of seconds after the detection to include (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 661 | # Optional: quality of the encoded snapshot image, 0-100 (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 701 | # Optional: Target a specific device to run the model (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 741 | # Optional: Configuration for AI / LLM providers | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 821 | COMMENT | |
| LOW | docs/docs/configuration/advanced/reference.md | 841 | # Optional: Set the encode quality of the jsmpeg stream (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 861 | # Optional: Line thickness of font (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 881 | ffmpeg: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 901 | # global_args: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 921 | # Optional: zones for this camera | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 981 | dashboard: True | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1001 | # Optional: Skip TLS verification and disable digest authentication for the ONVIF server (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1021 | # Optional: the mode to use for zooming in/out on objects during autotracking. (default: shown below) | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1061 | # Reference data for matching, either an event ID for `thumbnail` or a text string for `description`. (default: | COMMENT |
| LOW | docs/docs/configuration/advanced/reference.md | 1081 | audio: | COMMENT |
| LOW | docs/docs/frigate/installation.md | 701 | # Download Frigate image | COMMENT |
| LOW | frigate/track/centroid_tracker.py | 201 | # value in each row (i.e. the distance from each current object to | COMMENT |
| LOW | frigate/detectors/plugins/edgetpu_tfl.py | 221 | 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 | 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 | 301 | # Create a client for other processes to use | COMMENT |
| MEDIUM | frigate/test/http_api/test_http_export.py | 467 | # Create a zero-byte file — partial ffmpeg output | COMMENT |
| MEDIUM | frigate/config/config.py | 917 | # 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 | 59 | # 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 |
|---|---|---|---|---|
| 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 | 355 | def handle_request( | CODE |
| LOW | …ate/data_processing/real_time/custom_classification.py | 690 | def handle_request( | CODE |
| LOW | …igate/data_processing/real_time/audio_transcription.py | 269 | def handle_request( | CODE |
| LOW | frigate/data_processing/real_time/face.py | 348 | 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 | 194 | def process_data(self, frame_data: dict, data_type: PostProcessDataEnum) -> None: | CODE |
| LOW | frigate/data_processing/post/object_descriptions.py | 218 | def handle_request(self, topic: str, data: dict[str, Any]) -> str | None: | CODE |
| LOW | frigate/data_processing/post/review_descriptions.py | 128 | def process_data( | CODE |
| LOW | frigate/data_processing/post/review_descriptions.py | 239 | 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 | 72 | def process_data( | CODE |
| LOW | frigate/data_processing/post/audio_transcription.py | 199 | def handle_request(self, topic: str, request_data: dict[str, Any]) -> str | None: | CODE |
| LOW | frigate/data_processing/common/license_plate/mixin.py | 1675 | def handle_request( | CODE |
| LOW | frigate/service_manager/service.py | 273 | def run_task( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/docs/configuration/genai/config.md | 181 | api_key: your-api-key # May not be required for local servers | CODE |
| HIGH | docs/docs/configuration/genai/config.md | 232 | api_key: your-api-key | CODE |
| HIGH | frigate/plus.py | 72 | "Plus API key not set. See https://docs.frigate.video/integrations/plus#set-your-api-key" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/docs/configuration/advanced/reference.md | 476 | # Frame count is automatically calculated based on context window size, aspect ratio, and image source (capped at 20 | STRING |
| MEDIUM | frigate/api/chat.py | 1343 | # Emit the full reasoning trace up front when the | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 170 | # Gemini Pro Vision has a 1M token context window | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 315 | # reasoning trace as separate `thought` parts so we can surface | COMMENT |
| MEDIUM | frigate/genai/plugins/gemini.py | 570 | # Ask thinking-capable models to include their reasoning trace | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frigate/api/event.py | 259 | zone_clauses.append(Event.zones.length() == 0) | CODE |
| HIGH | frigate/api/event.py | 1745 | - 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 | 641 | zone_clauses.append(Event.zones.length() == 0) | 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 | 20214 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| LOW | frigate/util/services.py | 1271 | # 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 | 398 | # Optional: Configuration for AI generated tracked object descriptions | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | frigate/test/test_dispatcher_runtime_state.py | 12 | CODE | |
| LOW | frigate/util/image.py | 415 | CODE | |
| LOW | frigate/data_processing/real_time/whisper_online.py | 92 | CODE | |
| LOW | frigate/detectors/plugins/memryx.py | 656 | CODE | |
| LOW | frigate/detectors/plugins/memryx.py | 673 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | frigate/genai/__init__.py | 334 | Send chat messages to LLM with optional tool definitions. This method handles conversation-style inter | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/data/object_detectors_models.yaml | 90 | # just make sure to give it the write configuration based on the model | COMMENT |
| LOW | .github/DISCUSSION_TEMPLATE/report-a-bug.yml | 67 | Provide the full name and don't forget to add the version! | CODE |
| LOW | .github/DISCUSSION_TEMPLATE/camera-support.yml | 32 | Provide the full name and don't forget to add the version! | CODE |
| LOW | .github/DISCUSSION_TEMPLATE/general-support.yml | 32 | Provide the full name and don't forget to add the version! | CODE |