本卡屬 FR-092(母卡 CM-1703),第 5 棒盤點(CM-1708)產出的修正卡 D。純刪成員,不改行為。清單以 docs/features/FR-092-2609-dead-code-cleanup/scan-dead-members.md 為準,本卡只摘要。

問題是什麼(白話)

這些檔案本身活著、有人 import,但裡面的18 條 class/函式沒有任何呼叫者。第 5 棒 runner 用五路核對(BE 直接呼叫/BE 字串引用/jedi 套件端/前端 emit/同檔字串)確認零命中,且不是 Flask HTTP 動詞、marshmallow Meta、框架 decorator 這類框架回呼。留著會讓人以為有人用。

首腦核對:報告內三條重點(notify/system_asset_snapshot/resolve_license_tenant_id)已親自 grep 複驗,結論見各卡「怎麼修」。

在哪裡

api/project/serializers/project.py:18,38,91,123,129,157                 六個 Schema/Request/Response class
api/system_config/serializers/system_config.py:17,21,24                 SystemConfigGroupResponse/SystemConfigValueResponse/SmtpConfigRequest
api/project/serializers/job_execution_device.py:61                       JobExecutionDeviceViewQueryResponse(⚠️ CM-1706 第 3 棒可能整檔刪,先查該卡狀態;已刪就跳過)
api/cloud_integration/serializers/google_drive_integration.py:22         GoogleDriveCallbackQuerySchema
common/util/system_asset_snapshot.py:54                                  resolve_system_asset_fields(**只刪這一支 50 行,不刪整檔**——同檔 snapshot_device/resolve_device_inventory_fields 被 ssp_inventory_items_app_service 與兩支測試在用)
common/exception_error/common_exception.py:13,19,37,43                    ValueMismatchError/DataIsRevokeError/AuthError/MailError
infra/system_config/runtime_config.py:77                                 get_runtime_value
config/config_util.py:18                                                 get_current_config

怎麼修

要寫測試

不寫(純刪,test/ 對這批零引用)。跑:python -m pytest test/ -k 'system_config or project or cloud_integration or fr032' -q

手測

紀律