fix(telegram,core): bare seeds stay silent in telegram

This commit is contained in:
hh
2026-08-28 18:42:35 +02:00
parent 7b0c61c18e
commit 7240e0cdac
3 changed files with 9 additions and 3 deletions
+2
View File
@@ -978,6 +978,8 @@ class Conversations:
stamp = datetime.now(UTC).astimezone().strftime("%Y-%m-%d %H:%M")
title = f" «{ctx.title}»" if ctx.title else ""
head = f"[сид: {ctx.seed}] {ctx.kind}{title}, {stamp}."
if not ctx.text or ctx.seed == "brief":
head += " Это контекст, не обращение: отвечать не нужно."
body: str | None = None
if self._texts.seed is not None:
produced: Any = self._texts.seed(ctx)
@@ -668,9 +668,7 @@ class TelegramFrontend(Frontend):
key=f"{event.get('turn_id')}:error",
)
case "reply":
if conv.kind == "master" and str(
event.get("item_origin") or ""
).startswith("сид"):
if str(event.get("item_origin") or "").startswith("сид"):
return
await self._on_reply(conv, event)
case "say":
+6
View File
@@ -459,6 +459,12 @@ async def test_commands_status_merge_and_new(stack: Stack) -> None:
frontend="telegram", external_id=f"{USER}/902"
)
assert child is not None and child.title == "отчёт"
await stack.world.settle(child, 1)
await asyncio.sleep(0.2)
assert all(m["thread"] != 902 for m in stack.bot.sent)
stack.bot.message("первое в новый топик", thread=902)
reply = await stack.until(lambda: stack.sent_with("первое в новый топик"), what="r")
assert reply["thread"] == 902
assert await stack.tg.mark_topic(child)
assert stack.bot.topics[-1] == "edit:902:✅ отчёт"