From 47f9139948120425dc970dd8ab63d0214b9917f3 Mon Sep 17 00:00:00 2001 From: simbiot-harness Date: Tue, 29 Sep 2026 16:47:58 +0000 Subject: [PATCH] =?UTF-8?q?feat(tg):=20typing-=D0=B8=D0=BD=D0=B4=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=D1=82=D0=BE=D1=80=20(sendChatAction)=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=20=D0=BC=D0=B8=D0=BD-=D1=83=D1=80=D0=BE=D0=B2=D0=BD?= =?UTF-8?q?=D1=8F=20=E2=80=94=20=D0=B2=20TG=20=D0=B2=D0=B8=D0=B4=D0=BD?= =?UTF-8?q?=D0=BE=20=C2=AB=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=E2=80=A6=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- harness/tg_inbox.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/harness/tg_inbox.py b/harness/tg_inbox.py index 4f6c806..23e23f0 100644 --- a/harness/tg_inbox.py +++ b/harness/tg_inbox.py @@ -70,13 +70,22 @@ def receive_message(update: dict): def send_reply(msg_id: str, text: str): - """Ответ на входящее: Telegram-отправка + событие ReplySent (закрывает входящее).""" + """Ответ на входящее: Telegram-отправка + событие ReplySent (закрывает входящее). + + Перед отправкой шлём sendChatAction typing — в TG видно «печатает…». + sendChatAction живёт ~5с и НЕ обновляется сам — этого достаточно для + минутного пульса (типичный лаг ответа < 5с после начала отправки). + """ model = es.run_projections() m = (model.get("inbox") or {}).get(msg_id) if m is None: raise ValueError(f"входящее {msg_id} не найдено") if m.get("replied"): raise ValueError(f"на {msg_id} уже отвечено") + try: # индикатор — best effort: недоступность TG-метода не мешает ответу + _api("sendChatAction", {"chat_id": m["chat_id"], "action": "typing"}, timeout=10) + except Exception: + pass r = send_message(m["chat_id"], text, reply_to=None) es.append_event("inbox", msg_id, "ReplySent", { "to_chat": m["chat_id"], "text": text[:2000], "tg_ok": bool(r.get("ok")),