本卡屬 FR-091(母卡 CM-1690)第二批。中量:有 DB 表(upload_files)、2 支 migration、6 條 route。主專案 venv 裡這支是 Nexus wheel 0.0.23,不是工作樹——所有主專案側驗證必帶 PYTHONPATH。主專案側接線已由 CM-1689 收進 core/plugins/file_upload.py,本卡不動主專案。

問題是什麼(白話)

jedi-file-upload(檔案上傳與儲存後端)plugin.py 352 行塞 6 個 dataclass,api/init.py 113 行含 ctx() 14 處,logger 三種名("app"、"infra"、name),前兩個會跟主專案 logger 撞名、log 落到別人的 handler。tests/integration/ 有 conftest 與 initdb 但 0 支測試。本卡整成 jedi-asset 那個樣子。

首腦核對(2026-09-12):plugin.py 352 行 6 dataclass;api/init.py 113 行;route 6;entity 檔 1(0 dataclass);表 upload_files;migration 2 支;tests 118 支(unittest/architecture/根層兩支 adapter convert_to_pdf 測試/test_plugin_contract.py);tests/integration/ 空骨架;harness 有 compose、無 --smoke;施工日誌 17 處;ctx() 14 處;logger "app"/"infra"/name;有吐 created_user_name(6 處)但已走 D8 identity 欄位+app/service/identity_enricher.py,不必再開新 port。主專案 pyproject.toml:100 pin jedi-file-upload==0.0.23,path override 在 196/259 行是註解掉的——venv 是 wheel

在哪裡

套件:/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-file-upload/
範例:jedi-asset/(plugin/ 五檔、api/guards.py+routing.py、tests/unittest/test_plugin_layout.py、tests/integration/test_service_behaviour.py、harness --smoke)
SOP:extraction-sop.md §4.3/§3.4/§6.1/§8;說明:plugin-anatomy.md
主專案 import 面:grep -rn "from jedi_file_upload\|import jedi_file_upload" compliance-manager-be --include='*.py' --exclude-dir=.venv(18 檔:core/plugins/file_upload.py、app/upload_file/、infra/upload_file/、di_containers/upload_file/ 等)
主專案側不動的例外:infra/upload_file/remote_agent_adapter.py 被 app/ 直接 import,守衛白名單登記,留原地

怎麼修(照 jedi-asset A~F,各一 commit)

要寫測試

手測(驗證等級:中)