逐串流序號間隙偵測
沒有東西追蹤每個串流的單調序號以偵測遺漏、亂序或重複的訊息。dedup_window 說「之前看過這個 id」;
本功能補上互補的一面:分類每個序號,並追蹤每個串流的未決間隙與 high-water 標記。
純標準函式庫;不匯入 PySide6。狀態為記憶體內且完全可注入,因此偵測在 CI 中具決定性。
無頭 API
from je_auto_control import SequenceTracker
tracker = SequenceTracker()
tracker.observe("orders", 1) # {"status": "ok", ...}
tracker.observe("orders", 4) # {"status": "gap", "missing": [2, 3]}
tracker.observe("orders", 3) # {"status": "reorder", "missing": [2]}
tracker.gaps("orders") # [2]
tracker.high_water("orders") # 4
observe 回傳 {status, seq, missing},status 為 ok``(順序下一個或首次)、``duplicate``(已看過)、
``gap``(序號被跳過 —— 記為遺漏)或 ``reorder``(較早的遲到序號,可填補間隙)。``gaps 列出未決遺漏序號,
high_water 為最高已見序號。各串流以 stream_id 獨立追蹤。
執行器命令
AC_sequence_observe 在具名追蹤器中觀察某 stream_id 的 seq 並回傳分類。它使用具名實例登錄,
並以 MCP 工具 ac_sequence_observe 以及 Script Builder 中 Flow 分類下的命令提供。