From 0bda267a20bd26983dc4a79e4637c06a1e12ed35 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Sat, 8 Nov 2025 13:40:23 -0700 Subject: [PATCH] Fix wrongly added detection objects to alert --- frigate/review/maintainer.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frigate/review/maintainer.py b/frigate/review/maintainer.py index 40d7b64cf..917c0c5ac 100644 --- a/frigate/review/maintainer.py +++ b/frigate/review/maintainer.py @@ -407,6 +407,19 @@ class ReviewSegmentMaintainer(threading.Thread): segment.last_detection_time = frame_time for object in activity.get_all_objects(): + # Alert-level objects should always be added (they extend/upgrade the segment) + # Detection-level objects should only be added if: + # - The segment is a detection segment (matching severity), OR + # - The segment is an alert AND the object started before the alert ended + # (objects starting after will be in the new detection segment) + is_alert_object = object in activity.categorized_objects["alerts"] + + if not is_alert_object and segment.severity == SeverityEnum.alert: + # This is a detection-level object + # Only add if it started during the alert's active period + if object["start_time"] > segment.last_alert_time: + continue + if not object["sub_label"]: segment.detections[object["id"]] = object["label"] elif object["sub_label"][0] in self.config.model.all_attributes: