diff --git a/apps/api/src/services/decision_manager.py b/apps/api/src/services/decision_manager.py index 7df9bac1..e8dcbbae 100644 --- a/apps/api/src/services/decision_manager.py +++ b/apps/api/src/services/decision_manager.py @@ -865,12 +865,16 @@ async def _push_auto_repair_result( ) # Fallback: 找不到原訊息 ID(舊告警或 Redis 過期)→ 發新訊息 + # 2026-04-15 ogt: 改為 ADR-075 TYPE-2 格式(禁止 raw text) if not appended: + result_icon = "✅" if success else "❌" + result_label = "完成" if success else "失敗" fallback_text = ( - f"{'✅' if success else '❌'} [自動修復{'完成' if success else '失敗'}] " - f"{inc_id}\n" - f"對象: {target[:50]}\n" - f"{status_line}" + f"{result_icon} TYPE-2 | 自動修復{result_label}\n" + "──────────────────────\n" + f"├─ 事件: {inc_id}\n" + f"├─ 對象: {target[:50]}\n" + f"└─ {status_line}" ) await gateway.send_notification(fallback_text) diff --git a/apps/api/src/services/gitea_webhook_service.py b/apps/api/src/services/gitea_webhook_service.py index ff88cd27..e26221a3 100644 --- a/apps/api/src/services/gitea_webhook_service.py +++ b/apps/api/src/services/gitea_webhook_service.py @@ -363,36 +363,27 @@ class GiteaWebhookService: else "🔴" ) + # 2026-04-15 ogt: 改為 ADR-075 TYPE-1 格式(禁止 ═══ raw 格式) message_lines = [ - "═══════════════════════════", - "🔍 GITEA CODE REVIEW", - "═══════════════════════════", - f"📦 {repo}", - f"🔀 {target}", - f"👤 @{author}", - "───────────────────────────", + f"{quality_emoji} TYPE-1 | Gitea Code Review", + "──────────────────────", + f"├─ 倉庫: {repo}", + f"├─ 目標: {target}", + f"├─ 作者: @{author}", ] if analysis: - message_lines.extend([ - f"{quality_emoji} 品質分數: {analysis.quality_score:.0f}/100", - ]) + message_lines.append(f"├─ 品質分數: {analysis.quality_score:.0f}/100") if analysis.issues: - message_lines.append(f"⚠️ 發現 {len(analysis.issues)} 個問題") + message_lines.append(f"├─ 問題: {len(analysis.issues)} 個") if analysis.security_concerns: - message_lines.append(f"🔐 {len(analysis.security_concerns)} 個安全疑慮") - message_lines.extend([ - "───────────────────────────", - "🧠 AI 摘要:", - f"「{analysis.summary[:150]}」", - ]) + message_lines.append(f"├─ 安全疑慮: {len(analysis.security_concerns)} 個") + message_lines.append(f"├─ AI 摘要: 「{analysis.summary[:150]}」") else: - message_lines.append("❌ AI 分析失敗") + message_lines.append("├─ AI 分析失敗") message_lines.extend([ - "───────────────────────────", - f"🔗 {url}", - f"📋 Review ID: {review_id}", + f"└─ Review #{review_id}", ]) message = "\n".join(message_lines)