380 Commits

Author SHA1 Message Date
OG T
4d46e6b9a7 style(web): 全站 font-mono → font-body (DM Mono 設計系統套用)
Some checks failed
E2E Health Check / e2e-health (push) Successful in 17s
CD Pipeline / build-and-deploy (push) Has been cancelled
45 個 component + 6 個 page 統一從舊 font-mono 遷移到
font-body (DM Mono),確保設計系統一致性。

font-body = DM Mono (等寬),視覺效果相同但走新設計 token。
保留: font-heading (Syne)、font-dot-matrix (VT323/DSEG7)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:37:03 +08:00
OG T
db1aed81d9 fix(db): C1 時區統一遷移 — utc_now → taipei_now (全 5 table)
Some checks failed
E2E Health Check / e2e-health (push) Successful in 18s
CD Pipeline / build-and-deploy (push) Has been cancelled
🔴 首席架構師審查 C1: 全系統禁止 UTC,必須台北時區 +8

- utc_now() → taipei_now() (調用 src.utils.timezone.now_taipei)
- 影響: ApprovalRecord, TimelineEvent, AuditLog, IncidentRecord, KnowledgeEntryRecord
- 13 處 default/onupdate 全部替換
- 移除 datetime.UTC import

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:13:36 +08:00
OG T
628387de8c fix: risklevel migration 自動化 + Telegram Whitelist 注入
Some checks failed
E2E Health Check / e2e-health (push) Successful in 17s
CD Pipeline / build-and-deploy (push) Has been cancelled
1. init_db() 啟動時自動確保 risklevel enum 包含 'high' 值
   (Phase 23 新增,避免舊 DB 缺值導致 InvalidTextRepresentation)

2. CD Pipeline 新增 OPENCLAW_TG_USER_WHITELIST 自動注入
   (之前為 CHANGE_ME,已更新為實際 user ID 5619078117)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:13:13 +08:00
OG T
3ecfe7b3f5 chore: 清理 NemoNodeAnimation 殘留 + 修復 Migration YAML
Some checks failed
E2E Health Check / e2e-health (push) Successful in 19s
CD Pipeline / build-and-deploy (push) Has been cancelled
- 移除 nemo-node-animation.tsx (無人引用,已被 NemoClaw 取代)
- Migration YAML: 修復 $$ 在 YAML heredoc 被 shell 解析問題
  改用單引號字串 DO '' 語法

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:09:25 +08:00
OG T
d2bad44173 fix(api): KB 架構審查修復 I3-I5
Some checks failed
E2E Health Check / e2e-health (push) Successful in 17s
CD Pipeline / build-and-deploy (push) Has been cancelled
- I3: Service 層加 IKnowledgeRepository Protocol 型別標注
- I4: search 方法加入 tags JSONB 搜尋 (cast→String→ilike)
- I5: get_categories 獨立方法,不再繞道 list_entries(limit=0)

首席架構師審查 87/100 → 全部 Important issues 已修復

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:05:54 +08:00
OG T
48a0bc66f7 fix(api): KB 首席架構師審查修復 (I1 tags filter + I2 type annotation)
Some checks failed
E2E Health Check / e2e-health (push) Successful in 16s
CD Pipeline / build-and-deploy (push) Has been cancelled
- I1: Repository list_entries 實作 tags JSONB @> 篩選 (之前聲明未實作)
- I2: ORM tags 型別從 list[dict[str, Any]] 修正為 list[str]

首席架構師審查: 87/100
C1 時區(UTC→Taipei) 為既有系統性問題,另開 task 統一遷移

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:04:41 +08:00
OG T
e17248fd10 fix: 首席架構師審查修復 — i18n/CD/時區/死碼清理
Some checks failed
E2E Health Check / e2e-health (push) Successful in 16s
CD Pipeline / build-and-deploy (push) Has been cancelled
P0 前端 i18n 合規 (6 檔案):
- settings/page.tsx: 全面改用 useTranslations('settings')
- auto-repair/page.tsx: 30+ 處硬編碼改用 t('autoRepair.*')
- sidebar.tsx: sectionLabel 改用 tSection(),aria-label 國際化
- openclaw-panel.tsx: STATUS_MESSAGES 改用 tPanel(),Production 改用 tBrand
- alerts/page.tsx: StatPill label 改用 t('incident.severity.*')

