逐串流序號間隙偵測

沒有東西追蹤每個串流的單調序號以偵測遺漏、亂序或重複的訊息。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_idseq 並回傳分類。它使用具名實例登錄, 並以 MCP 工具 ac_sequence_observe 以及 Script Builder 中 Flow 分類下的命令提供。