Repository Analysis

blakeblackshear/frigate

NVR with realtime local object detection for IP cameras

6.8 Low AI signal View on GitHub

Analysis Overview

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).

6.8
Adjusted Score
6.8
Raw Score
100%
Time Factor
2026-07-14
Last Push
34.3K
Stars
TypeScript
Language
506.4K
Lines of Code
2.6K
Files
3.0K
Pattern Hits
2026-07-14
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 10HIGH 14MEDIUM 91LOW 2870

Directory Score Breakdown

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.

Pattern Findings

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.

Hyper-Verbose Identifiers960 hits · 995 pts
SeverityFileLineSnippetContext
LOWAGENTS.md205 def test_detects_motion_above_threshold(self):CODE
LOWgenerate_config_translations.py35def extract_translations_from_schema(CODE
LOWgenerate_config_translations.py205def generate_section_translation(config_class: type) -> dict[str, Any]:CODE
LOWgenerate_config_translations.py213def get_detector_translations(CODE
LOWgenerate_config_translations.py615 def sanitize_camera_descriptions(obj):CODE
LOWCLAUDE.md205 def test_detects_motion_above_threshold(self):CODE
LOWtesting-scripts/object_dataset.py699def pick_worst_confusion_pair(CODE
LOWtesting-scripts/object_dataset.py717def cross_class_contamination(CODE
LOWtesting-scripts/face_dataset.py504def degenerate_embedding_test(CODE
LOWtesting-scripts/analyze_recording_keyframes.py80def find_segments_near_timestamp(CODE
LOWweb/i18next.config.ts8function ignoreDynamicNamespaceKeys(): Plugin {CODE
LOWweb/e2e/specs/chat.spec.ts20async function installChatStreamOverride(CODE
LOWweb/e2e/helpers/clipboard.ts16export async function grantClipboardPermissions(CODE
LOWweb/src/context/statusbar-provider.tsx40export function StatusBarMessagesProvider({CODE
LOWweb/src/context/streaming-settings-provider.tsx20export function StreamingSettingsProvider({CODE
LOWweb/src/utils/cameraUtil.ts132export function calculateDetectDimensions(CODE
LOWweb/src/utils/cameraUtil.ts163export function detectCameraAudioFeatures(CODE
LOWweb/src/utils/lifecycleUtil.ts6export function getLifecycleItemDescription(CODE
LOWweb/src/utils/chatUtil.ts211export function getEventIdsFromSearchObjectsToolCalls(CODE
LOWweb/src/utils/chatUtil.ts265export function getFindSimilarObjectsFromToolCalls(CODE
LOWweb/src/utils/dateUtil.ts371export function getBeginningOfDayTimestamp(date: Date) {CODE
LOWweb/src/utils/configUtil.ts112export function getBaseCameraSectionValue(CODE
LOWweb/src/utils/configUtil.ts172export function parseProfileFromSectionPath(sectionPath: string): {CODE
LOWweb/src/utils/configUtil.ts419export function requiresRestartForOverrides(CODE
LOWweb/src/utils/configUtil.ts446export function requiresRestartForFieldPath(CODE
LOWweb/src/utils/configUtil.ts566export function prepareSectionSavePayload(opts: {CODE
LOWweb/src/utils/configUtil.ts794export function getEffectiveAttributeLabels(CODE
LOWweb/src/utils/configUtil.ts848export function resolveHiddenFieldEntries(CODE
LOWweb/src/utils/videoUtil.ts87export function playWithTemporaryMuteFallback(video: HTMLVideoElement) {CODE
LOWweb/src/utils/cameraClone.ts302function applyDetectComputedDefaults(CODE
LOWweb/src/utils/cameraClone.ts472export function buildClonedCameraPayloads({CODE
LOW…nents/classification/ClassificationModelEditDialog.tsx74export default function ClassificationModelEditDialog({CODE
LOW…nts/classification/ClassificationModelWizardDialog.tsx93export default function ClassificationModelWizardDialog({CODE
LOWweb/src/components/ui/circular-progress-bar.tsx12export default function AnimatedCircularProgressBar({CODE
LOWweb/src/components/card/ClassificationCard.tsx205export function GroupedClassificationCard({CODE
LOW…b/src/components/camera/ConnectionQualityIndicator.tsx16export function ConnectionQualityIndicator({CODE
LOWweb/src/components/graph/LineGraph.tsx191export function EventsPerSecondsLineGraph({CODE
LOWweb/src/components/filter/CalendarFilterButton.tsx101export function CalendarRangeFilterButton({CODE
LOW…mponents/config-form/sections/section-special-cases.ts112function buildAttributeFilterSchema(CODE
LOW…mponents/config-form/sections/section-special-cases.ts276export function getEffectiveDefaultsForSection(CODE
LOW…mponents/config-form/sections/section-special-cases.ts373export function sanitizeOverridesForSection(CODE
LOW…nfig-form/sectionExtras/CameraReviewClassification.tsx32export default function CameraReviewClassification({CODE
LOW…onfig-form/sectionExtras/CameraReviewStatusToggles.tsx18export default function CameraReviewStatusToggles({CODE
LOW…fig-form/sectionExtras/NotificationsSettingsExtras.tsx71export default function NotificationsSettingsExtras({CODE
LOW…omponents/config-form/theme/fields/LayoutGridField.tsx132function GridLayoutObjectFieldTemplate(CODE
LOW…onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx87function getObjectLabelDisplayName(label: string): string {CODE
LOW…onfig-form/theme/widgets/ObjectLabelSwitchesWidget.tsx91export function ObjectLabelSwitchesWidget(props: WidgetProps) {CODE
LOW…onfig-form/theme/widgets/ReviewLabelSwitchesWidget.tsx57function getReviewLabelDisplayName(CODE
LOW…onfig-form/theme/widgets/ReviewLabelSwitchesWidget.tsx69export function ReviewLabelSwitchesWidget(props: WidgetProps) {CODE
LOW…g-form/theme/widgets/SemanticSearchModelSizeWidget.tsx17export function SemanticSearchModelSizeWidget(props: WidgetProps) {CODE
LOW…onfig-form/theme/widgets/SemanticSearchModelWidget.tsx28export function SemanticSearchModelWidget(props: WidgetProps) {CODE
LOW…/src/components/overlay/MobileReviewSettingsDrawer.tsx86export default function MobileReviewSettingsDrawer({CODE
LOW…c/components/overlay/ClassificationSelectionDialog.tsx44export default function ClassificationSelectionDialog({CODE
LOW…b/src/components/overlay/dialog/SearchFilterDialog.tsx675export function SnapshotClipFilterContent({CODE
LOW…b/src/components/overlay/dialog/SearchFilterDialog.tsx911export function RecognizedLicensePlatesFilterContent({CODE
LOWweb/src/components/ws/WsMessageRow.tsx44function getTrackedObjectTypeColor(objectType: string): string {CODE
LOWweb/src/components/ws/WsMessageRow.tsx156function getTrackedObjectUpdateSummary(data: unknown): string {CODE
LOWweb/src/hooks/use-deferred-stream-metadata.ts20export default function useDeferredStreamMetadata(streamNames: string[]) {CODE
LOWweb/src/hooks/use-config-override.ts89function stripAutoDerivedMissingFromGlobal(CODE
LOWweb/src/hooks/use-config-override.ts110function isAutoDerivedMissingFromGlobal(CODE
900 more matches not shown…
Fake / Example Data883 hits · 959 pts
SeverityFileLineSnippetContext
LOWweb/public/locales/sl/components/filter.json130 "placeholder": "Tipkaj za iskanje tablic…",CODE
LOWweb/public/locales/sl/components/camera.json35 "placeholder": "Izberi način pretakanja"CODE
LOWweb/public/locales/sl/components/camera.json51 "placeholder": "Izberi tok",CODE
LOWweb/public/locales/sl/components/camera.json58 "placeholder": "Vnesi ime…",CODE
LOWweb/public/locales/sl/components/icons.json5 "placeholder": "Iskanje ikone…"CODE
LOWweb/public/locales/sl/components/dialog.json52 "placeholder": "Poimenuj izvoz"CODE
LOWweb/public/locales/sl/components/dialog.json72 "placeholder": "Izberi primer"CODE
LOWweb/public/locales/sl/components/dialog.json94 "placeholder": "Vnesi ime iskanja",CODE
LOWweb/public/locales/sl/components/dialog.json125 "placeholder": "Išči po oznaki ali podoznaki..."CODE
LOWweb/public/locales/sl/views/explore.json44 "placeholder": "Opis sledenega objekta",CODE
LOWweb/public/locales/sl/views/settings.json167 "placeholder": "Vnesi ime..."CODE
LOWweb/public/locales/sl/views/settings.json202 "placeholder": "Vnesi ime..."CODE
LOWweb/public/locales/sl/views/settings.json766 "placeholder": "Vnesi ime vloge",CODE
LOWweb/public/locales/sl/views/settings.json840 "placeholder": "Izberi tip sprožilca",CODE
LOWweb/public/locales/sl/views/settings.json845 "placeholder": "Poimenuj sprožilec",CODE
LOWweb/public/locales/sl/views/settings.json1129 "placeholder": "Vnesi uporabniško ime"CODE
LOWweb/public/locales/sl/views/settings.json1133 "placeholder": "Vnesi geslo",CODE
LOWweb/public/locales/sl/views/settings.json1138 "placeholder": "Ponovno vnesi geslo"CODE
LOWweb/public/locales/sl/views/settings.json1156 "placeholder": "Vnesi novo geslo",CODE
LOWweb/public/locales/sl/views/settings.json1158 "placeholder": "Ponovno vnesi novo geslo"CODE
LOWweb/public/locales/sl/views/settings.json1163 "placeholder": "Vnesi svoje trenutno geslo"CODE
LOWweb/public/locales/sl/views/settings.json1222 "placeholder": "npr. primer@email.com",CODE
LOWweb/public/locales/sl/views/search.json70 "placeholder": {CODE
LOWweb/public/locales/sl/views/faceLibrary.json4 "placeholder": "Vnesi ime za to zbirko",CODE
LOWweb/public/locales/sk/components/filter.json130 "placeholder": "Zadajte text pre vyhľadávanie evidenčných čísel…",CODE
LOWweb/public/locales/sk/components/camera.json15 "placeholder": "Zadajte meno…",CODE
LOWweb/public/locales/sk/components/camera.json43 "placeholder": "Vyberte prúd",CODE
LOWweb/public/locales/sk/components/camera.json46 "placeholder": "Vyberte metódu vysielania",CODE
LOWweb/public/locales/sk/components/icons.json5 "placeholder": "Hľadať ikonu…"CODE
LOWweb/public/locales/sk/components/dialog.json51 "placeholder": "Pomenujte Export"CODE
LOWweb/public/locales/sk/components/dialog.json75 "placeholder": "Vyberte prípad"CODE
LOWweb/public/locales/sk/components/dialog.json108 "placeholder": "Zadajte názov pre vyhľadávanie",CODE
LOWweb/public/locales/sk/components/dialog.json139 "placeholder": "Hľadať podľa štítku alebo podštítku..."CODE
LOWweb/public/locales/sk/views/explore.json68 "placeholder": "Popis sledovaného objektu",CODE
LOWweb/public/locales/sk/views/settings.json870 "placeholder": "Zadajte používateľské meno"CODE
LOWweb/public/locales/sk/views/settings.json874 "placeholder": "Zadajte heslo",CODE
LOWweb/public/locales/sk/views/settings.json877 "placeholder": "Potvrdiť heslo"CODE
LOWweb/public/locales/sk/views/settings.json891 "placeholder": "Zadajte nové heslo",CODE
LOWweb/public/locales/sk/views/settings.json893 "placeholder": "Znovu zadajte nové heslo"CODE
LOWweb/public/locales/sk/views/settings.json980 "placeholder": "Zadajte názov roly",CODE
LOWweb/public/locales/sk/views/settings.json1010 "placeholder": "e.g. príklad@email.com",CODE
LOWweb/public/locales/sk/views/settings.json1137 "placeholder": "Zadajte meno pre spúšťača",CODE
LOWweb/public/locales/sk/views/settings.json1150 "placeholder": "Vybrať typ spúšťača",CODE
LOWweb/public/locales/sk/views/search.json69 "placeholder": {CODE
LOWweb/public/locales/sk/views/faceLibrary.json5 "placeholder": "Zadajte názov pre túto kolekciu"CODE
LOWweb/public/locales/ur/components/icons.json5 "placeholder": "آئیکن تلاش کریں…"CODE
LOWweb/public/locales/ur/views/faceLibrary.json4 "placeholder": "اس مجموعہ کے لیے ایک نام درج کریں",CODE
LOWweb/public/locales/zh-Hant/components/filter.json122 "placeholder": "輸入以搜尋車牌…",CODE
LOWweb/public/locales/zh-Hant/components/camera.json21 "placeholder": "請輸入名稱…"CODE
LOWweb/public/locales/zh-Hant/components/camera.json43 "placeholder": "選擇串流",CODE
LOWweb/public/locales/zh-Hant/components/camera.json46 "placeholder": "選擇串流方式",CODE
LOWweb/public/locales/zh-Hant/components/icons.json5 "placeholder": "搜尋圖示…"CODE
LOWweb/public/locales/zh-Hant/components/dialog.json52 "placeholder": "替匯出資料命名"CODE
LOWweb/public/locales/zh-Hant/components/dialog.json85 "placeholder": "選擇案件"CODE
LOWweb/public/locales/zh-Hant/components/dialog.json146 "placeholder": "請輸入搜尋的名稱",CODE
LOWweb/public/locales/zh-Hant/components/dialog.json186 "placeholder": "以標籤或子標籤搜尋..."CODE
LOWweb/public/locales/zh-Hant/views/chat.json5 "placeholder": "嘗試問我任何事…",CODE
LOWweb/public/locales/zh-Hant/views/explore.json95 "placeholder": "追蹤物件的說明",CODE
LOWweb/public/locales/zh-Hant/views/settings.json470 "placeholder": "觸發器名稱",CODE
LOWweb/public/locales/zh-Hant/views/settings.json483 "placeholder": "選擇觸發型別",CODE
823 more matches not shown…
Excessive Try-Catch Wrapping325 hits · 333 pts
SeverityFileLineSnippetContext
LOWAGENTS.md370except Exception: # ❌ Too broadCODE
LOWgenerate_config_translations.py518 except Exception as e:CODE
LOWgenerate_config_translations.py578 except Exception as e:CODE
LOWgenerate_config_translations.py644 except Exception as e:CODE
LOWCLAUDE.md370except Exception: # ❌ Too broadCODE
LOWfrigate/watchdog.py111 except Exception:CODE
LOWfrigate/debug_replay.py143 except Exception as e:CODE
LOWfrigate/debug_replay.py318 except Exception as e:CODE
LOWfrigate/debug_replay.py359 except Exception as e:CODE
LOWfrigate/debug_replay.py397 except Exception:CODE
LOWfrigate/app.py213 except Exception:CODE
LOWfrigate/__main__.py89 except Exception as traverse_error:CODE
LOWfrigate/video/ffmpeg.py79 except Exception:CODE
LOWfrigate/embeddings/maintainer.py452 except Exception as e:CODE
LOWfrigate/embeddings/embeddings.py240 except Exception as e:CODE
LOWfrigate/embeddings/embeddings.py607 except Exception as e:CODE
LOWfrigate/embeddings/embeddings.py619 except Exception as e:CODE
LOWfrigate/embeddings/embeddings.py654 except Exception as e:CODE
LOWfrigate/embeddings/onnx/jina_v1_embedding.py108 except Exception:CODE
LOWfrigate/embeddings/onnx/jina_v2_embedding.py114 except Exception:CODE
LOWfrigate/embeddings/onnx/base_embedding.py43 except Exception:CODE
LOWfrigate/record/export.py249 except Exception:CODE
LOWfrigate/record/export.py323 except Exception:CODE
LOWfrigate/record/export.py336 except Exception:CODE
LOWfrigate/record/export.py433 except Exception:CODE
LOWfrigate/record/maintainer.py699 except Exception as e:CODE
LOWfrigate/record/maintainer.py787 except Exception as e:CODE
LOWfrigate/test/test_maintainer.py60 except Exception:CODE
MEDIUMfrigate/util/services.py663def try_get_info(f, h, default="N/A", sensor=None):CODE
LOWfrigate/util/services.py78 except Exception as e:CODE
LOWfrigate/util/services.py99 except Exception as e:CODE
LOWfrigate/util/services.py164 except Exception:CODE
LOWfrigate/util/services.py657 except Exception:CODE
LOWfrigate/util/services.py737 except Exception:CODE
LOWfrigate/util/services.py759 except Exception:CODE
LOWfrigate/util/services.py801 except Exception as e:CODE
LOWfrigate/util/services.py806 except Exception as e:CODE
LOWfrigate/util/services.py1060 except Exception:CODE
LOWfrigate/util/media.py253 except Exception as e:CODE
LOWfrigate/util/media.py341 except Exception as e:CODE
LOWfrigate/util/media.py437 except Exception as e:CODE
LOWfrigate/util/media.py517 except Exception as e:CODE
LOWfrigate/util/media.py595 except Exception as e:CODE
LOWfrigate/util/media.py687 except Exception as e:CODE
LOWfrigate/util/config.py870 except Exception:CODE
LOWfrigate/util/downloader.py94 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py40 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py47 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py54 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py61 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py70 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py77 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py84 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py99 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py126 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py133 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py139 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py145 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py154 except Exception as e:CODE
LOWfrigate/util/camera_cleanup.py164 except Exception as e:CODE
265 more matches not shown…
Deep Nesting235 hits · 218 pts
SeverityFileLineSnippetContext
LOWgenerate_api_auth_spec.py180CODE
LOWgenerate_api_auth_spec.py463CODE
LOWgenerate_config_translations.py35CODE
LOWgenerate_config_translations.py285CODE
LOWtesting-scripts/object_dataset.py532CODE
LOWtesting-scripts/face_dataset.py180CODE
LOWtesting-scripts/process_clip.py141CODE
LOWdocs/scripts/lib/ui_generator.py71CODE
LOWdocs/scripts/lib/ui_generator.py100CODE
LOWdocs/scripts/lib/yaml_extractor.py28CODE
LOWdocs/scripts/lib/yaml_extractor.py134CODE
LOWfrigate/timeline.py81CODE
LOWfrigate/plus.py35CODE
LOWfrigate/plus.py140CODE
LOWfrigate/plus.py184CODE
LOWfrigate/watchdog.py114CODE
LOWfrigate/debug_replay.py322CODE
LOWfrigate/log.py205CODE
LOWfrigate/log.py214CODE
LOWfrigate/storage.py33CODE
LOWfrigate/__main__.py17CODE
LOWfrigate/video/ffmpeg.py38CODE
LOWfrigate/video/ffmpeg.py258CODE
LOWfrigate/video/detect.py176CODE
LOWfrigate/embeddings/genai_embedding.py29CODE
LOWfrigate/embeddings/maintainer.py414CODE
LOWfrigate/embeddings/maintainer.py532CODE
LOWfrigate/embeddings/maintainer.py756CODE
LOWfrigate/embeddings/maintainer.py417CODE
LOWfrigate/embeddings/embeddings.py450CODE
LOWfrigate/embeddings/embeddings.py624CODE
LOWfrigate/embeddings/onnx/jina_v1_embedding.py83CODE
LOWfrigate/embeddings/onnx/jina_v2_embedding.py88CODE
LOWfrigate/track/object_processing.py116CODE
LOWfrigate/track/object_processing.py365CODE
LOWfrigate/track/object_processing.py682CODE
LOWfrigate/track/object_processing.py186CODE
LOWfrigate/track/centroid_tracker.py140CODE
LOWfrigate/track/norfair_tracker.py336CODE
LOWfrigate/track/norfair_tracker.py509CODE
LOWfrigate/track/tracked_object.py125CODE
LOWfrigate/track/tracked_object.py593CODE
LOWfrigate/record/maintainer.py106CODE
LOWfrigate/record/maintainer.py614CODE
LOWfrigate/record/maintainer.py708CODE
LOWfrigate/test/test_maintainer.py31CODE
LOWfrigate/test/test_object_detector.py15CODE
LOWfrigate/util/services.py52CODE
LOWfrigate/util/services.py84CODE
LOWfrigate/util/services.py170CODE
LOWfrigate/util/services.py188CODE
LOWfrigate/util/services.py241CODE
LOWfrigate/util/services.py307CODE
LOWfrigate/util/services.py411CODE
LOWfrigate/util/services.py626CODE
LOWfrigate/util/services.py743CODE
LOWfrigate/util/services.py765CODE
LOWfrigate/util/services.py812CODE
LOWfrigate/util/services.py1066CODE
LOWfrigate/util/services.py1217CODE
175 more matches not shown…
Modern Structural Boilerplate203 hits · 202 pts
SeverityFileLineSnippetContext
LOWgenerate_config_translations.py19logger = logging.getLogger(__name__)CODE
LOWtesting-scripts/process_clip.py33logger = logging.getLogger(__name__)CODE
LOWfrigate/timeline.py15logger = logging.getLogger(__name__)CODE
LOWfrigate/plus.py16logger = logging.getLogger(__name__)CODE
LOWfrigate/watchdog.py14logger = logging.getLogger(__name__)CODE
LOWfrigate/debug_replay.py42logger = logging.getLogger(__name__)CODE
LOWfrigate/storage.py16logger = logging.getLogger(__name__)CODE
LOWfrigate/app.py90logger = logging.getLogger(__name__)CODE
LOWfrigate/ffmpeg_presets.py20logger = logging.getLogger(__name__)CODE
LOWfrigate/video/ffmpeg.py35logger = logging.getLogger(__name__)CODE
LOWfrigate/video/detect.py53logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/__init__.py29logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/__init__.py287 def update_description(self, event_id: str, description: str) -> None:STRING
LOWfrigate/embeddings/genai_embedding.py13logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/maintainer.py77logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/embeddings.py35logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/embeddings.py157 def update_stats(self) -> None:CODE
LOWfrigate/embeddings/onnx/jina_v1_embedding.py32logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/onnx/jina_v2_embedding.py25logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/onnx/lpr_embedding.py23logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/onnx/face_embedding.py22logger = logging.getLogger(__name__)CODE
LOWfrigate/embeddings/onnx/base_embedding.py17logger = logging.getLogger(__name__)CODE
LOWfrigate/track/object_processing.py47logger = logging.getLogger(__name__)CODE
LOWfrigate/track/stationary_classifier.py11logger = logging.getLogger(__name__)CODE
LOWfrigate/track/centroid_tracker.py133 def update_frame_times(self, frame_name: str, frame_time: float) -> None:CODE
LOWfrigate/track/norfair_tracker.py33logger = logging.getLogger(__name__)CODE
LOWfrigate/track/norfair_tracker.py493 def update_frame_times(self, frame_name: str, frame_time: float) -> None:CODE
LOWfrigate/track/tracked_object.py30logger = logging.getLogger(__name__)CODE
LOWfrigate/record/export.py36logger = logging.getLogger(__name__)CODE
LOWfrigate/record/cleanup.py20logger = logging.getLogger(__name__)CODE
LOWfrigate/record/maintainer.py43logger = logging.getLogger(__name__)CODE
LOWfrigate/record/record.py14logger = logging.getLogger(__name__)CODE
LOWfrigate/util/time.py10logger = logging.getLogger(__name__)CODE
LOWfrigate/util/services.py31logger = logging.getLogger(__name__)CODE
LOWfrigate/util/services.py1285def set_file_limit() -> None:CODE
LOWfrigate/util/media.py30logger = logging.getLogger(__name__)CODE
LOWfrigate/util/config.py21logger = logging.getLogger(__name__)CODE
LOWfrigate/util/downloader.py14logger = logging.getLogger(__name__)CODE
LOWfrigate/util/camera_cleanup.py20logger = logging.getLogger(__name__)CODE
LOWfrigate/util/object.py33logger = logging.getLogger(__name__)CODE
LOWfrigate/util/classification.py40logger = logging.getLogger(__name__)CODE
LOWfrigate/util/ffmpeg.py53logger = logging.getLogger(__name__)CODE
LOWfrigate/util/model.py13logger = logging.getLogger(__name__)CODE
LOWfrigate/util/file.py19logger = logging.getLogger(__name__)CODE
LOWfrigate/util/process.py80 def _setup_memray(self) -> None:CODE
LOWfrigate/util/audio.py12logger = logging.getLogger(__name__)CODE
LOWfrigate/util/builtin.py28logger = logging.getLogger(__name__)CODE
LOWfrigate/util/rknn_converter.py13logger = logging.getLogger(__name__)CODE
LOWfrigate/util/image.py17logger = logging.getLogger(__name__)CODE
LOWfrigate/config/auth.py5__all__ = ["AuthConfig"]CODE
LOWfrigate/config/profile_manager.py21logger = logging.getLogger(__name__)CODE
LOWfrigate/config/profile_manager.py138 def update_config(self, new_config) -> None:CODE
LOWfrigate/config/config.py76__all__ = ["FrigateConfig"]CODE
LOWfrigate/config/config.py78logger = logging.getLogger(__name__)CODE
LOWfrigate/config/classification.py7__all__ = [CODE
LOWfrigate/config/ui.py7__all__ = ["TimeFormatEnum", "UnitSystemEnum", "UIConfig"]CODE
LOWfrigate/config/proxy.py6__all__ = ["ProxyConfig", "HeaderMappingConfig"]CODE
LOWfrigate/config/camera_group.py5__all__ = ["CameraGroupConfig"]CODE
LOWfrigate/config/database.py7__all__ = ["DatabaseConfig"]CODE
LOWfrigate/config/profile.py7__all__ = ["ProfileDefinitionConfig"]CODE
143 more matches not shown…
Decorative Section Separators41 hits · 138 pts
SeverityFileLineSnippetContext
MEDIUMtesting-scripts/object_dataset.py225# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py227# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py318# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py320# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py451# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py453# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py614# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py616# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py851# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/object_dataset.py853# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py51# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py203# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py205# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py251# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py253# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py368# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py370# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py696# ---------------------------------------------------------------------------COMMENT
MEDIUMtesting-scripts/face_dataset.py698# ---------------------------------------------------------------------------COMMENT
MEDIUMweb/src/components/filter/ExportActionGroup.tsx51 // ── Delete ──────────────────────────────────────────────────────COMMENT
MEDIUMweb/src/components/filter/ExportActionGroup.tsx90 // ── Remove from case ────────────────────────────────────────────COMMENT
MEDIUMweb/src/components/filter/ExportActionGroup.tsx143 // ── Case picker ─────────────────────────────────────────────────COMMENT
MEDIUMdocs/docs/guides/reverse_proxy.md120# ------------------------------------------------------------COMMENT
MEDIUMdocs/docs/guides/reverse_proxy.md122# ------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py124# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py126# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py196# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py198# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py368# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py370# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py300# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/test_genai_providers.py302# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/http_api/test_http_export.py1125 # ── Bulk delete exports ────────────────────────────────────────COMMENT
MEDIUMfrigate/test/http_api/test_http_export.py1258 # ── Bulk reassign exports ──────────────────────────────────────COMMENT
MEDIUMfrigate/test/http_api/test_http_camera_access.py261 # ------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/http_api/test_http_camera_access.py263 # ------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/http_api/test_http_camera_access.py275 # ------------------------------------------------------------------COMMENT
MEDIUMfrigate/test/http_api/test_http_camera_access.py277 # ------------------------------------------------------------------COMMENT
MEDIUMfrigate/api/chat.py1425# ---------------------------------------------------------------------------COMMENT
MEDIUMfrigate/api/chat.py1427# ---------------------------------------------------------------------------COMMENT
Structural Annotation Overuse67 hits · 125 pts
SeverityFileLineSnippetContext
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx103 // Step 1: Create config for the new modelCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx153 // Step 2: Classify each image by moving it to the correct category folderCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx212 // Step 3: Determine if we should trainCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx225 // Step 4: Kick off training only if we have enough classes with imagesCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx113 // Step 1: Can proceed if camera name is setCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx116 // Step 2: Can proceed if at least one stream exists (from probe or manual test)COMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx119 // Step 3: Can proceed if at least one stream has 'detect' roleCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx126 // Step 4: Always can proceed from final step (save will be handled there)COMMENT
LOWdocs/docs/configuration/face_recognition.md215### Step 1 - Building a Strong FoundationCOMMENT
LOWdocs/docs/configuration/face_recognition.md223### Step 2 - Expanding The DatasetCOMMENT
LOW…guration/custom_classification/state_classification.md88### Step 1: Name and DefineCOMMENT
LOW…guration/custom_classification/state_classification.md92### Step 2: Select the Crop AreaCOMMENT
LOW…guration/custom_classification/state_classification.md96### Step 3: Assign Training ExamplesCOMMENT
LOW…uration/custom_classification/object_classification.md122### Step 1: Name and DefineCOMMENT
LOW…uration/custom_classification/object_classification.md128### Step 2: Assign Training ExamplesCOMMENT
LOWdocs/docs/configuration/advanced/reference.md159# NOTE: The default values are for the EdgeTPU detector.COMMENT
LOWdocs/docs/configuration/advanced/reference.md581 # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback.STRING
LOWdocs/docs/configuration/advanced/reference.md824# NOTE: The default go2rtc API port (1984) must be used,STRING
LOWdocs/docs/troubleshooting/recordings.md127#### Step 1: Confirm it is a browser issueCOMMENT
LOWdocs/docs/troubleshooting/recordings.md131#### Step 2: Rule out H.265 / HEVCCOMMENT
LOWdocs/docs/troubleshooting/recordings.md167#### Step 3: Clean up damaged packets from the cameraCOMMENT
LOWdocs/docs/troubleshooting/recordings.md178#### Step 4: Fix incompatible or corrupt audioCOMMENT
LOWdocs/docs/troubleshooting/recordings.md182#### Step 5: Avoid "smart" / "+" codecs and check the keyframe intervalCOMMENT
LOWdocs/docs/troubleshooting/recordings.md187#### Step 6: Consider bitrate and the client hardwareCOMMENT
LOWdocs/docs/troubleshooting/recordings.md216#### Step 1: Enable recording debug loggingCOMMENT
LOWdocs/docs/troubleshooting/recordings.md234#### Step 2: Interpret the copy timesCOMMENT
LOWdocs/docs/troubleshooting/recordings.md241#### Step 3: Check RAM, swap, cache, and disk utilizationCOMMENT
LOWdocs/docs/troubleshooting/recordings.md277#### Step 4: Check your storage typeCOMMENT
LOWdocs/docs/troubleshooting/recordings.md281#### Step 5: Check your mount optionsCOMMENT
LOWdocs/docs/troubleshooting/recordings.md285#### Step 6: Rule out CPU loadCOMMENT
LOWdocs/docs/troubleshooting/recordings.md301#### Step 1: Get the full logsCOMMENT
LOWdocs/docs/troubleshooting/recordings.md305#### Step 2: Check the cache directoryCOMMENT
LOWdocs/docs/troubleshooting/recordings.md315#### Step 3: Verify segment durationCOMMENT
LOWdocs/docs/troubleshooting/recordings.md337#### Step 4: Check for a stuck detectorCOMMENT
LOWdocs/docs/troubleshooting/recordings.md346#### Step 5: Check for GPU hangsCOMMENT
LOWdocs/docs/troubleshooting/recordings.md356#### Step 6: Verify hardware acceleration configurationCOMMENT
LOWdocs/docs/troubleshooting/recordings.md364#### Step 7: Verify go2rtc stream configurationCOMMENT
LOWdocs/docs/troubleshooting/recordings.md368#### Step 8: Check system resourcesCOMMENT
LOWdocs/docs/guides/reverse_proxy.md54### Step 1: Configure the Apache2 Reverse ProxyCOMMENT
LOWdocs/docs/guides/reverse_proxy.md81### Step 2: Use SSL to encrypt access to your Frigate instanceCOMMENT
LOWdocs/docs/guides/reverse_proxy.md96### Step 3: Authenticate users at the proxyCOMMENT
LOWdocs/docs/guides/getting_started.md141### Step 1: Start FrigateCOMMENT
LOWdocs/docs/guides/getting_started.md145### Step 2: Add a cameraCOMMENT
LOWdocs/docs/guides/getting_started.md149### Step 3: Configure hardware acceleration (recommended)COMMENT
LOWdocs/docs/guides/getting_started.md193### Step 4: Configure detectorsCOMMENT
LOWdocs/docs/guides/getting_started.md306### Step 5: Setup motion masksCOMMENT
LOWdocs/docs/guides/getting_started.md344### Step 6: Enable recordingsCOMMENT
LOWdocs/docs/guides/getting_started.md393### Step 7: Complete configCOMMENT
LOWdocs/docs/plus/first_model.md10## Step 1: Upload and annotate your imagesCOMMENT
LOWdocs/docs/plus/first_model.md18## Step 2: Submit a model requestCOMMENT
LOWdocs/docs/plus/first_model.md23## Step 3: Set your modelCOMMENT
LOWdocs/docs/plus/first_model.md60## Step 4: Adjust your object filters for higher scoresCOMMENT
LOWfrigate/util/classification.py392 # Step 2: Create balanced timestamp selection (100 samples)COMMENT
LOWfrigate/util/classification.py395 # Step 3: Extract keyframes from recordings with crops appliedCOMMENT
LOWfrigate/util/classification.py400 # Step 4: Select 24 most visually distinct images (they're already cropped)COMMENT
LOWfrigate/util/classification.py403 # Step 5: Save to train directory for later classificationCOMMENT
LOWfrigate/util/classification.py744 # Step 2: Select balanced events (100 samples)COMMENT
LOWfrigate/util/classification.py748 # Step 3: Extract thumbnails from eventsCOMMENT
LOWfrigate/util/classification.py752 # Step 4: Select 24 most visually distinct thumbnailsCOMMENT
LOWfrigate/util/classification.py756 # Step 5: Save to train directory for later classificationCOMMENT
7 more matches not shown…
Hallucination Indicators10 hits · 95 pts
SeverityFileLineSnippetContext
CRITICALfrigate/track/centroid_tracker.py95 max_frames = self.detect_config.stationary.max_frames.objects.get(CODE
CRITICALfrigate/track/norfair_tracker.py243 self.detect_config.stationary.max_frames.objects.get(CODE
CRITICALfrigate/track/norfair_tracker.py320 self.detect_config.stationary.max_frames.objects.get(CODE
CRITICALfrigate/track/norfair_tracker.py442 max_frames = self.detect_config.stationary.max_frames.objects.get(CODE
CRITICALfrigate/api/auth.py450 config_roles = list(request.app.frigate_config.auth.roles.keys())CODE
CRITICALfrigate/api/auth.py868 config_roles_set = set(request.app.frigate_config.auth.roles.keys())CODE
CRITICALfrigate/api/auth.py913 config_roles = list(request.app.frigate_config.auth.roles.keys())CODE
CRITICALfrigate/api/auth.py1072 config_roles = list(request.app.frigate_config.auth.roles.keys())CODE
CRITICALfrigate/api/event.py1443 ) in request.app.frigate_config.classification.custom.items():STRING
CRITICALfrigate/api/classification.py719 ) in request.app.frigate_config.classification.custom.items():CODE
Redundant / Tautological Comments42 hits · 61 pts
SeverityFileLineSnippetContext
LOWfrigate/video/ffmpeg.py361 # Check if enough time has passed to allow ffmpeg restart (backoff pacing)COMMENT
LOWfrigate/video/ffmpeg.py407 # Check if we're within the grace period after enabling recordingCOMMENT
LOWfrigate/embeddings/maintainer.py137 # Check if we need to re-index eventsCOMMENT
LOWfrigate/embeddings/embeddings.py470 # Check if data has changed or thumbnail is missing for thumbnail typeCOMMENT
LOWfrigate/embeddings/embeddings.py483 # Check if thumbnail needs to be updated (data changed or missing)COMMENT
LOWfrigate/embeddings/embeddings.py515 # Check if embedding is missing or needs updateCOMMENT
LOWfrigate/util/services.py628 # Check if axcl-smi existsCOMMENT
LOWfrigate/util/media.py387 # Check if event exists with inline thumbnailCOMMENT
LOWfrigate/util/config.py739 # Check if it's a percentageCOMMENT
LOWfrigate/util/classification.py498 # Check if we already have a timestamp near this oneCOMMENT
LOWfrigate/util/file.py341 # Check if lock file is older than stale_timeoutCOMMENT
LOWfrigate/util/file.py439 # Close file descriptor and release fcntl lockCOMMENT
LOWfrigate/util/rknn_converter.py75 # Check if the SoC is actually a supported RK deviceCOMMENT
LOWfrigate/util/rknn_converter.py285 # Check if RKNN model appearedCOMMENT
LOWfrigate/util/rknn_converter.py290 # Check if lock file is gone (conversion completed or failed)COMMENT
LOWfrigate/util/rknn_converter.py302 # Check if lock is staleCOMMENT
LOWfrigate/util/rknn_converter.py312 # Check if RKNN file appeared while waitingCOMMENT
LOWfrigate/util/rknn_converter.py362 # Check if equivalent .rknn file existsCOMMENT
LOWfrigate/config/config.py1078 # Check if the config file needs to be migrated.COMMENT
LOWfrigate/comms/dispatcher.py1051 # Check if this is a global maskCOMMENT
LOWfrigate/comms/dispatcher.py1065 # Check if this is a per-object filter maskCOMMENT
LOWfrigate/data_processing/post/semantic_trigger.py167 # Check if similarity meets thresholdCOMMENT
LOWfrigate/data_processing/common/license_plate/mixin.py513 # Check if the boxes are vertically aligned (similar y-coordinates)COMMENT
LOWfrigate/review/maintainer.py679 # Check if the current segment should be processed based on enabled settingsCOMMENT
LOWfrigate/api/auth.py460 # Check if we have any rolesCOMMENT
LOWfrigate/api/auth.py739 # Check if password has been changed since token was issuedCOMMENT
LOWfrigate/api/event.py1875 # Check if trigger already existsSTRING
LOWfrigate/api/event.py2090 # Check if trigger exists for upsertSTRING
LOWfrigate/api/camera.py822 # Check if PTZ service is availableCOMMENT
LOWfrigate/api/camera.py1148 # Check if the camera has a close method and call itCOMMENT
LOWfrigate/api/motion_search.py262 # Check if already finishedCOMMENT
LOWfrigate/detectors/plugins/zmq_ipc.py117 # Check if model is available and transfer if neededCOMMENT
LOWfrigate/detectors/plugins/zmq_ipc.py186 # Check if this is a JSON response (model management)COMMENT
LOWfrigate/detectors/plugins/zmq_ipc.py240 # Check if this is a JSON response (model management)COMMENT
LOWfrigate/detectors/plugins/memryx.py72 # Check if model_type was explicitly set by the userCOMMENT
LOWfrigate/detectors/plugins/memryx.py378 # Check if shutdown is requestedCOMMENT
LOWfrigate/detectors/plugins/rknn.py110 # Check if this is an ONNX model or model without extension that needs conversionCOMMENT
LOWfrigate/jobs/media_sync.py121 # Check if a job is already runningCOMMENT
LOWfrigate/jobs/manager.py58 # Check if it's the current jobCOMMENT
LOWfrigate/jobs/manager.py62 # Check if it's a completed jobCOMMENT
LOWfrigate/genai/plugins/gemini.py331 # Check if response is validCOMMENT
LOWfrigate/stats/emitter.py91 # Check if values are dicts (dict-of-dicts like cameras/detectors)COMMENT
Unused Imports56 hits · 56 pts
SeverityFileLineSnippetContext
LOWtesting-scripts/object_dataset.py205CODE
LOWtesting-scripts/face_dataset.py34CODE
LOWdocs/scripts/lib/ui_generator.py7CODE
LOWdocs/scripts/lib/section_config_parser.py3CODE
LOWfrigate/video/__init__.py1CODE
LOWfrigate/video/__init__.py2CODE
LOWfrigate/embeddings/genai_embedding.py11CODE
LOWfrigate/util/builtin.py26CODE
LOWfrigate/util/rknn_converter.py97CODE
LOWfrigate/util/rknn_converter.py120CODE
LOWfrigate/config/config.py1CODE
LOWfrigate/config/__init__.py1CODE
LOWfrigate/config/__init__.py1CODE
LOWfrigate/config/__init__.py3CODE
LOWfrigate/config/__init__.py4CODE
LOWfrigate/config/__init__.py5CODE
LOWfrigate/config/__init__.py6CODE
LOWfrigate/config/__init__.py7CODE
LOWfrigate/config/__init__.py8CODE
LOWfrigate/config/__init__.py9CODE
LOWfrigate/config/__init__.py10CODE
LOWfrigate/config/__init__.py11CODE
LOWfrigate/config/__init__.py12CODE
LOWfrigate/config/__init__.py13CODE
LOWfrigate/config/__init__.py14CODE
LOWfrigate/config/__init__.py15CODE
LOWfrigate/config/camera/__init__.py1CODE
LOWfrigate/config/camera/__init__.py2CODE
LOWfrigate/config/camera/__init__.py3CODE
LOWfrigate/config/camera/__init__.py4CODE
LOWfrigate/config/camera/__init__.py5CODE
LOWfrigate/config/camera/__init__.py6CODE
LOWfrigate/config/camera/__init__.py7CODE
LOWfrigate/config/camera/__init__.py8CODE
LOWfrigate/config/camera/__init__.py9CODE
LOWfrigate/config/camera/__init__.py10CODE
LOWfrigate/config/camera/__init__.py11CODE
LOWfrigate/config/camera/__init__.py12CODE
LOWfrigate/config/camera/__init__.py13CODE
LOWfrigate/config/camera/__init__.py14CODE
LOWfrigate/config/camera/__init__.py15CODE
LOWfrigate/config/camera/__init__.py16CODE
LOWfrigate/config/camera/__init__.py17CODE
LOWfrigate/data_processing/types.py3CODE
LOWfrigate/data_processing/post/object_descriptions.py27CODE
LOWfrigate/service_manager/service.py1CODE
LOWfrigate/service_manager/__init__.py1CODE
LOWfrigate/service_manager/__init__.py2CODE
LOWfrigate/service_manager/__init__.py2CODE
LOWfrigate/api/media_auth.py12CODE
LOWfrigate/detectors/__init__.py3CODE
LOWfrigate/detectors/__init__.py3CODE
LOWfrigate/detectors/__init__.py3CODE
LOWfrigate/detectors/__init__.py4CODE
LOWfrigate/jobs/debug_replay.py32CODE
LOWfrigate/genai/__init__.py18CODE
Verbosity Indicators23 hits · 44 pts
SeverityFileLineSnippetContext
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx103 // Step 1: Create config for the new modelCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx153 // Step 2: Classify each image by moving it to the correct category folderCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx212 // Step 3: Determine if we should trainCOMMENT
LOW…mponents/classification/wizard/Step3ChooseExamples.tsx225 // Step 4: Kick off training only if we have enough classes with imagesCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx113 // Step 1: Can proceed if camera name is setCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx116 // Step 2: Can proceed if at least one stream exists (from probe or manual test)COMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx119 // Step 3: Can proceed if at least one stream has 'detect' roleCOMMENT
LOWweb/src/components/settings/CameraWizardDialog.tsx126 // Step 4: Always can proceed from final step (save will be handled there)COMMENT
LOWfrigate/util/classification.py392 # Step 2: Create balanced timestamp selection (100 samples)COMMENT
LOWfrigate/util/classification.py395 # Step 3: Extract keyframes from recordings with crops appliedCOMMENT
LOWfrigate/util/classification.py400 # Step 4: Select 24 most visually distinct images (they're already cropped)COMMENT
LOWfrigate/util/classification.py403 # Step 5: Save to train directory for later classificationCOMMENT
LOWfrigate/util/classification.py744 # Step 2: Select balanced events (100 samples)COMMENT
LOWfrigate/util/classification.py748 # Step 3: Extract thumbnails from eventsCOMMENT
LOWfrigate/util/classification.py752 # Step 4: Select 24 most visually distinct thumbnailsCOMMENT
LOWfrigate/util/classification.py756 # Step 5: Save to train directory for later classificationCOMMENT
LOWfrigate/util/classification.py375 # Step 1: Get review items for the camerasCOMMENT
LOWfrigate/util/classification.py733 # Step 1: Query events for the specified label and camerasCOMMENT
LOWfrigate/data_processing/common/license_plate/mixin.py269 # Step 1: Compute box heights and group boxes by vertical alignment and height similarityCOMMENT
LOWfrigate/data_processing/common/license_plate/mixin.py301 # Step 2: Process each initial group, filter by confidenceCOMMENT
LOWfrigate/data_processing/common/license_plate/mixin.py422 # Step 3: Sort the combined platesCOMMENT
LOWfrigate/detectors/plugins/memryx.py356 # Step 4: Slice the padded image into 4 quadrants and concatenate them into 12 channelsCOMMENT
LOWfrigate/detectors/plugins/memryx.py362 # Step 5: Concatenate along the channel dimension (axis 2)COMMENT
Dead Code23 hits · 43 pts
SeverityFileLineSnippetContext
MEDIUMfrigate/data_processing/post/license_plate.py74CODE
MEDIUMfrigate/data_processing/post/license_plate.py75CODE
MEDIUMfrigate/data_processing/post/license_plate.py77CODE
MEDIUMfrigate/data_processing/post/license_plate.py99CODE
MEDIUMfrigate/data_processing/post/license_plate.py113CODE
MEDIUMfrigate/data_processing/post/license_plate.py140CODE
MEDIUMfrigate/data_processing/post/license_plate.py147CODE
MEDIUMfrigate/data_processing/post/license_plate.py149CODE
MEDIUMfrigate/data_processing/post/license_plate.py150CODE
MEDIUMfrigate/data_processing/post/license_plate.py153CODE
MEDIUMfrigate/data_processing/post/license_plate.py154CODE
MEDIUMfrigate/data_processing/post/license_plate.py157CODE
MEDIUMfrigate/data_processing/post/license_plate.py194CODE
MEDIUMfrigate/data_processing/post/license_plate.py195CODE
MEDIUMfrigate/data_processing/post/license_plate.py198CODE
MEDIUMfrigate/data_processing/post/license_plate.py199CODE
MEDIUMfrigate/data_processing/post/license_plate.py200CODE
MEDIUMfrigate/data_processing/post/license_plate.py201CODE
MEDIUMfrigate/data_processing/post/license_plate.py202CODE
MEDIUMfrigate/data_processing/post/license_plate.py206CODE
MEDIUMfrigate/data_processing/post/license_plate.py207CODE
MEDIUMfrigate/data_processing/post/license_plate.py223CODE
MEDIUMfrigate/data_processing/post/license_plate.py224CODE
Over-Commented Block52 hits · 42 pts
SeverityFileLineSnippetContext
LOWtesting-scripts/benchmark.py21# object_detector = LocalObjectDetector()COMMENT
LOWtesting-scripts/benchmark.py61 object_detector.cleanup()COMMENT
LOWtesting-scripts/benchmark_motion.py21# Nick back:COMMENT
LOWweb/e2e/specs/face-library.spec.ts361COMMENT
LOWweb/e2e/specs/face-library.spec.ts381 // DropdownMenu (desktop path only). With modal=false the DropdownMenuCOMMENT
LOWweb/src/utils/configUtil.ts181 return { isProfile: false, actualSection: sectionPath };COMMENT
LOW…b/src/components/config-form/sectionExtras/registry.ts21 Record<string, RendererComponent>COMMENT
LOW…/src/components/config-form/section-configs/objects.ts1import type { HiddenFieldContext } from "@/types/configForm";COMMENT
LOWdocs/docs/configuration/autotracking.md81 # NOTE: HTTP is assumed by default; HTTPS is supported if you specify the scheme, ex: "https://0.0.0.0".COMMENT
LOWdocs/docs/configuration/autotracking.md101 # Optional: calibrate the camera on startup (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md21 host: mqtt.server.comCOMMENT
LOWdocs/docs/configuration/advanced/reference.md41 # certificates (default: None)COMMENT
LOWdocs/docs/configuration/advanced/reference.md61 # Required: type of the detectorCOMMENT
LOWdocs/docs/configuration/advanced/reference.md81 ipv6:COMMENT
LOWdocs/docs/configuration/advanced/reference.md121 # Optional: Enable authenticationCOMMENT
LOWdocs/docs/configuration/advanced/reference.md141 # Optional: Trusted proxies for determining IP address to rate limitCOMMENT
LOWdocs/docs/configuration/advanced/reference.md161model:COMMENT
LOWdocs/docs/configuration/advanced/reference.md241 # Optional: Restream birdseye via RTSP (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md261 scaling_factor: 2.0COMMENT
LOWdocs/docs/configuration/advanced/reference.md281 # Optional: global output argsCOMMENT
LOWdocs/docs/configuration/advanced/reference.md301 enabled: FalseCOMMENT
LOWdocs/docs/configuration/advanced/reference.md321 interval: 50COMMENT
LOWdocs/docs/configuration/advanced/reference.md341 # with the recording. The value can be positive or negative.COMMENT
LOWdocs/docs/configuration/advanced/reference.md381 # Optional: maximum width/height of the bounding box for the detected object (default: 24000000)COMMENT
LOWdocs/docs/configuration/advanced/reference.md461 # Optional: GenAI Review Summary ConfigurationCOMMENT
LOWdocs/docs/configuration/advanced/reference.md481 # Optional: Preferred response language (default: English)COMMENT
LOWdocs/docs/configuration/advanced/reference.md501 # Decreasing this value will make motion detection more likely to ignore large amounts of motion such as a person apprCOMMENT
LOWdocs/docs/configuration/advanced/reference.md521 # https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/COMMENT
LOWdocs/docs/configuration/advanced/reference.md541 improve_contrast: TrueCOMMENT
LOWdocs/docs/configuration/advanced/reference.md561 # the UI or MQTT later will have no effect.COMMENT
LOWdocs/docs/configuration/advanced/reference.md581 # NOTE: The default args are set to fit 24 hours of recording into 1 hour playback.COMMENT
LOWdocs/docs/configuration/advanced/reference.md601 # Optional: Number of seconds after the alert to include (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md621 # Optional: Number of seconds after the detection to include (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md661 # Optional: quality of the encoded snapshot image, 0-100 (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md701 # Optional: Target a specific device to run the model (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md741# Optional: Configuration for AI / LLM providersCOMMENT
LOWdocs/docs/configuration/advanced/reference.md821COMMENT
LOWdocs/docs/configuration/advanced/reference.md841 # Optional: Set the encode quality of the jsmpeg stream (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md861 # Optional: Line thickness of font (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md881 ffmpeg:COMMENT
LOWdocs/docs/configuration/advanced/reference.md901 # global_args:COMMENT
LOWdocs/docs/configuration/advanced/reference.md921 # Optional: zones for this cameraCOMMENT
LOWdocs/docs/configuration/advanced/reference.md981 dashboard: TrueCOMMENT
LOWdocs/docs/configuration/advanced/reference.md1001 # Optional: Skip TLS verification and disable digest authentication for the ONVIF server (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md1021 # Optional: the mode to use for zooming in/out on objects during autotracking. (default: shown below)COMMENT
LOWdocs/docs/configuration/advanced/reference.md1061 # Reference data for matching, either an event ID for `thumbnail` or a text string for `description`. (default: COMMENT
LOWdocs/docs/configuration/advanced/reference.md1081 audio:COMMENT
LOWdocs/docs/frigate/installation.md701# Download Frigate imageCOMMENT
LOWfrigate/track/centroid_tracker.py201 # value in each row (i.e. the distance from each current object toCOMMENT
LOWfrigate/detectors/plugins/edgetpu_tfl.py221COMMENT
LOW.github/workflows/stale.yml21 exempt-draft-pr: falseCOMMENT
LOW.github/workflows/stale.yml41 # token: ${{ secrets.GITHUB_TOKEN }}COMMENT
Self-Referential Comments10 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMdocker/main/build_pysqlite3.sh45# Create the wheel and put it in the /wheels dir.COMMENT
MEDIUM…c/components/DockerComposeGenerator/config/config.yaml2# This file defines all devices, hardware options, and ports for Frigate Docker Compose generationCOMMENT
MEDIUMfrigate/app.py301 # Create a client for other processes to useCOMMENT
MEDIUMfrigate/test/http_api/test_http_export.py467 # Create a zero-byte file — partial ffmpeg outputCOMMENT
MEDIUMfrigate/config/config.py917 # Create a new ObjectMaskConfig with raw_coordinates setCOMMENT
MEDIUMfrigate/data_processing/real_time/whisper_online.py972 # Create the tokenizerCOMMENT
MEDIUMfrigate/data_processing/real_time/whisper_online.py978 # Create the OnlineASRProcessorCOMMENT
MEDIUMfrigate/service_manager/multiprocessing_waiter.py146 # Create the future while still holding the lock,COMMENT
MEDIUMfrigate/ptz/onvif.py59 # Create a dedicated event loop and run it in a separate threadCOMMENT
MEDIUMfrigate/stats/prometheus.py58 # Create a local copy of CPU usages to work withCOMMENT
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHfrigate/embeddings/__init__.py0select thumbnail_embedding from vec_thumbnails where id = ?STRING
HIGHfrigate/data_processing/post/semantic_trigger.py0select thumbnail_embedding from vec_thumbnails where id = ?STRING
HIGHfrigate/api/event.py0select thumbnail_embedding from vec_thumbnails where id = ?STRING
HIGHfrigate/data_processing/real_time/license_plate.py0handle processing images for face detection and recognition.STRING
HIGHfrigate/data_processing/real_time/face.py0handle processing images for face detection and recognition.STRING
HIGHfrigate/data_processing/common/license_plate/mixin.py0handle processing images for face detection and recognition.STRING
Overly Generic Function Names22 hits · 21 pts
SeverityFileLineSnippetContext
LOWfrigate/test/test_deferred_processor.py59 def handle_request(CODE
LOWfrigate/data_processing/real_time/bird.py186 def handle_request(CODE
LOWfrigate/data_processing/real_time/api.py45 def handle_request(CODE
LOWfrigate/data_processing/real_time/license_plate.py69 def handle_request(CODE
LOW…ate/data_processing/real_time/custom_classification.py355 def handle_request(CODE
LOW…ate/data_processing/real_time/custom_classification.py690 def handle_request(CODE
LOW…igate/data_processing/real_time/audio_transcription.py269 def handle_request(CODE
LOWfrigate/data_processing/real_time/face.py348 def handle_request(CODE
LOWfrigate/data_processing/post/semantic_trigger.py65 def process_data(CODE
LOWfrigate/data_processing/post/semantic_trigger.py269 def handle_request(CODE
LOWfrigate/data_processing/post/object_descriptions.py194 def process_data(self, frame_data: dict, data_type: PostProcessDataEnum) -> None:CODE
LOWfrigate/data_processing/post/object_descriptions.py218 def handle_request(self, topic: str, data: dict[str, Any]) -> str | None:CODE
LOWfrigate/data_processing/post/review_descriptions.py128 def process_data(CODE
LOWfrigate/data_processing/post/review_descriptions.py239 def handle_request(self, topic: str, request_data: dict[str, Any]) -> str | None:CODE
LOWfrigate/data_processing/post/api.py28 def process_data(CODE
LOWfrigate/data_processing/post/api.py42 def handle_request(CODE
LOWfrigate/data_processing/post/license_plate.py60 def process_data(CODE
LOWfrigate/data_processing/post/license_plate.py226 def handle_request(self, topic: str, request_data: dict) -> dict[str, Any] | None:CODE
LOWfrigate/data_processing/post/audio_transcription.py72 def process_data(CODE
LOWfrigate/data_processing/post/audio_transcription.py199 def handle_request(self, topic: str, request_data: dict[str, Any]) -> str | None:CODE
LOWfrigate/data_processing/common/license_plate/mixin.py1675 def handle_request(CODE
LOWfrigate/service_manager/service.py273 def run_task(CODE
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/docs/configuration/genai/config.md181 api_key: your-api-key # May not be required for local serversCODE
HIGHdocs/docs/configuration/genai/config.md232 api_key: your-api-keyCODE
HIGHfrigate/plus.py72 "Plus API key not set. See https://docs.frigate.video/integrations/plus#set-your-api-key"CODE
Modern AI Meta-Vocabulary5 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMdocs/docs/configuration/advanced/reference.md476 # Frame count is automatically calculated based on context window size, aspect ratio, and image source (capped at 20STRING
MEDIUMfrigate/api/chat.py1343 # Emit the full reasoning trace up front when theCOMMENT
MEDIUMfrigate/genai/plugins/gemini.py170 # Gemini Pro Vision has a 1M token context windowCOMMENT
MEDIUMfrigate/genai/plugins/gemini.py315 # reasoning trace as separate `thought` parts so we can surfaceCOMMENT
MEDIUMfrigate/genai/plugins/gemini.py570 # Ask thinking-capable models to include their reasoning traceCOMMENT
Cross-Language Confusion3 hits · 12 pts
SeverityFileLineSnippetContext
HIGHfrigate/api/event.py259 zone_clauses.append(Event.zones.length() == 0)CODE
HIGHfrigate/api/event.py1745 - If a duration is set to null, the event will need to be ended manually by calling /events/{event_id}/end.CODE
HIGHfrigate/api/event.py641 zone_clauses.append(Event.zones.length() == 0)STRING
AI Slop Vocabulary5 hits · 10 pts
SeverityFileLineSnippetContext
LOWtesting-scripts/analyze_recording_keyframes.py108 # target_ts is before the earliest segment we have — just return theCOMMENT
MEDIUMweb/src/components/timeline/DetailStream.tsx200 // robust to unordered reviewItems and avoids always picking the lastCOMMENT
MEDIUMdocs/package-lock.json20214 "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",CODE
LOWfrigate/util/services.py1271 # If we can't parse the line properly, just add it as isCOMMENT
LOWfrigate/object_detection/base.py340 # if the process has already exited on its own, just returnCOMMENT
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHdocs/docs/configuration/advanced/reference.md398 # Optional: Configuration for AI generated tracked object descriptionsCOMMENT
AI Structural Patterns5 hits · 5 pts
SeverityFileLineSnippetContext
LOWfrigate/test/test_dispatcher_runtime_state.py12CODE
LOWfrigate/util/image.py415CODE
LOWfrigate/data_processing/real_time/whisper_online.py92CODE
LOWfrigate/detectors/plugins/memryx.py656CODE
LOWfrigate/detectors/plugins/memryx.py673CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHfrigate/genai/__init__.py334 Send chat messages to LLM with optional tool definitions. This method handles conversation-style interSTRING
Slop Phrases4 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocs/data/object_detectors_models.yaml90 # just make sure to give it the write configuration based on the modelCOMMENT
LOW.github/DISCUSSION_TEMPLATE/report-a-bug.yml67 Provide the full name and don't forget to add the version!CODE
LOW.github/DISCUSSION_TEMPLATE/camera-support.yml32 Provide the full name and don't forget to add the version!CODE
LOW.github/DISCUSSION_TEMPLATE/general-support.yml32 Provide the full name and don't forget to add the version!CODE