P1 CD Pipeline:
- cd.yaml: runs-on 改 self-hosted (ADR-039)
- Telegram Secret 注入失敗改為 exit 1 (ADR-035)
- kubectl patch op:replace → op:add (首次部署相容)

P2 後端:
- langfuse_client.py: 移除 v4.x 死碼分支 (SDK 鎖定 <3.0.0)
- ai.py: 標記 TODO(R4) Router 瘦身

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:02:41 +08:00
OG T
502621e2f2 feat(web): Knowledge Base 前端頁面 + i18n
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
- 左側分類導航 (基礎設施/應用層/AI系統/安全合規)
- 頂部搜尋欄 + 類型篩選 + 新增按鈕
- 知識條目列表 (type badge + status + tags + view count)
- 右側詳情 Panel (content + meta + approve/archive)
- 空態設計 (BookOpen icon + 說明文字)
- i18n: zh-TW + en knowledgeBase namespace (30+ keys)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 09:00:23 +08:00
OG T
d32d84efce feat(telegram): 接通 Phase 22 Nemotron 雙軌顯示 (ADR-044)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
根本原因: format_with_nemotron() 已實作但從未被呼叫
- send_approval_card() 新增 nemotron_enabled/tools/validation/latency 參數
- TelegramMessage 建構時傳入 nemotron 欄位
- nemotron_enabled=true 時自動使用 format_with_nemotron() 格式
- _push_decision_to_telegram() 從 proposal_data 提取並傳遞 nemotron 資料

效果: Telegram 同時顯示 OpenClaw 仲裁 + Nemotron 執行方案雙區塊
2026-04-02 ogt: Phase 22 最後一哩路

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 08:59:03 +08:00
OG T
d8be78b135 feat(api): Knowledge Base Phase 1 後端四層架構
Some checks failed
CD Pipeline / build-and-deploy (push) Successful in 7m0s
E2E Health Check / e2e-health (push) Successful in 17s
Type Sync Check / check-type-sync (push) Failing after 30s
- models/knowledge.py: Pydantic Schema (EntryType/Source/Status/CRUD)
- db/models.py: KnowledgeEntryRecord ORM (PostgreSQL)
- repositories/interfaces.py: IKnowledgeRepository Protocol
- repositories/knowledge_repository.py: PostgreSQL CRUD 實作
- services/knowledge_service.py: 業務邏輯 (get_db_context 內部管理 session)
- api/v1/knowledge.py: REST Router (get_knowledge_service,無直接 DB 存取)
- main.py: 掛載 Knowledge Base Router
- k8s/jobs/migrate-knowledge-entries.yaml: DB Migration Job

API 端點: GET/POST / | GET/PATCH/DELETE /{id} | POST /{id}/approve
         GET /search | GET /categories

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:55:56 +08:00
OG T
077e1cd637 fix(telegram): 修復所有 webhook 路徑缺失 ai_provider → Telegram 顯示「AI 仲裁判定」
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
根本原因: send_approval_card() 有 ai_provider 參數,但三個 webhook 呼叫端都沒傳:
- signoz_webhook.py: 有 ai_provider 參數但未轉傳給 send_approval_card
- sentry_webhook.py: 有 analysis.analyzed_by 但未傳
- webhooks.py: _push_to_telegram_background 缺少 ai_provider 參數

修復後 Telegram 會顯示「🤖 OpenClaw Nemo 仲裁」而非「🤖 AI 仲裁判定」

