fix: Telegram footer shows SAC as sender when SAC delivers the message
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -95,7 +95,8 @@ def _line(emoji: str, label: str, value: str) -> str:
|
||||
return f"{emoji} {label}: {value}\n"
|
||||
|
||||
|
||||
def _event_generated_by(event: Event) -> str:
|
||||
def _event_content_author(event: Event) -> str:
|
||||
"""Кто сгенерировал содержимое события (ingest / отчёт)."""
|
||||
details = _details_dict(event)
|
||||
gb = details.get("generated_by")
|
||||
if isinstance(gb, str) and gb.strip().lower() in ("agent", "sac"):
|
||||
@@ -108,6 +109,21 @@ def _event_generated_by(event: Event) -> str:
|
||||
return "agent"
|
||||
|
||||
|
||||
def _notification_delivered_by(event: Event) -> str:
|
||||
"""Кто доставил сообщение в Telegram (footer «📡 Оповещение»).
|
||||
|
||||
Шаблоны здесь используются только при отправке из SAC. Агент добавляет footer сам.
|
||||
"""
|
||||
details = _details_dict(event)
|
||||
via = details.get("telegram_via")
|
||||
if isinstance(via, str) and via.strip().lower() in ("agent", "sac"):
|
||||
return via.strip().lower()
|
||||
if _event_content_author(event) == "sac":
|
||||
return "sac"
|
||||
# ingest от агента, канал Telegram — SAC (exclusive / notify_lifecycle)
|
||||
return "sac"
|
||||
|
||||
|
||||
def _event_product_version(event: Event) -> tuple[str | None, str | None]:
|
||||
details = _details_dict(event)
|
||||
platform = None
|
||||
@@ -137,12 +153,13 @@ def _event_product_version(event: Event) -> tuple[str | None, str | None]:
|
||||
|
||||
|
||||
def _append_event_source(html_msg: str, event: Event) -> str:
|
||||
delivered = _notification_delivered_by(event)
|
||||
product, version = _event_product_version(event)
|
||||
return append_notification_source_html(
|
||||
html_msg,
|
||||
generated_by=_event_generated_by(event),
|
||||
product=product,
|
||||
product_version=version,
|
||||
generated_by=delivered,
|
||||
product=product if delivered == "agent" else None,
|
||||
product_version=version if delivered == "agent" else None,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user