From 890d438cdfba2ec5438513cd47fcf3000cfb1007 Mon Sep 17 00:00:00 2001 From: OG T Date: Fri, 3 Apr 2026 17:36:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(group):=20=E7=BE=A4=E7=B5=84=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E6=A0=BC=E5=BC=8F=E5=B0=8D=E9=BD=8A=20TelegramMessage?= =?UTF-8?q?=20=E6=A8=A1=E6=9D=BF=20+=20=E4=BF=AE=E5=BE=A9=20AI=20=E8=A8=8E?= =?UTF-8?q?=E8=AB=96=E8=A7=B8=E7=99=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 群組告警改用 ═══ 分隔線格式,與個人 chat 一致 - 加入「OpenClaw 與 NemoClaw 正在分析中...」提示 - 加 group_msg_id 為空時的 warning log - clawbot-v5 STANDBY_MODE: main.py 檢查條件修正 Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/telegram_gateway.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/api/src/services/telegram_gateway.py b/apps/api/src/services/telegram_gateway.py index 83702c01..a79fbc78 100644 --- a/apps/api/src/services/telegram_gateway.py +++ b/apps/api/src/services/telegram_gateway.py @@ -1404,13 +1404,18 @@ class TelegramGateway: 由 asyncio.create_task 非同步呼叫,失敗不影響主告警流程。 """ try: - risk_emoji = {"critical": "🔴", "medium": "🟡", "low": "🟢"}.get(risk_level, "⚪") + # 2026-04-03 ogt: 群組告警格式對齊個人 chat 的 TelegramMessage 模板 + risk_emoji = RISK_EMOJI_MAP.get(risk_level.lower(), "⚪") summary = ( - f"{risk_emoji} [{risk_level.upper()}] SRE 告警\n\n" - f"📦 資源: {resource_name}\n" - f"🔍 根因: {root_cause}\n" - f"💡 建議: {suggested_action}\n" - f"🆔 {approval_id}" + f"═══════════════════════════\n" + f"{risk_emoji} {risk_level.upper()} | {html.escape(resource_name[:30])}\n" + f"═══════════════════════════\n" + f"📋 {html.escape(approval_id)}\n" + f"━━━━━━━━━━━━━━━━━━━\n" + f"🔍 根因: {html.escape(root_cause[:120])}\n" + f"🔧 建議: {html.escape(suggested_action[:80])}\n" + f"━━━━━━━━━━━━━━━━━━━\n" + f"⬇️ OpenClaw 與 NemoClaw 正在分析中..." ) group_result = await self.send_to_group(text=summary) group_msg_id = ( @@ -1424,6 +1429,8 @@ class TelegramGateway: alert_message_id=group_msg_id, alert_summary=f"[{risk_level.upper()}] 資源: {resource_name}\n根因: {root_cause}\n建議: {suggested_action}", ) + else: + logger.warning("send_approval_card_to_group_no_msg_id", approval_id=approval_id) except Exception as e: logger.error("send_approval_card_to_group_failed", error=str(e))