2026-04-02 ogt: 三個 webhook 路徑統一修復

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:51:13 +08:00
OG T
5959855a71 feat(web): 字體系統升級 + NemoClaw SVG 還原 + Knowledge Base 設計文件
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
- 字體:Syne (標題) + DM Mono (內文) + VT323 (品牌點陣),替換 Inter
- Tailwind: fontFamily 更新 + 5 層文字色彩 token (primary→disabled)
- Sidebar: NemoClaw 白瓷龍蝦爪 SVG + AWOOOI 用 VT323 放大
- OpenClaw Panel: 還原 NemoClaw 3D 白瓷龍蝦爪 (替換 NemoNodeAnimation)
- Knowledge Base 設計文件 (B分離/A K8s Job/Phase1跳過向量搜尋)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 00:48:42 +08:00
OG T
46a346d948 fix(llmops): 鎖定 langfuse SDK v2.x (v3.x/v4.x 均已移除 client.trace() API)
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m33s
E2E Health Check / e2e-health (push) Successful in 15s
排查確認:v3.x 也無 client.trace(),langfuse_client.py 依賴此 API。
鎖定 <3.0.0 確保安裝 v2.60.10 (v2 最新),trace/generation/score 均可用。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 00:23:29 +08:00
OG T
de04de1d4f fix(telegram): 新增 openclaw_nemo/nvidia_nim 顯示名稱映射
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
- format() 和 format_with_nemotron() 兩處 provider_names 均加入:
  openclaw_nemo → "OpenClaw Nemo"
  openclaw_nvidia_nim → "OpenClaw Nemo"
  openclaw_qwen → "OpenClaw Nemo"
- 修正顯示 "OPENCLAW_NEMO" (大寫) 的問題
- 2026-04-01 ogt: 配合 AI 仲裁架構調整

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 00:20:37 +08:00
OG T
75e17528fc feat(settings): 從佔位符升級為完整設定頁面
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m55s
E2E Health Check / e2e-health (push) Successful in 15s
- 4 分區側邊導覽:外觀/語言/通知/系統資訊
- 外觀:緊湊模式 Toggle (localStorage 持久化)
- 語言:zh-TW / en 切換(路由導向)
- 通知:瀏覽器推播 / P0 Only 過濾 Toggles
- 系統:版本、API 端點資訊

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:03:41 +08:00
OG T
b51241826c feat(auto-repair): 從佔位符升級為完整自動修復頁面
- 統計面板: Playbook 數/高品質數/執行次數/成功率
- 自動修復就緒狀態指示器
- 活躍 P1/P2 Incident 評估列表(可展開查看 Playbook 詳情)
- 執行修復按鈕(呼叫 /api/v1/auto-repair/execute)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 23:02:40 +08:00
OG T
cdf60bb8c8 feat(pages): 補全所有缺失路由頁面 (15 個)
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
實作頁面:
- /monitoring: 黃金指標 + 主機狀態 + 服務健康表格
- /alerts: P0-P3 分組 + 嚴重度統計 (已送)
- /terminal: OmniTerminal 路由 (已送)
- /authorizations: LiveApprovalPanel (已送)

佔位頁面 (ComingSoon):
- /apm /topology /security /compliance
- /auto-repair /deployments /tickets /cost /reports
- /apps /services /users /notifications /billing /help

新增 ComingSoon 元件 (極簡動點動畫)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:59:02 +08:00
OG T
ae6af27bda fix(llmops): 鎖定 langfuse SDK v2.x — pyproject.toml (實際建置來源)
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
requirements.txt 不是 Docker 建置來源,Dockerfile 使用 uv pip install . 從
pyproject.toml 安裝依賴。v4.x 改用 OTLP 協定,與 langfuse_client.py 的
client.trace() API 不相容,鎖定 <4.0.0。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:58:49 +08:00
OG T
7dde534575 feat(alerts): 新增告警管理頁面 + i18n 補全
Some checks failed
CD Pipeline / build-and-deploy (push) Successful in 6m52s
E2E Health Check / e2e-health (push) Has been cancelled
- /alerts 頁面:按 P0/P1/P2/P3 分組,15s 自動刷新
- 統計 4 欄(P0 CRITICAL 紅色高亮)
- 空態 / 載入 / 錯誤三態處理
- 補全 alerts.autoRefresh、common.loading/refresh i18n keys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:50:12 +08:00
OG T
27b4d2a76a fix(telegram): strip <placeholder> 佔位符防止 HTML parse 錯誤
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
OpenClaw 生成的 kubectl_command 含 <受影響服務名稱>
在 Telegram HTML parse mode 下造成 'Can't parse entities'
用 regex strip 所有 <...> 佔位符

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:50:07 +08:00
OG T
2aeec34735 fix(llmops): 鎖定 langfuse SDK v2.x (避免 v4.x OTLP 不相容)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline (Dev) / build-and-deploy-dev (push) Successful in 2m40s
問題: langfuse>=2.0.0 安裝了 v4.0.5,該版本移除 client.trace() 改用 OTLP
根因: Langfuse server v2.95.11 的 OTLP endpoint (/api/public/otel) 返回 404
     但舊版 /api/public/ingestion endpoint 正常 (HTTP 207)
