diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 274bcd8d..a4408b55 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -706,13 +706,16 @@ "draft": "Draft", "review": "In Review", "approved": "Approved", - "archived": "Archived" + "archived": "Archived", + "published": "Published" }, "type": { "incident_case": "Incident Case", "runbook": "Runbook", "best_practice": "Best Practice", - "postmortem": "Postmortem" + "postmortem": "Postmortem", + "auto_runbook": "Auto Runbook", + "anti_pattern": "Anti-Pattern" }, "source": { "ai_extracted": "AI Extracted", diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index eac763e5..d14604ec 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -707,13 +707,16 @@ "draft": "草稿", "review": "審核中", "approved": "已批准", - "archived": "已封存" + "archived": "已封存", + "published": "已發布" }, "type": { "incident_case": "案例分析", "runbook": "操作手冊", "best_practice": "最佳實踐", - "postmortem": "事後分析" + "postmortem": "事後分析", + "auto_runbook": "AI 自動 Runbook", + "anti_pattern": "失敗案例" }, "source": { "ai_extracted": "AI 萃取", diff --git a/apps/web/src/app/[locale]/knowledge-base/page.tsx b/apps/web/src/app/[locale]/knowledge-base/page.tsx index ab2b1c0c..45ce3223 100644 --- a/apps/web/src/app/[locale]/knowledge-base/page.tsx +++ b/apps/web/src/app/[locale]/knowledge-base/page.tsx @@ -30,7 +30,8 @@ interface KnowledgeEntry { id: string title: string content: string - entry_type: 'incident_case' | 'runbook' | 'best_practice' | 'postmortem' + // 2026-04-04 Claude Code: Phase 25 P1 新增 auto_runbook + anti_pattern + entry_type: 'incident_case' | 'runbook' | 'best_practice' | 'postmortem' | 'auto_runbook' | 'anti_pattern' category: string tags: string[] source: 'ai_extracted' | 'human' @@ -76,6 +77,9 @@ const TYPE_COLORS: Record = { runbook: 'bg-claw-blue/10 text-claw-blue border-claw-blue/20', best_practice: 'bg-status-healthy/10 text-status-healthy border-status-healthy/20', postmortem: 'bg-status-critical/10 text-status-critical border-status-critical/20', + // 2026-04-04 Claude Code: Phase 25 P1 — Auto-Harvesting 新增類型 + auto_runbook: 'bg-purple-100 text-purple-600 border-purple-200', + anti_pattern: 'bg-red-100 text-red-600 border-red-200', } const STATUS_COLORS: Record = { @@ -307,7 +311,7 @@ export default function KnowledgeBasePage({ className="text-xs font-body bg-nothing-gray-50 border border-nothing-gray-200 rounded-md px-2 py-1.5 text-secondary focus:outline-none" > - {['incident_case', 'runbook', 'best_practice', 'postmortem'].map(tp => ( + {['incident_case', 'runbook', 'best_practice', 'postmortem', 'auto_runbook', 'anti_pattern'].map(tp => ( ))}