From b66263ad3639820431ee956655da8f65bb4e08fb Mon Sep 17 00:00:00 2001 From: OG T Date: Thu, 9 Apr 2026 12:00:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(decision=5Fmanager):=20resolved=20Incident?= =?UTF-8?q?=20=E4=B8=8D=E9=87=8D=E9=80=81=20Telegram?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dedup TTL 10分鐘過期後,已 resolve 的 Incident 仍被重新推送 加入狀態檢查,resolved/closed 直接跳過 Co-Authored-By: Claude Sonnet 4.6 --- apps/api/src/services/decision_manager.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/api/src/services/decision_manager.py b/apps/api/src/services/decision_manager.py index 0268d2ff..87e5c8bd 100644 --- a/apps/api/src/services/decision_manager.py +++ b/apps/api/src/services/decision_manager.py @@ -73,6 +73,16 @@ async def _push_decision_to_telegram( ) return + # 2026-04-09 Claude Code: resolved Incident 不重送 Telegram + # 場景: dedup TTL 過期後,已 resolve 的 Incident 仍被重新推送 + if incident.status and str(incident.status).lower() in ("resolved", "closed"): + logger.info( + "telegram_push_skipped", + reason="Incident already resolved", + incident_id=incident.incident_id, + ) + return + # 🔴 靜默檢查:此資源是否被靜默 (2026-03-27 P1 優化) target = incident.affected_services[0] if incident.affected_services else "unknown" silence_key = f"telegram_silence:{target}"