本卡屬 FR-165(母卡見「母卡」欄),批 2,等 FR-165.3 套件卡驗收通過。主專案加一支分頁端點,走 poetry path dependency 吃套件改動;path 改動不 commit。
FR-165.3 在套件裡做好了「翻頁查更新紀錄」的方法,這張卡把它接成一支 API 給前端的更新紀錄對話框用。狀態端點的 recent 保留不動(Agent 同步與「連不到站」的判定還靠它)。
~/Projects/Billows/Audit-Manager/compliance-manager-be/app/source_scan_vulndb/service/vulndb_settings_app_service.py(180 行) 加 list_updates(page,size);守門照 status(read 不另擋)
~/Projects/Billows/Audit-Manager/compliance-manager-be/api/source_scan/routes/vulndb_route.py:33-41 VulndbStatusRoute 寫法(_SERVICE 注入、@doc、return_response)照抄
~/Projects/Billows/Audit-Manager/compliance-manager-be/api/source_scan/serializers/vulndb.py:6-21 VulndbUpdateRecordSchema 沿用;加 List request/response schema
~/Projects/Billows/Audit-Manager/compliance-manager-be/api/source_scan/__init__.py:55-62 add_resource 清單,加一行
~/Projects/Billows/Audit-Manager/compliance-manager-be/api/flow_control/serializers/job.py:6,30,190 RequestMetaSchema/EnvelopeSchema 分頁慣例範本
~/Projects/Billows/Audit-Manager/compliance-manager-be/pyproject.toml:74,128 jedi-source-scan pin 0.2.0 與註解掉的 path dependency(開發期取消註解)
pyproject.toml:128 取消註解改成 path dependency,poetry update jedi-source-scan(指定套件名,不裸跑),BE 重啟。做完不還原也不 commit pyproject.toml/poetry.lock——回寫寫明「path dependency 未還原,等套件發版」。list_updates(self, page, size) 加 @transaction;size 夾到 1~100;呼叫 vulndb_update_service().list_updates(page, size);回 (items, total)。讀取不加 _assert_may_write。VulndbUpdatesRoute.get 用 VulndbUpdateListRequestSchema(RequestMetaSchema) 解 query,回 return_response(data=items, meta={"page":…,"size":…,"total":…})(頂層 meta 鍵陷阱見 memory feedback_return_response_toplevel_meta_trap)。守門 decorator 與 VulndbStatusRoute 完全相同。api/source_scan/__init__.py 加 api.add_resource(VulndbUpdatesRoute, "/system/vulndb/updates")。VulndbUpdateListRequestSchema(RequestMetaSchema)、VulndbUpdateListResponseSchema(EnvelopeSchema) data 為 List(Nested(VulndbUpdateRecordSchema))。Swagger 註冊照同檔其他 route。curl -s -H 'Authorization: Bearer <t>' 'localhost:8000/api/1.0/system/vulndb/updates?page=1&size=5' 回 status:true、data 5 筆、meta.total 等於 SELECT count(*) FROM public.vulndb_updates。page=2 接得上不重複。size=1000 夾到 100 或 400。無 token 401;沒 system.vulndb.read 的帳號 403。GET /system/vulndb/status 的 recent 仍 20 筆、行為不變。Swagger 看得到新端點。pytest test/test_module_boundaries.py -q 與 pytest test/ -k vulndb -q 綠。@transaction、不 import ORM。error code 不需新增。不寫新 unit test(碎片卡政策)。pyproject.toml/poetry.lock 的 path 改動不 commit;只 add 自己改的四支檔。git status,有不是你的改動就不要碰它們,只 git add <自己改的檔>,禁 -am。不切 branch(BE/FE 目前都在 feature/FR-139,2026-10-26 實查);branch 不對就停下回報。