Commit Graph

100 Commits

Author SHA1 Message Date
OG T
4b51f9b60d feat(c2): ADR-073-C C2 — 前端飛輪 KPI 元件接真實 API
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- 新增 FlywheelKPICard 元件
- 消費 GET /api/v1/stats/summary,30 秒輪詢
- 顯示 Playbooks、修復成功率、今日轉化數、KM 向量化率
- 卡住 Incident 警示條
- 插入首頁右欄 PendingApprovalsCard 之後

2026-04-12 ogt (ADR-073-C C2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-12 15:39:10 +08:00
OG T
524423577a feat(web): 基礎架構主機卡點擊 → 詳情抽屜展開
Some checks failed
CD Pipeline / build-and-deploy (push) Failing after 3m57s
E2E Health Check / e2e-health (push) Successful in 35s
點擊主機卡展開行內抽屜:
- CPU/RAM 大字顯示(含顏色警示:>80% 紅/>60% 橙)
- 完整服務清單(狀態點 + port + latency_ms)
- 相關事件(按 affected_services 過濾)
- ✕ 關閉 / 再點同卡收合
- 選中狀態:藍色邊框高亮

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 23:49:00 +08:00
OG T
2897007014 fix(web): 修復 webpack build 錯誤 — 重複 flexShrink + firing_count undefined
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
header.tsx: 移除重複的 flexShrink: 0 屬性 (TS1117)
classic/page.tsx: firing_count ?? 0 處理 undefined (TS2322)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 23:45:52 +08:00
OG T
89db96fc21 feat(web): ⌘K Command Palette — 全局指令面板 + 高斯模糊
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- ⌘K (Mac) / Ctrl+K (其他) 開啟/關閉
- 高斯模糊背景 (backdrop-blur 8px + rgba overlay)
- 搜尋過濾:導航 9 頁 + 快速動作(開 Terminal)
- 鍵盤完整支援:↑↓ 選擇 / Enter 執行 / Esc 關閉
- 滑鼠 hover 同步 activeIdx
- 100% i18n (commandPalette namespace)
- Z-Index: DIALOG(70),掛載於 providers.tsx 全局層

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 23:28:36 +08:00
OG T
af7b6beba8 fix(web): Tab4 by_anomaly 欄位修正 — 適配真實 API 結構
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m8s
by_anomaly 回傳結構為 {alert_name, anomaly_key, disposition:{total,auto_repair,auto_rate,...}}
修正:
- 排序依 disposition.total(非 count)
- 名稱顯示用 alert_name || anomaly_key
- auto_rate 取自 disposition.auto_rate * 100
- 計數取自 disposition.total

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 20:57:58 +08:00
OG T
ab5ba7062c feat(web): Tab3 Chain-of-Thought 面板 + Tab4 by_anomaly Top5 + MTTR
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 13m1s
Tab 3 ActivityStreamTab:
- 點擊 SSE 事件展開 COT 側面板(含 provider/confidence/latency/tools/reasoning)
- 有 proposal_data 的事件顯示 COT badge
- 點擊同一事件收合面板

Tab 4 DispositionTab:
- by_anomaly Top5 水平進度條(按 auto-repair 率著色:≥80% 綠/≥50% 橙/其他紅)
- MTTR 大字顯示(分鐘)+ 無資料時 fallback

i18n: cotTitle/cotReasoning/cotConfidence/cotProvider/cotLatency/cotTools/
      cotClickHint/byAnomalyTitle/byAnomalyAutoRate/mttrTitle/mttrUnit/mttrNoData

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 20:42:02 +08:00
OG T
890e2a9568 fix(review): 架構審查修復 — P0 import crash + i18n 零 hardcode + 靜默錯誤
P0:
- proposal_service.py: 補 get_redis + INCIDENT_KEY_PREFIX import
  (修前: resolve_incident_after_approval 必 NameError crash)

P1 i18n:
- page.tsx: 拓撲群組移除 emoji,改用 tTopo() i18n key
- page.tsx: 主機標籤 (DevOps金庫等) 改 tTopo() i18n
- ai-model-status.tsx: 加 useTranslations,AI 模型狀態 → t('aiModelStatus')
- disposition-mini.tsx: 查看完整報表 → t('viewAllReport')
- recent-activity.tsx: 查看活動串流 → t('viewAllAlerts')

P2 品質:
- pending-approvals-card.tsx: approve/reject 加 r.ok 檢查+錯誤顯示,查看全部授權加路由+i18n
- page-tabs.tsx: TabSkeleton 載入中... → t('loading')
- page.tsx: ↑5% → tDashboard('trendUp', {pct}) 動態值
- page.tsx: Prometheus '23' hardcode → '-- targets'

i18n 新增 key (zh-TW + en 同步):
- dashboard: viewAllAlerts/viewAllAuth/viewAllReport/aiModelStatus/loading/trendUp
- topology: groupExternal/allReachable/investigating/hostDevops/hostAiData/hostK3sMaster/hostK3sWorker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 18:34:50 +08:00
OG T
49a15e1ac9 feat(web): G1 骨架屏取代載入中 + S8 完整提交 — Sprint 5R
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- G1: PulseSkeleton + CardSkeleton 元件
- 首頁所有 LobsterLoading 替換為 PulseSkeleton/CardSkeleton
- Tab 2/4 載入狀態用 CardSkeleton
- 活躍事件載入用 PulseSkeleton

Sprint 5R Phase 1B+1C 全部完成:
S1(KPI卡片) S2(FlowPipeline OpenClaw) S3(AI提案) S4(環形圖)
S5(時間線) S6(Terminal) S7(待審批) S8(拓撲群組+主機)
S9(AI模型) S10(監控3×2) S11(Tab修復) S12(頁面修復) G1(骨架屏)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 18:09:26 +08:00
OG T
03b07d5bc5 feat(web): S8 基礎架構拓撲群組 2×2 + 主機 4 台 — Sprint 5R
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- 拓撲模式(預設): 4 群組 2×2 網格 (基礎設施/AI數據/K3s/外部)
  每群組含名稱+服務數+健康摘要+服務列表(色點)
  有 warning 的群組加橘色光暈
- 主機模式: 4 台 2×2 (110/188/120/121) 含 CPU/RAM 進度條
  優先使用 API 真實數據,fallback 靜態值
- 預設切換為拓撲模式 (設計稿要求)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 18:06:01 +08:00
OG T
895784e646 feat(web): S7+S9+S10 待審批+AI模型+監控工具3×2 — Sprint 5R
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m15s
- S7: PendingApprovalsCard 含風險標籤 + 批准/拒絕按鈕
- S9: AIModelStatus 2×2 (OpenClaw/Ollama/Gemini/NVIDIA)
- S10: MonitoringTools 改 3×2 網格 (名稱+元資訊+左側色條)
- 右欄順序: OpenClaw → 待審批 → 基礎架構 → 監控工具 → AI模型

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:10:28 +08:00
OG T
b85a0e232e feat(web): S4+S5 處置統計環形圖 + 最近活動時間線 — Sprint 5R
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- S4: DispositionMini 元件 (SVG 環形圖 + 四類列表)
- S5: RecentActivity 元件 (時間線 + 色點 + JetBrains Mono)
- 左欄改為 flex:6 可滾動多卡片列
- 右欄改為 flex:4 (60:40 比例)
- 左欄結構: 活躍事件 → 處置統計 → 最近活動

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 15:51:54 +08:00
OG T
7a2e07f74f feat(web): S1 KPI Strip 改 5 張卡片 — Sprint 5R Phase 1B
- 7 指標分隔線 → 5 張 kpi-card 卡片橫排
- 系統健康(進度條) / 活動事件(P1:P2) / 自動修復率(進度條+↑5%) / 待審批 / 本週操作
- 移除龍蝦游泳列(統帥指示移除)
- 新增 weeklyOps 從 /api/v1/audit-logs/stats 取得

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 15:48:04 +08:00
OG T
289dac6bd1 fix(web): S11+S12 載入失敗修復 — Sprint 5R Phase 1A
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- S11: Tab 2 approvals API path 修正 (?status=pending → /pending)
- S11: Tab 2 fetch 加 r.ok 檢查避免解析錯誤 JSON
- S12: 安全合規改用 SecurityPanel + CompliancePanel (解決 double AppLayout)
- S12: 知識庫改為 redirect 到 /knowledge-base (避免 lazy import 問題)
- S12: 拓撲圖加入 useDashboardStore.connect() 啟動 SSE

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 15:43:06 +08:00
OG T
73ef9c6b12 fix(web): QA 掃描 — alert-operation-logs i18n + classic emoji→icon + knowledge 載入中
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m28s
- alert-operation-logs: 30+ 處硬編碼中文改 useTranslations (18 event types + UI)
- classic: 告警 badge + 等待確認 + TOOL_EMOJI → Lucide icon
- knowledge: 載入中 → common.loading
- 新增 alertOpLogs i18n section (zh-TW + en)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 13:58:04 +08:00
OG T
580053394b fix(web): C4 監控工具 emoji → Lucide icon (feedback_no_emoji_use_icons.md)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
TOOL_EMOJI Record<string> 改為 TOOL_ICON Record<React.ReactNode>
使用 BarChart3/Flame/Telescope/FlaskConical/Activity/GitBranch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 11:28:53 +08:00
OG T
4a94588766 fix(web): I3 approve/reject API + I4 SIGNOZ_URL env + I5 ErrorsPanel nothing-gray
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- I3: Approve/Reject 按鈕串接 /api/v1/approvals/{id}/sign|reject
- I4: ApmPanel SIGNOZ_URL 改用 NEXT_PUBLIC_SIGNOZ_URL 環境變數
- I5: ErrorsPanel 外框改用 nothing-gray 調色盤 inline style

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 11:20:44 +08:00
OG T
28d2ff704e fix(web): C1 殘留 i18n — 5 處硬編碼中文改 useTranslations
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- 告警 badge: alertBadge / alertBadgeZero
- 等待確認: awaitingConfirm
- 主機/拓撲 toggle: hostView / topoView
- HOST_CATALOG description 確認未渲染,不需 i18n

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 11:18:05 +08:00
OG T
fb66ecd2a0 refactor(web): Panel 抽取全面完成 — 三個整合頁面解決雙重 AppLayout
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
/observability: AppsPanel + ServicesPanel (共 5/5 Tab 完成)
/automation: AutoRepairPanel + NeuralCommandPanel + DriftPanel (3/3)
/operations: DeploymentsPanel + TicketsPanel + CostPanel + ActionLogsPanel + BillingPanel (5/5)

原始頁面全部精簡為 AppLayout + Panel,零雙重 Layout。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 11:06:57 +08:00
OG T
7934ade3a6 refactor(web): 全部 13 Panel 抽取完成 + 整合頁面雙重 AppLayout 修正
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Panel 抽取 (13 個):
- MonitoringPanel, ApmPanel, ErrorsPanel, AppsPanel, ServicesPanel
- AutoRepairPanel, NeuralCommandPanel, DriftPanel
- DeploymentsPanel, TicketsPanel, CostPanel, ActionLogsPanel, BillingPanel

整合頁面更新 (全部使用 Panel,無雙重 AppLayout):
- /observability: 5 Panel
- /automation: 3 Panel
- /operations: 5 Panel

首席架構師 I2 問題已解決

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 11:05:37 +08:00
OG T
7153395267 fix(web): 首席架構師 P0 修正 — i18n 硬編碼 + 效能輪詢
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
C1: 首頁 4 Tab 30+ 處硬編碼中文改為 useTranslations
  - 新增 dashboard.tabs.* / alertEvents / approve / reject 等 30+ i18n key
  - zh-TW + en 雙語同步
C3: automation/operations Loading 改用 LobsterLoading (i18n)
I1: 100ms setInterval 改為 popstate + 1s 低頻備援 (效能 10x 改善)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 11:01:07 +08:00
OG T
5ea6c3fb91 feat: alert_operation_log 查詢 API + 前端頁面 (Sprint 5.2)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
後端:
- 新增 list_recent() 分頁方法 (alert_operation_log_repository)
- 新增 /api/v1/alert-operation-logs GET + /stats 端點
- main.py 註冊 alert_operation_logs_v1.router

前端:
- /alert-operation-logs 頁面,18 種 event_type 顏色標記
- 分頁、event_type 篩選、incident_id 篩選
- 24h 統計卡片 (總數/護欄攔截/自動修復/已解決)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 10:57:40 +08:00
OG T
11fc2860cf refactor(web): ErrorsPanel 抽取 — /observability 3 個 Tab 已無雙重 Layout
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-09 10:51:59 +08:00
OG T
22fa6ea413 refactor(web): ApmPanel 抽取 — /observability 的 monitoring+apm 兩個 Tab 無雙重 Layout
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-09 10:49:39 +08:00
OG T
770667eed4 refactor(web): MonitoringPanel 抽取 — 解決 /observability 雙重 AppLayout
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-09 10:40:07 +08:00
OG T
c26c4030e4 feat(web): /topology 升級為 React Flow 完整版 (串接真實 dashboard API)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-09 09:49:31 +08:00
OG T
030f4f7c32 feat(web): 首頁基礎架構加入拓撲圖 Toggle (主機/拓撲切換,串接真實 API)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-09 09:12:31 +08:00
OG T
c669069427 feat: 小龍蝦載入動畫 + HostAggregator 效能優化
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
前端:
- LobsterLoading 共用元件 (Q版龍蝦上下浮動 + 文字提示)
- 替換首頁所有「載入中...」為小龍蝦動畫
- PageTabs 骨架屏也換成龍蝦

後端:
- TCP probe timeout: 3.0s → 1.5s
- HTTP probe timeout: 5.0s → 2.0s
- 30 秒記憶體快取 (避免 unreachable 主機拖慢前端)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 22:44:24 +08:00
OG T
ef17720dfe fix(web): 首頁 Tab 切換同步修正 — activeTabId 追蹤 URL query 變化
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-08 22:36:39 +08:00
OG T
1413804378 feat(web): Sprint 5 Phase 3 — 5 個整合頁面 + Sidebar 路由更新
新增頁面:
- /observability: 服務監控 + APM + 錯誤追蹤 + 應用 + 服務目錄 (5 Tab)
- /automation: 自動修復 + 神經指揮 + Drift (3 Tab)
- /operations: 部署 + 工單 + 成本 + 行動日誌 + 計費 (5 Tab)
- /security-compliance: 安全 + 合規 (2 Tab)
- /knowledge: 知識庫

所有 Tab 用 React.lazy + Suspense 載入現有頁面內容
零假數據: 每個 Tab 都是現有真實頁面

Sidebar 路由更新指向新整合頁面

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 22:09:53 +08:00
OG T
4f2f9e176f feat(web): Sprint 5 Phase 1.2 — 首頁 4-Tab 結構 (全部串接真實 API)
Tab 1 戰情總覽: 保留現有首頁所有元素 (MetricsStrip + IncidentCard + OpenClaw + HostGrid + MonitoringTools)
Tab 2 告警 & 授權: 串接 /api/v1/incidents + /api/v1/approvals (真實數據)
Tab 3 活動串流: 串接 SSE /api/v1/dashboard/stream (EventSource 即時)
Tab 4 處置統計: 串接 /api/v1/stats/disposition (Sprint 4 API)

零假數據: 所有 Tab 無資料時顯示空狀態,不用 Mock

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 18:17:10 +08:00
OG T
11ff517406 feat(web): Sprint 5 Phase 0 — 安裝 React Flow + elkjs + 保留經典首頁
Phase 0:
- 安裝 @xyflow/react 12.10.2 + elkjs 0.11.1
- import 驗證通過

經典首頁保留:
- 複製現有首頁到 /classic/page.tsx (815行)
- 統帥指示: 新指令中心部署後,舊版保留供對照

零假數據鐵律: 所有新頁面必須串接真實 API

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 18:07:59 +08:00
OG T
de3935d1d4 feat: Sprint 4 Phase E+F — 前端處置統計 + 週報處置分佈
Some checks failed
CD Pipeline / build-and-deploy (push) Failing after 1m26s
Type Sync Check / check-type-sync (push) Failing after 1m2s
Phase E: 前端頁面
- E1: /reports 完整處置統計儀表板 (已在 Sprint F 完成)
- E2: 首頁 Metrics Strip — 從 disposition API 取得真實自動化率
  優先使用 /stats/disposition auto_rate,fallback 到 incidents 推算
- E3: /auto-repair 處置概況卡片 (已在 Sprint F 完成)
- E4: /neural-command stats tab 處置分佈 (已在 Sprint F 完成)
- E5: i18n 翻譯 zh-TW + en (已在 Sprint F 完成)

Phase F: 週報 + 文件
- F1: WeeklyReportMessage 新增 disposition 5 欄位
  週報格式加「📋 處置分佈」區塊 (自動/冷啟動/人工/手動 + 自動化率)
  weekly_report_service 整合 get_all_disposition_stats()
- message 字數上限從 900 提升到 1200 (適應處置區塊)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-04-07 13:02:20 +08:00
OG T
22bc384b28 feat(web): Sprint 4 Phase E — 前端處置統計儀表板
E1: /reports 頁面升級為完整處置統計儀表板
- 頂部 3 KPI (處置總次數/自動化率/人工介入率)
- 四大計數卡片 (自動修復/人工審核/手動處理/冷啟動信任)
- 堆疊分佈條 (百分比視覺化)
- 按異常類型明細表格
- 串接 GET /api/v1/stats/disposition

E3: /auto-repair 頁面加入處置概況 4 卡片
E4: /neural-command stats tab 加入處置分佈區塊
E5: 新增 25+ i18n 翻譯鍵 (zh-TW + en)

全部頁面 next build 通過,統帥鐵律: 無假數據,無資料顯示 '--'

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:00:41 +08:00
OG T
246587a401 fix(web): Sprint F 前端打假行動 — 29處假數據全面清除 (首席架構師 98/100)
P0: Neural Command 三個子組件移除所有 MOCK 常數,接上真實 API props
- NeuralLiveCenter: 假歷史/假KPI/假雷達 → 從 stats/history/incidents 即時計算
- NeuralStats: MOCK_HISTORY/SCHEME_STATS/PLAYBOOK_RANKINGS → useMemo 聚合
- NeuralApprovalPanel: MOCK_PENDING → 真實 /api/v1/approvals 簽核操作

P1: 10+處假用戶身份 (demo-user/user-001/War Room User) → CURRENT_USER 常數統一
P2: 刪除 6 個 Demo 匯出 (GlobalPulseChartDemo/MOCK_APPROVAL/DEMO_DECISION_CHAIN)
P3: /demo 頁面加 NEXT_PUBLIC_ENABLE_DEMO 環境變數保護
i18n: 新增 22 個翻譯鍵 (zh-TW + en)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 12:53:52 +08:00
OG T
02510d3d93 feat: /api/v1/auto-repair/history endpoint + neural-command 接真實 API (Sprint 3)
Some checks failed
CD Pipeline / build-and-deploy (push) Failing after 8m50s
- 新增 RepairHistoryItem/RepairHistoryResponse Pydantic models
- GET /api/v1/auto-repair/history?limit=N 從 incidents working memory 推導修復歷史
- 前端 fetchData() 同時拉 history + approvals/pending,移除硬編碼 pendingApprovals=0
- try/except 包覆確保任何錯誤都回傳空列表不中斷前端

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 14:28:55 +08:00
OG T
0b1ceb8618 feat(web): 新增神經指揮中心頁面 /neural-command
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m22s
Sprint 3 SSH_COMMAND 指揮權鏈 UI — 完整前端實作:

- Pre-Flight 審查面板: 8/8 安全檢查 (A/B/C 三類) + 通過狀態 + 功能開關
- 即時指揮中心: OpenClaw 🦞 + NemoTron  狀態 + 神經傳導鏈路動畫 + 執行串流
- 統計 & 歷史: 5 KPI + URI scheme 分佈 + Playbook 成效排名 + 時間軸
- 核鑰授權面板: 兩位指揮官診斷 + 執行路徑詳情 + NuclearKeyButton 長按確認

技術:
- 路由: /neural-command (獨立新頁面,非取代 /auto-repair)
- sidebar: BrainCircuit icon,緊接 auto-repair 下方
- i18n: 完整 zh-TW + en 支援 (neuralCommand namespace)
- TypeScript: 型別定義獨立至 components/neural-command/types.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 14:01:31 +08:00
OG T
4912c7f307 fix(phase25): 首席架構師 Review R2 修正 (I1/I2/I3/I4/C3/M1)
I1: auto_repair_service — 失敗分支 anti_pattern task 補齊 _pending_tasks GC 防護
C3: drift_remediator — _kubectl_apply() 實作 resource_key 範圍過濾(修復虛設參數 bug)
M1: drift_remediator — _git_push() 標記 DISABLED,防止誤啟用
I2: drift.py — Telegram 通知移除失效的 adopt() 端點連結
I3: drift/page.tsx — handleScan POST body namespace→namespaces(對齊後端 DriftScanRequest)
I4: drift/page.tsx — 移除硬編碼英文字串,改用 t('loading')/t('highCount')/t('mediumCount')
i18n: zh-TW.json + en.json 補齊 drift.loading key

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 00:22:38 +08:00
OG T
cd5547f5eb feat(web/kb): 知識庫支援 AUTO_RUNBOOK + ANTI_PATTERN 類型顯示
- KnowledgeEntry type: 加入 auto_runbook + anti_pattern
- TYPE_COLORS: auto_runbook (紫色) + anti_pattern (紅色)
- 類型過濾器: 新增兩種類型選項
- i18n: zh-TW + en 新增 type.auto_runbook + type.anti_pattern + status.published

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 18:09:10 +08:00
OG T
aea16c87ce feat(web/drift): Config Drift Detection 頁面 — Phase 25 P2 前端
Some checks are pending
CD Pipeline / build-and-deploy (push) Waiting to run
- drift/page.tsx: 漂移偵測頁面(報告列表 + 手動掃描)
- sidebar.tsx: 加入 drift nav item(Diff icon,ops section)
- i18n: zh-TW + en 新增 nav.drift + drift.* keys

功能:
- GET /api/v1/drift/reports → 顯示最近 20 份報告
- POST /api/v1/drift/scan → 手動觸發掃描,顯示結果 banner
- DriftLevelBadge: 高/中/低 漂移計數
- StatusBadge: pending/resolved/ignored
- Nemotron 意圖分析顯示

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 18:08:05 +08:00
OG T
902443f376 feat(knowledge): 前端語意搜尋 UI — 切換按鈕 + 相似度分數顯示
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- 搜尋欄旁新增語意/關鍵字切換按鈕 (Sparkles icon, claw-blue 高亮)
- 語意模式下呼叫 GET /api/v1/knowledge/semantic-search (500ms debounce)
- 條目卡片右側:語意模式顯示相似度百分比,關鍵字模式顯示 view_count
- 空態:語意模式未輸入時顯示提示文字
- i18n: zh-TW + en 新增 6 個 key

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 11:58:40 +08:00
OG T
200c382ca4 feat(metrics): sparklines 串接真實數據 + TOOL_LINKS 移至 API (2026-04-04 ogt)
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 7m6s
前端 page.tsx:
- 今日事件 sparkline: 過去 6 小時每小時事件數 (從 incidents 計算)
- MTTR sparkline: 各已解決 incident 修復時間序列 (從 incidents 計算)
- 無數據時不顯示 sparkline (undefined 渲染 nothing)
- 移除硬碼 TOOL_LINKS,改讀 API 回傳的 tool.url

後端 monitoring.py:
- 每個 probe 函數回傳 dict 加入 "url" 欄位
- 前端工具連結由後端集中管理,解決多環境問題

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 11:09:04 +08:00
OG T
c1834a7156 feat(kb+apm): KB Phase 2-A 自動萃取 + KB-D Markdown 詳情面板 + APM 趨勢圖
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 7m28s
- KB-A: 新增 knowledge_extractor_service.py (Ollama llama3.2:3b 本地推理)
- KB-A: incident_service.py resolve hook (fire-and-forget asyncio.create_task)
- KB-D: 引入 react-markdown + remark-gfm,知識庫詳情面板 Markdown 渲染
- KB-D: 批准/封存按鈕串接 API (POST /knowledge/{id}/approve, PATCH status)
- KB-D: i18n 新增 approving/archiving 載入狀態文字
- APM: apm/page.tsx 整合 TimeSeriesChart sparkline (使用 trend[] 欄位)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:40:27 +08:00
OG T
7ff0c5c304 fix(i18n): MonitoringTools 硬編碼中文 → i18n keys + MTTR 趨勢改為真實計算
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- MonitoringTools: 載入中/無法連線/觸發/正常/離線/版本/統計/更新 → useTranslations
- MTTR 趨勢: '↓2m' hardcode → 前半/後半 resolved incidents 真實比較
- zh-TW.json + en.json: 新增 connectionError/monitoringStatus.firing/metaVersion/metaStats/metaUpdatedAt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:36:46 +08:00
OG T
778d3cc2e4 fix(metrics): Pod健康 extra row 對齊 figma-v2 — 改用 sub 小字取代紅色 badge
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m48s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:12:48 +08:00
OG T
37eb17fc78 fix(layout): sidebar/header 對齊 — ml-[224px] + pt-[68px] 消除 32px 空隙
Some checks failed
CD Pipeline / build-and-deploy (push) Failing after 48s
- ml-64(256px) → ml-[224px] 對齊 sidebar 實際寬度
- pt-16(64px) → pt-[68px] 對齊 header 實際高度
- calc(100vh-64px) → calc(100vh-68px)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 13:35:47 +08:00
OG T
c290507878 fix(dashboard): metrics 完整對齊 figma-v2 — trend箭頭+value-row
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- MetricItem 加 trend 欄位(value-row 右側箭頭,figma exact copy)
- 今日事件: value-row 顯示 ↑N 橘色
- 自動處置率: value-row 顯示 ↑N% 綠色
- MTTR均值: value-row 顯示 ↓2m 綠色

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:30:07 +08:00
OG T
6ae655d943 fix(dashboard): metrics strip 完整對齊 figma-v2
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m44s
- background 改為 #fff(白色)
- padding 改為 8px 16px,min-width:120px
- divider 改為獨立元素(width:0.5px height:36px alignSelf:center)
- label font-size 改為 11px
- 移除 borderRight hack,使用獨立 divider

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:15:32 +08:00
OG T
8788cdaaa0 fix(dashboard): 修復 metrics strip 排版與數據問題
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m50s
- 活躍事件:有 incident 時值改橘色,下方顯示 P0×N + P2×N badge
- 服務健康:固定 4 條橫條按比例顯示健康率
- 待處理授權:i18n 修正「待簽核」→「待處理授權」,badge 顯示「等待確認」
- 自動處置率:移除錯誤 sparkline 覆蓋,恢復綠色進度條
- 移除未使用的 errorRateMetric/rpsMetric

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:00:35 +08:00
OG T
741a8f4917 feat(dashboard): 完整對齊 figma-v2 設計 — 重寫主頁
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m42s
- Metrics strip 從 6 個擴展為 7 個指標,新增「今日事件」(含趨勢折線圖)
- 服務健康指標加入彩色進度條視覺 (4 格色塊)
- 自動處置率加入漸層進度條 (figma-v2 style)
- MTTR 均值加入趨勢折線圖
- 監控工具卡片全面升級為 figma-v2 設計:
  左側 3px 彩色條 (Grafana=橘/Prometheus=紅/Sentry=紫/Langfuse=藍/SigNoz=藍/Gitea=綠)
  clickable <a> 連結加 ↗ 開新視窗圖示
  底部 meta 行顯示版本/統計/更新時間

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 01:09:41 +08:00
OG T
702350925a fix(monitoring+layout): 修復基礎架構消失 + 監控工具全線上
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m47s
- page.tsx: 右側 panel overflow:hidden → overflowY:auto,基礎架構重新顯示
- page.tsx: 監控工具卡片對齊 figma (icon box + 版本/統計行 + ›箭頭)
- monitoring.py: Gitea probe 改用 /api/v1/version (/-/readiness 404)
- monitoring.py: Grafana dashboard count 加 Basic auth
- NetworkPolicy: 補開 3002/9090/3001 egress (Grafana/Prometheus/Gitea)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 00:50:53 +08:00