修復: 鎖定 langfuse>=2.0.0,<4.0.0,保留 client.trace() API 相容性

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:49:00 +08:00
OG T
fccc69972d feat(terminal): 建立 /terminal 路由頁 + 補全 Sidebar 全部 i18n nav keys
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
- 新增 terminal/page.tsx (自動開啟 OmniTerminal)
- zh-TW/en nav 補全 18 個缺失 key (alerts/monitoring/apm/...)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:46:59 +08:00
OG T
ddf82937f4 feat(authorizations): 從佔位符升級為完整 HITL 授權頁面
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
接入 LiveApprovalPanel:Multi-Sig、權限擋板 (RBAC)、SSE 即時更新、CSRF 保護

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:45:41 +08:00
OG T
79c8a2e7ab fix(layout): 還原 Header 原始設計 + 修復 Metrics Strip 高度
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
- Header 左側換回頁面標題 (移除重複的 SVG + AWOOOI 品牌)
- Metrics Strip height 50→60px (避免三行文字被截斷)
- 原因: commit 249ecde 錯誤地在 Header 加入品牌區塊,與 Sidebar 重複

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:42:07 +08:00
OG T
88051388d4 fix(ai): 修復 _call_openclaw_analyze datetime 序列化失敗 → fallback Gemini
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
signals dict 內含 datetime 物件,httpx json= 無法序列化
加入 _to_serializable 遞迴轉換,datetime → str

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:37:04 +08:00
OG T
ff85b0581a fix(ai): 修復 analyze_and_propose 方法呼叫錯誤
Some checks failed
CD Pipeline (Dev) / build-and-deploy-dev (push) Failing after 9s
CD Pipeline / build-and-deploy (push) Has been cancelled
E2E Health Check / e2e-health (push) Has been cancelled
- OpenClawService 沒有 analyze(), 正確方法是 analyze_alert(alert_context)
- 包裝 host_statuses 為 alert_ctx 傳入
- 解包返回值 (8-tuple) 用 *_ 忽略尾端

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:33:51 +08:00
OG T
48d89a1a91 style(font): 系統性字體升級 — 對齊業界標準 Linear/Vercel/Anthropic
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
- openclaw-panel: 11/9/8px → 13/12/11px
- sidebar: nav 13→14px, badges 11→12px, bottom 12→13px, icons 14→15px
- page.tsx: metric labels 11→12px, section headers 12→13px
- incident-card: 11px 全面升 12px, meta 12→13px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 22:15:35 +08:00
OG T
a1f7d1f495 fix(db): 固化 risklevel ADD VALUE 'high' 為正式 migration
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m58s
E2E Health Check / e2e-health (push) Successful in 18s
Phase 23 緊急修復已在 prod/dev 手動執行,此檔作為正式記錄
使用 DO 塊防止重複執行錯誤

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 21:36:15 +08:00
OG T
0ae210a433 fix(ui): sidebar font sizes to standard + remove dead NemoClaw SVG from openclaw-panel
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m47s
E2E Health Check / e2e-health (push) Successful in 17s
2026-04-01 21:24:52 +08:00
OG T
5dd28b2fc6 test(telegram): add ADR-050 info action tests (detail/reanalyze/history/keyboard)
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 6m47s
E2E Health Check / e2e-health (push) Successful in 18s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 21:11:45 +08:00
OG T
5809d3e336 feat(ai): 委派 Incident RCA 給 OpenClaw (Nemo) — 架構鐵律修正
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
架構鐵律: OpenClaw = AI 大腦,AWOOOI API 透過 HTTP 委派仲裁
修改:
- openclaw.py: 加入 _call_openclaw_analyze(),在 LLM fallback 前先呼叫 OpenClaw
- 04-configmap.yaml: OPENCLAW_URL 修正為 :8088 (新容器 port)
- AI_FALLBACK_ORDER 改為 ["ollama","claude"] (移除 Gemini 付費 API)

