From e76439e36b3aea358c054cb0da781c55a239fd18 Mon Sep 17 00:00:00 2001 From: h Date: Thu, 23 Jul 2026 03:42:01 +0200 Subject: [PATCH] fix(alerts): level OK is a stand-down, not a green alarm --- src/healthbot/alerts.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/healthbot/alerts.py b/src/healthbot/alerts.py index 2ee3dad..0a885da 100644 --- a/src/healthbot/alerts.py +++ b/src/healthbot/alerts.py @@ -102,7 +102,10 @@ def _describe(kind: str, d: dict) -> tuple[str, list[str]]: # noqa: C901, PLR09 def format_alert(payload: dict) -> str: level = str(payload.get("level", "")).upper() - resolved = bool(payload.get("resolved")) + # level=OK — это тоже «отбой», просто Komodo сообщает его уровнем, а не + # флагом. Без этой проверки приходило зелёное сообщение с тревожным + # текстом: галочка и «git разошёлся с Komodo» одновременно. + resolved = bool(payload.get("resolved")) or level == "OK" data = payload.get("data") or {} kind = str(data.get("type") or "Unknown") inner = data.get("data") or {} @@ -110,9 +113,12 @@ def format_alert(payload: dict) -> str: icon = "✅" if resolved else LEVEL_ICON.get(level, "🔔") title, details = _describe(kind, inner if isinstance(inner, dict) else {}) - lines = [f"{icon} {title}"] if resolved: - lines.append("Проблема закрылась.") + return "\n".join( + [f"{icon} Отбой: {title}", f"Komodo · {html.escape(kind)}"] + ) + + lines = [f"{icon} {title}"] lines.extend(x for x in details if x) lines.append(f"Komodo · {html.escape(kind)}") return "\n".join(lines)