本卡屬 FR-166(母卡 CM-3109),批 15。repo:jedi-packages(只改 jedi-remote-agent 與 jedi-source-scan 兩個套件,同一個 repo)。由首腦驗收 CM-3163、CM-3164 時發現,決策者 2026-10-27 裁示開卡。
這張卡做什麼(白話)
兩個套件小錯,各補一處:①主站 Agent 管理頁的「主控台連入網段」對話框打開時讀不到目前值和安裝底線,因為 Agent 清單 API 沒把這兩欄送出來(資料庫有存,輸出時被欄位白名單丟掉);②第三方元件掃描結果頁一打開就 500,因為套件組裝 SourceScanAppService 時還在傳一個早已拿掉的參數。
改哪些檔
repo:~/Projects/Jedicogy/module/jedi-python-package(工作坊工作區 .worktrees/CM-3109 的 ws 分支)
改:jedi-remote-agent/jedi_remote_agent/api/serializers/remote_agent.py(RemoteAgentDetailResponse)
改:jedi-source-scan/jedi_source_scan/plugin/assembly.py(第 74 行附近 _app_service)
改:兩個套件各自的 tests/
怎麼做
- jedi-remote-agent:RemoteAgentDetailResponse 加 console_allow_cidr = fields.List(fields.String(), allow_none=True)、console_allow_cidr_installed = fields.List(fields.String(), allow_none=True)。DB/entity 已有(P0-5、P1-5),只差輸出。前端 ConsoleAllowCidrDialog.vue(CM-3164)已照這兩個欄位名接好,欄位名不要改。測試:清單 dump 帶兩欄;突變:拿掉任一欄宣告要紅。
- jedi-source-scan:assembly.py 刪掉 input_service=ScanInputService(limits) 那一行(SourceScanAppService.init 在 3eaad95b/FR-156 E2 已拿掉這個參數);若 ScanInputService/limits 因此變成沒人用,連同 import 一起收掉,但 limits 若還有別處用就留著。測試:用 build_services() 真的建出 source_scan_app_service()(不 mock),斷言不拋錯;突變:把那一行加回去要紅。
- BE venv 跑套件測試要先把 tests 指回本套件(jedi-ldap 會搶 tests 名稱,見 docs/claude/jedi-packages.md 陷阱段;一支套件一次 pytest)。
驗收
- 兩個套件 pytest tests 綠;新測試含突變。
- BE(ws-CM-3109,.venv 已 path 安裝這兩支)從卡工作區另起一個埠(不重啟 8000):GET /api/1.0/source-scan/scans/<任一 uid> 回 200 且帶 origin;GET Agent 清單帶 console_allow_cidr/console_allow_cidr_installed。
紀律
- 先 git status;先 git merge ws-CM-3109;顯式 git add 檔名,禁 -am;不切 branch;push 等令;不自派 subagent;不發版、不推 Nexus。
- 做完 commit+卡上回寫(commit hash、改了哪些檔、測試與突變結果),狀態改「修正待驗證」。
建議模型與思考強度(首腦判斷)
Stage 15/Model sonnet/Effort low/Repo jedi-packages。兩處各一兩行,判斷都已查明。
批次更正(首腦,2026-10-27)
- 本卡排在第 14 批(內文寫的 15 不對)。CM-3160 守衛清零移到第 15 批,等本卡合回後才收。
【小弟回寫】commit 7a709c8d(ws-CM-3109-CM-3167,未 push)