本卡屬 FR-169(母卡 CM-3223(https://app.notion.com/p/FR-169-Agent-8-5-408346da4cd081eeb138ef3e49d3240e)),卡 B3,批 6。只改 BE(主 repo,Repo 欄空著)。依賴:A1、D1。

🔴 本卡是首腦母卡層總驗(2026-10-29)抓到的缺口補卡,三支套件已發版(jedi-file-protect 0.1.0、jedi-iam 1.10.0、jedi-masking 0.1.1),BE 主資料夾已釘版;不必再走 path dependency。前八張卡的成果在各 repo 的工作區 .worktrees/CM-3223(branch ws-CM-3223),本卡會在同一個工作坊底下開,直接疊上去。

這張卡做什麼(白話)

首腦總驗時發現:Agent 主控台下載寫的本機稽核有帶「有沒有加密」(encrypted),但這筆事件隨心跳送回主系統時,主系統收事件的白名單沒有這一欄,所以主系統的稽核頁看不到 Agent 那邊是加密還是明文下載。這張卡把白名單補上這一欄,並確認 bool 值不會被既有的清洗函式丟掉。另外 D1 文件卡第 2 輪為了「只寫現況」把「總覽常駐警示、稽核頁標未加密」兩句拿掉了;F4 把那兩道警示做出來後,這張卡順手把 SPEC 與手冊補回去(本卡與 F4 同批,文件那段寫「F4 做出來的樣子」即可,不必等 F4 驗完)。

reuse/extend/new

extend:core/plugins/_agent_console_audit.py _FIELDS 加 encrypted;_clean 目前把 bool 一律丟成 None(git log -L 查原因),encrypted 要能進 message(轉 true/false 字串或 encrypted 專用處理),不要另寫第二支 sink。文件:F4 做完後 security-policy.md 與手冊兩處補回「總覽常駐警示、稽核頁標未加密」(D1 第 2 輪為照實寫先拿掉)

在哪裡

repo:~/Projects/Billows/Audit-Manager/compliance-manager-be
改既有:core/plugins/_agent_console_audit.py(_FIELDS、_clean 對 bool)
改既有:test/test_agent_console_audit_sink.py
改既有:docs/spec-site/current/system-admin/security-policy.md
改既有:docs/user-manual/encrypted-download-guide.md
改既有:docs/spec-site/current/user-manual/encrypted-download-guide.md

怎麼做

驗收(首腦照這個驗)

Agent 主控台下載一次後,主系統稽核事件頁 AGENT_FILE_DOWNLOADED 那筆 message 含 encrypted=true(開關關閉時 encrypted=false);既有 sink 測試全綠且新增一條「encrypted 進 message、沒帶時不出現」;兩份手冊 diff 一致

必讀

紀律