OpenClaw /api/v1/analyze/incident → qwen2.5:7b 本機 Ollama (Nemo)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 21:11:30 +08:00
OG T
60d2fbaf8c feat(telegram): implement reanalyze button handler, replace placeholder (ADR-050)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 21:08:44 +08:00
OG T
6dc1505584 feat(incident): add trigger_reanalysis() with Redis 10min dedup (ADR-050) 2026-04-01 21:06:39 +08:00
OG T
0df2625b26 fix(ui): increase font sizes to mainstream web standards across AI Center 2026-04-01 21:05:03 +08:00
OG T
44e2244781 fix(page): wrap with AppLayout to restore Sidebar + Header, use calc(100vh-64px)
Some checks failed
E2E Health Check / e2e-health (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
2026-04-01 20:30:58 +08:00
OG T
249ecdeb25 feat(header): update NemoClaw Logo SVG with ceramic3d arms and LED core
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:11:39 +08:00
OG T
e623b1c4e9 chore(incident): remove DualStateIncidentCard (Phase 6.5 old style, migrated to IncidentCard)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:10:20 +08:00
OG T
d14a58be0d fix(page): correct comment from 3-col to 2-col (sidebar is in AppLayout) 2026-04-01 20:09:27 +08:00
OG T
9268d22dee feat(page): redesign AI Center layout - 3-col Feed+RightPanel, Metrics Strip
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:07:58 +08:00
OG T
beb6a227db feat(ai): replace dragon arm SVG with NemoNodeAnimation in OpenClawPanel
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:05:18 +08:00
OG T
edc3707032 fix(incident): a11y AI proposal button, move spin keyframe to globals, fix deps
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:03:09 +08:00
OG T
823e2b95a3 feat(incident): redesign IncidentCard with FlowPipeline, migrate auth logic from DualState
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:00:16 +08:00
OG T
8b99dde05e fix(i18n): add tagline and fix liveDashboard section placement 2026-04-01 19:53:57 +08:00
OG T
faf658c4b4 feat(sidebar): 4-section nav with AI center active style #d97757 2026-04-01 19:53:00 +08:00
OG T
dae401270c feat(i18n): rename to AI Center, add flow pipeline keys 2026-04-01 19:52:28 +08:00
OG T
91b42b4bb9 feat(infra): add HostGrid 2x2 compact host grid component 2026-04-01 19:50:27 +08:00
OG T
354bf7a6f2 feat(ai): add NemoNodeAnimation 72x72 SVG with orb-pulse and ring-spin 2026-04-01 19:50:05 +08:00
OG T
16ca133955 feat(incident): add FlowPipeline 7-node pipeline with lobster animation 2026-04-01 19:47:19 +08:00
OG T
c1c7564e41 feat(design): add Anthropic Warmth ai-center color tokens 2026-04-01 19:44:43 +08:00
OG T
a9d8fd9c3c feat(telegram): ADR-050 P2 - detail/history info actions 實作
All checks were successful
CD Pipeline (Dev) / build-and-deploy-dev (push) Successful in 2m28s
- _send_incident_detail: 取得事件詳情 + AI 信心條形圖,傳送新訊息保留原始簽核卡片
- _send_incident_history: 頻率統計 (1h/24h/7d/30d + 自動修復次數)
- reanalyze: 保留為開發中 placeholder

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 18:48:04 +08:00