From a640ced9a412100b50b5d9ea0566204b33519bf1 Mon Sep 17 00:00:00 2001
From: cai <cai@nbcai.cc>
Date: Wed, 12 Aug 2026 16:45:54 +0800
Subject: [PATCH] fix(helper): bind fixture ack to reliable probe

---
 src/asr_realtime.rs |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/asr_realtime.rs b/src/asr_realtime.rs
index 2c60ed0..ad99ff2 100644
--- a/src/asr_realtime.rs
+++ b/src/asr_realtime.rs
@@ -70,6 +70,18 @@
         }
     }
 
+    pub(crate) fn rejected_origin_status(
+        reason: &str,
+        attributes: &HashMap<String, String>,
+    ) -> &'static str {
+        let status = Self::origin_status(attributes);
+        if status == "sequence_absent" {
+            status
+        } else {
+            Self::rejection_status(reason)
+        }
+    }
+
     pub(crate) fn from_participant(
         attributes: &HashMap<String, String>,
     ) -> Result<Option<Self>, &'static str> {
@@ -597,6 +609,14 @@
             "origin_unprovable",
             AudioIngressMetadata::rejection_status("unknown")
         );
+        let missing_sequence = HashMap::from([(
+            "inputSourceCategory".to_string(),
+            "controlled_fixture".to_string(),
+        )]);
+        assert_eq!(
+            "sequence_absent",
+            AudioIngressMetadata::rejected_origin_status("incomplete_metadata", &missing_sequence)
+        );
         assert_eq!(8, AudioIngressMetadata::ORIGIN_STATUSES.len());
     }
 

--
Gitblit v1.9.3