本卡屬 FR-166(母卡 CM-3109 延伸),批 2,compliance-manager-fe repo,依賴批 1 的 BE 端點與 Agent 欄位。
白話
Agent 管理頁讓管理員設定離線登入天數;每台 Agent 的詳細資料與注意事項顯示「最近一次本機管理員登入」。Agent 主控台所有寫死「30 天」的文字改成顯示這台實際生效的天數。
怎麼做
- 【extend】src/components/remote-agent/AgentOverviewCard.vue 的頂端儀表板加一格(或併入既有格)「離線登入天數」,用全站 MetricCard(不新刻卡片),#actions 放「調整」按鈕開小 Dialog(InputNumber 1~30),有 detection.remote-agent.update 才顯示按鈕;API 常數加進 src/config/api/api.js。
- 【extend】src/composables/useAgentAttention.js 加一項:last_local_admin_login.at 在 7 天內 → warn「近期有人用本機管理員登入」(帶時間、方式)。
- 【extend】src/components/remote-agent/AgentDetailDialog.vue 加一行最近本機管理員登入(時間+方式:一次性網址/本機密碼;null 顯示「沒有紀錄」)。
- 【extend】console:agent-console*.json 裡的「30 天」改成 {days} 參數,值取 /console/state 的 offline_login_days(舊 Agent 沒回就用 30)。涉及 banner_offline、banner_disabled、lead_disabled、refused_offline_disabled、refused_disabled_title、err_AGENT_CONSOLE_SCAN_OFFLINE_DISABLED、hero_disabled 等,grep "30 天"/"30 days" 全清。console/state.js FALLBACK 補 offline_login_days。
- i18n 兩語系同步。不准 border-left、不自訂字級。
驗證
- vitest 既有 remote-agent/console 測試綠;useAgentAttention 新規則補測試。build:CONSOLE 過。headless 截圖 Agent 管理頁與主控台離線狀態文字。
紀律
- 要寫任何新函式/元件/composable/service 方法之前,第一步不是寫,是查:按行為 grep 真實程式碼,再查 docs/claude/domain-capabilities.md 與 FE frontend-overview.md §4。三擇一、預設不新增:reuse → extend → 確認沒有才新增。回寫列出 reuse 了哪些、新增了哪些、為什麼不能 reuse。
- BE 動到 api/app/infra 時 .claude/rules/security/ 自動載入,照著做;FE 規則在 FE repo .claude/rules/security/frontend.md,跨 repo 改 FE 不會自動載入,動手前自己讀。回寫列出本卡對到哪幾條、怎麼滿足。
- 不做義大利麵式程式:「怎麼做」每項已標 reuse/extend/new。extend 就改既有那支,不另開一支;紅旗:複製一段改兩行、開 XxxV2、同一行為兩條路徑。
- 檔案內註解只寫「為什麼」與「陷阱」(一到兩行),做了什麼進 commit message。
- 顯式 git add <檔名>,禁 -am;不切 branch(feature/FR-139);做完立刻 commit +本卡 append 回寫(含 commit hash、手測清單)+狀態改「修正待驗證」;push 等決策者。
建議模型與思考強度(首腦判斷)
Stage 2/Model opus/Effort medium/Repo fe。依 BE/Agent 契約接畫面,需照設計系統與既有元件。
狀態先設「暫緩」:決策者 2026-10-28 指示首腦本 session 直接實作,不交工作坊派;做完首腦回寫並改「修正待驗證」。