本卡屬 FR-169(母卡 CM-3223(https://app.notion.com/p/FR-169-Agent-8-5-408346da4cd081eeb138ef3e49d3240e)),卡 P2,批 7。只改 jedi-python-package。依賴:無。
🔴 本卡是決策者 2026-10-29 實測「證據附件下載沒加密」後的全站出口盤點補卡。最大宗的上傳檔那條(jedi-file-upload)首腦已自己修好並發版 1.5.0、BE 釘版、FE 12 處改接,本卡只處理剩下三支套件的匯出端點。前面所有卡的成果都已合回四個 repo 的 feature/FR-139,工作區 .worktrees/CM-3223 與主資料夾一致,直接疊上去做。
決策者 2026-10-29 實測證據附件下載沒加密,首腦盤全站發現 FR-169 只接了主系統 16 支匯出端點,套件自帶的下載端點全漏了。最大宗的上傳檔(證據、程序書、附件)走 jedi-file-upload,首腦已自己修(1.5.0 加 download_responder 掛點、主系統注入 send_protected)。剩下三支套件各有一個「人按匯出、拿走機敏資料」的端點還是明文:jedi-api-log 操作日誌匯出、jedi-issue 意見回饋匯出、jedi-task-platform 任務批次匯出 Excel。本卡照 jedi-file-upload 1.5.0 的做法,給這三支套件同樣的掛點:套件不認得加密政策,只在檔案出門前問宿主一次。
extend:照 jedi-file-upload 1.5.0 FileUploadAdapters.download_responder 的形狀,三支套件各在 adapters 加一個選填 download_responder(file_obj, file_name, mimetype),route 的 send_file 改成「有注入交給它、沒注入照舊」;不在套件裡認得加密政策。不接:jedi-iam 使用者匯入範本與 TOTP QR 圖(非機敏)、jedi-asset 裝置匯入範本、jedi-evidence-classification 預覽(inline 不落磁碟)、jedi-detection 報告(主系統 Agent 報告端點已接)
repo:~/Projects/Jedicogy/module/jedi-python-package
改既有:jedi-api-log/.../api_log_route.py ExportApiLogsRoute
改既有:jedi-issue/.../feedback_route.py FeedbackExportRoute
改既有:jedi-task-platform/.../job_import_route.py JobExportRoute
改既有:三支套件 plugin/contract.py(adapters 欄位)、README adapters 表、pyproject version、tests
plugin/contract.py(download_responder 欄位與註解)、plugin/runtime.py::send_download、api/routes/upload_file_route.py 下載 route、tests/test_plugin_contract.py 末段那條測試——三支套件照同一形狀做,不要各自發明。api_log/api/routes/api_log_route.py::ExportApiLogsRoute、jedi-issue api/routes/feedback_route.py::FeedbackExportRoute、jedi-task-platform task/api/routes/job_import_route.py::JobExportRoute:send_file(...) 改成 runtime().send_download(file_obj, file_name, mimetype);runtime 加 send_download(有注入交 responder,否則 send_file);adapters 加選填 download_responder。UserUploadSampleDownloadRoute(匯入範本)與 TotpQrcodeRoute(QR 圖)、jedi-asset 裝置匯入範本、jedi-evidence-classification ClassificationRunFilePreviewByUidRoute(inline 預覽)、jedi-detection(報告經主系統 Agent 報告端點已接)、jedi-survey 問卷匯入範本。env -u VIRTUAL_ENV PYTHONPATH=<套件目錄> ~/Projects/Billows/Audit-Manager/compliance-manager-be/.venv/bin/python -m pytest),套件自己的 venv 裝的 jedi-common 太舊沒有 plugin 子包。三支套件 contract 測試各加一條「注入 responder 時交給它、未注入 send_file」;版號各進中版號(功能);回寫列出每支套件 adapters 欄位名與未接清單;不發版、不推 Nexus(發版由首腦統一做)
~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-169-2610-download-file-encryption/design.md §3 決策、§5 詳細設計、§6 拆分表本卡那列~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-169-2610-download-file-encryption/prototype/index.html(畫面①對話框、②開關、②b 關閉警示、③Agent、④稽核)