| 項目 | 內容 |
|---|---|
| 交接日期 | 2026-07-27 |
| Branch(三 repo 同名) | feature/scan-plugin-integration(不可切 branch) |
| 現況一句話 | 56.1~56.4 全驗收放行;端到端實測進行中,發現測試連線架構缺陷 → 開了 FR-056.5 正式修;一批 dev 實測衍生的 fix 已 commit、FE 兩個 bug fix 未 commit |
| 下一棒主要任務 | 實作 FR-056.5(probe 任務化)→ 再繼續端到端手測 |
| push 狀態 | 三 repo 皆有未 push commits(push 永遠等 user 明示,尚未 push) |
FR-056 讓客戶「檢測工具掃描 → 報告自動變任務證據 → 通知 → 完成」全自動化。四子需求 56.1(工具設定)/ 56.2(任務類型)/ 56.3(Agent 執行)/ 56.4(執行編排+轉證據)全數驗收放行。設計決策 D1–D11 在 design.md §3。關鍵:D9 憑證雲端解密隨派工 mTLS 下發、D10 OpenVAS 走 python-gvm、D11 證據用 FILE 型別、completion_mode manual/auto 只是「要不要自動按完成」flag。
Notion case: 「FR-056.5 測試連線改走 Agent(probe 任務化)」= 3aa346da-4cd0-8191-9fba-c4fb2474820f(狀態 Not started,需求編號 FR-056.5)。完整設計已寫在卡內文,下一棒直接讀卡即可,這裡只摘重點:
問題: 現 test_connection 由 BE OpenVasProbe(infra/detection_tools/connector/openvas_probe.py)用 httpx.head(base_url) 直連,兩個致命錯:
http:// 前綴(實測錯誤:Request URL is missing an 'http://' or 'https://' protocol)。方案 A(user 拍板正規修法): 測試連線改走 Agent,與真實掃描同一條 python-gvm 鏈路。
DetectionConnector 基類(evidence-agent/core/task_executor_connectors/base.py)加 probe() 抽象方法(只 TLSConnection + authenticate,不建 target/不掃描);OpenVasConnector 實作 probe(複用 run() 前半段連線認證碼,抽共用 helper);executor(core/task_executor.py:52)分派 probe vs scan(建議 task payload 加 kind 欄位,預設 scan)。test_connection(app/detection_tools/service/detection_tool_service.py:108)改成建 kind=probe 的 agent_task 派給有 detection_scan capability 的 agent,短輪詢等回報。移除/廢棄 OpenVasProbe + DI wiring(detection_tool_service.__init__ 的 openvas_probe 參數,line 33/40)。kind 欄位(或 params 夾帶);狀態機沿用 pending→dispatched→running→succeeded/failed。BE(~/Projects/Billows/Audit-Manager/compliance-manager-be):
88b91f45 detection_executions 加 org_unit_id(驗收復核抓到 ORM mixin 與 DB 不一致)6c73e530 on_scan_failed docstring 補 caller-scope05bab666 心跳 handler 從 payload 刷新 agent_versionevidence-agent(~/Projects/Billows/Audit-Manager/evidence-agent):
e61679b .dockerignore 排除 deploy/ 下 runtime 目錄(pgdata/filedata/certs)——實機 build 撞 permission denied 修的5a9a317 compose service 改名 file-agent → guidant-ai-agenteb016a6 image 改名 evidence-agent → guidant-ai-agent05726c0 心跳夾帶 agent_version(升級後版號才會刷新;配 BE 05bab666)FE(~/Projects/Billows/Audit-Manager/compliance-manager-fe)兩個 dev 實測 bug fix:
src/components/detection-tools/DetectionConfigField.vue:① port 的 InputNumber 加 :useGrouping="false"(原本顯示「9,390」千分位)② showError 補 !hasExistingValue(secret 欄位已設定過、留空不再誤跳必填)src/views/plugin/ToolPluginManage.vue:卡片加「測試連線」按鈕(免開 dialog,onTestConnectionCard(tool) + testingCardUid loading)docs/features/FR-056-2607-detection-tool-integration/user-manual.html(繁中自包含)已隨實測更新:§2.3 憑證說明改寫(帳密使用者填、加密存 DB、派工解密下發;環境變數只有雲端 DETECTION_TOOL_ENCRYPTION_KEY)、§4 改 Docker 重建出貨流程(含 rebuild.sh、--profile full)、service/image 改名同步。注意:手冊 §2 測試連線描述待 FR-056.5 做完要再更新成「走 agent」。
f8136df9-c062-45dd-8f39-ba91fc5e6e3a、心跳正常)。remote_agents.capabilities 設為 ["file_storage","detection_scan"](DEV DB 手動 UPDATE)。~/openvas/docker-compose.yml)。gvmd 的 GMP 只開 unix socket(gvmd_socket_vol:/run/gvmd),不開 TCP——已改好 compose 加一個 gmp-tcp-bridge(socat OPENSSL-LISTEN 包 TLS)對外開 9390(改好的檔在 Mac ~/Downloads/docker-compose.yml,尚未確認 user 是否已套到 123 起來)。9392 是 GSA Web UI 不是 GMP;3000 是 openvasd HTTP API(非我們走的 GMP,design D10 走 python-gvm)。3a9346da-4cd0-81a5-be6f-f0ddd6d770c6;任務清單 data source:collection://23c346da-4cd0-8041-955e-000bb6976dd23aa346da-4cd0-8191-9fba-c4fb2474820f3aa346da-4cd0-81f9-a029-deda20be47cdpsql -h 192.168.50.188 -p 25432 -U cmmgr -d guidant_ai_dev(密碼查 BE .env DB_SECRET)python main_app.py(port 8000),改 service 要 kill -9 重啟;log 在 log/app.logafter_request api_log update failed: cannot adapt type 'dict'(api_logs 寫入 dict 塞 VARCHAR),洗 log、另案feedback_subagent_use_1m_context_model)