本卡屬 FR-181(母卡 FR-181 母案 CM-3595),卡 B-6a,批 8。只改 jedi-python-package。依賴:無。
Agent 管理頁有個「對帳」按鈕:主系統逐檔請 Agent 重算磁碟上證據檔的 SHA-256,跟主系統存的錨點比對,抓有沒有被靜態竄改。這條路現在還是主系統直連 Agent 8443(GET /blob/<uid>/sha256),直推開關關著就每檔回 error——首腦驗收時抓到的漏網(§1.2 盤點時把它併進「證據檔」沒單獨列,B-1 只改了上傳/下載/轉 PDF/刪除四個操作)。修法跟 B-1 同形狀:改走等回答插槽。這張是三張裡的第一張:契約加一個新指令類型 verify_file(Agent 收到就算 sha256 回答),發 0.5.2。後面 B-6b(Agent 端算)、B-6c(套件對帳改問 port)、B-6d(主系統把 ask 注入)接著做。
extend:jedi-agent-protocol/commands.py 加 KIND_VERIFY_FILE = "verify_file" 進 ALL_KINDS 與 REPLY_KINDS(要回答:result {sha256};找不到回 failed reason=missing);__init__.py 匯出;bump 0.5.2 發版。【補卡來源】首腦驗收抓到:Agent 管理頁「對帳」仍走直推 GET /blob/<uid>/sha256(§1.2 盤點時併進 blob 沒單獨列,B-1 只改四操作),開關關著對帳每檔回 error
repo:~/Projects/Jedicogy/module/jedi-python-package
改既有:jedi-agent-protocol/jedi_agent_protocol/commands.py
改既有:jedi-agent-protocol/jedi_agent_protocol/__init__.py
改既有:jedi-agent-protocol/pyproject.toml(0.5.2)
改既有:jedi-agent-protocol/tests/test_longpoll_contract.py
commands.py:KIND_VERIFY_FILE = "verify_file",加進 ALL_KINDS 與 REPLY_KINDS;docstring 一行「Agent 回 {sha256};檔案不存在回 failed reason=missing」。__init__.py 匯出。tests/test_longpoll_contract.py:kind 數 13→14、KIND_VERIFY_FILE in REPLY_KINDS。test_mirror);poetry publish --build -r nexus;回寫版號。pytest:十四個 kind 不重複、KIND_VERIFY_FILE in REPLY_KINDS;poetry publish -r nexus 0.5.2;回寫「B-6b/B-6c/B-6d 要升 0.5.2」
~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-181-2611-agent-outbound-only-channel/design.md §3 決策定案(D1~D8)、§4 端到端流程兩張圖、§5 詳細設計本卡那節、§7 拆分表本卡那列;為什麼這樣定看 discussion.mdcore/plugins/_agent_commands.py(檔頭說明三個觸發點)、app/remote_agent/service/agent_command_service.py、core/plugins/_agent_config_notify.py、core/plugins/_agent_keys.py、infra/upload_file/remote_agent_adapter.py、core/plugins/remote_agent.py(plugin mount 與 handle)jedi-remote-agent/jedi_remote_agent/api/routing.py(端點表與 AUTH_AGENT)、api/routes/(心跳 route 範本)、app/service/agent_data_plane_client.py(直推出口,留著)、app/service/heartbeat_vulndb.py(_CORE_KEYS 心跳守衛);契約 jedi-agent-protocol/jedi_agent_protocol/commands.py、heartbeat.py、events.pyguidant_agent/sync/app/config_pull.py(WorkerComponent 拉取範本)、enroll.py(心跳 client 與通行證)、event_sender.py+outbox.py(送不到補送)、task_queue.py、sync/api/data_plane_server.py(8443 與 blueprint 掛點)、sync/api/cmd_*.py(直推 handler,本案改薄)、files/api/blob_route.py、scan/api/routes/、docs/ARCHITECTURE.md