本卡屬 FR-166(母卡 CM-母卡號(建完補)),卡 P1-4,階段 P1 登入、批 3。只改 evidence-agent。依賴:P1-3。
Agent 開三個登入相關的 API:登入、改自己的密碼、查這台的狀態(登入頁用)。
三端點薄層、守門與稽核全 reuse
extend:守門用既有 require_session(scope);稽核用既有 audit.record+REPORTED_ACTIONS 加五值。登記型檔集中:routes.py 這張卡一次掛 local_auth_routes/scan_routes/netdiag_routes/ops_routes(後三支先放空 blueprint 檔),之後 P2-2/P2-5/P2-8a 只填自己的檔、不碰 routes.py
repo:~/Projects/Billows/Audit-Manager/evidence-agent
改既有:core/console/routes.py 212(掛四支 blueprint)
改既有:core/console/audit.py 138(REPORTED_ACTIONS 加五值)
新開:core/console/local_auth_routes.py
新開:core/console/scan_routes.py(空殼)
新開:core/console/netdiag_routes.py(空殼)
新開:core/console/ops_routes.py(空殼)
細節在 design.md 對應段(~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/design.md §5,開 design.html 看導覽),本段只列本卡要做到的點:
local_auth_routes.py:GET /console/state(無 session)、POST /console/local-session(before_request body ≤1KB;四種失敗 401 同 body)、POST /console/api/me/password。routes.py 本卡是 owner:一次掛 local_auth_routes/scan_routes/netdiag_routes/ops_routes(後三支先建空 blueprint)。audit.py REPORTED_ACTIONS 加五個動作;密碼欄進遮罩清單。四種失敗同 401 同 body(test);body >1KB 413;GET /console/state 無 session 可打、回四態;改密碼要舊密碼;稽核 jsonl 有 local_login 無密碼欄
對照雛形:~/Projects/Billows/Audit-Manager/compliance-manager-be/docs/features/FR-166-2610-agent-standalone-console/prototype/index.html(上方「跟著走」)。
docs/claude/domain-capabilities.md 與 FE docs/claude/frontend-overview.md §4。三擇一、預設不新增:reuse → extend 加參數 → 兩邊都確認沒有才新增。既有的是 stub/壞掉 → 修它或回報,不另寫繞過。回寫列出本卡 reuse 了哪些、新增了哪些、為什麼不能 reuse。if source == ... 分支。紅旗:複製一段既有函式改兩行、開 XxxV2/XxxForAgent、同一行為兩條路徑各自演化——出現就停下先抽共用。回寫列出哪些 extend 了既有的、哪些 new 及為什麼不能 extend。