本卡屬 FR-188(母卡),修 201 實測:掃完要等最多 5 分鐘才送出。嚴重度:中。
Agent 主控台手動掃描完成後,結果先排進「待回傳佇列」。這個佇列只在心跳成功之後才會被叫醒送出,心跳每 5 分鐘一次,所以掃完到送出最多要等 5 分鐘,期間畫面一直顯示「待回傳,下一次心跳會自動送出」。主系統派的工作與事件也都會有同樣延遲。
首腦核對:201 log 11-09 09:57:54 掃完,上一跳 09:57:52,等到 10:02:57 下一跳後才送 POST agents/source-scans。11:14:30 那筆同樣等到 11:18:28 跳完才送。
/Users/chouraymond/Projects/Billows/Audit-Manager/evidence-agent/guidant_agent/scan/app/local_runs.py:259 寫終態後 sync_ports.outbox().enqueue(...),之後沒有叫醒
/Users/chouraymond/Projects/Billows/Audit-Manager/evidence-agent/guidant_agent/sync/app/outbox.py Outbox 元件;模組函式 request_drain() 叫醒(COMPONENT.kick())
/Users/chouraymond/Projects/Billows/Audit-Manager/evidence-agent/guidant_agent/scan/app/sync_ports.py:23 scan 經 port 取 outbox(scan 不能直接 import sync)
sync_ports 是不是已有對應的 port;沒有就在 port 加一支 request_drain(或讓 enqueue 回傳後由 port 負責叫醒),實作委派 outbox.request_drain()。enqueue 帶 conn,是跟「寫終態」同一個交易。叫醒要在交易 commit 之後,否則佇列醒來時還讀不到這筆。找出交易結束的位置再叫醒,或確認 request_drain 是非同步排程(元件醒來時交易早已結束)並在回寫寫明理由。request_drain 被呼叫一次(突變:拿掉叫醒那行要紅)。若叫醒在交易 commit 之後,測試要能驗出順序。POST agents/source-scans 或 agents/local-runs,不等下一次 heartbeat。feature/FR-172,不切 branch;顯式 git add <檔名>、禁 -am;只 add 自己改的檔。commit 不等令,push 由決策者做。修正待驗證。卡住也 commit 已完成部分並回寫卡在哪,狀態維持 In progress。api//app//infra/ 時 .claude/rules/security/ 自動載入,照著做;從 BE 開的 session 跨 repo 改 FE,FE 規則 .claude/rules/security/frontend.md 不會自動載入,動手前自己讀。回寫列出對到哪幾條、怎麼滿足。