From 02ecc4be271c49d66985f3c3c8ef31e476505e25 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Mon, 31 Aug 2026 14:53:18 -0700 Subject: [PATCH] fix(gateway): gate stream commentary reply-to on platforms that need it Discord interim commentary was replying to the user's trigger message on every update (66fa6e41c4 added reply_to unconditionally for Buzz). Discord uses native thread_id; only Buzz/Slack/Mattermost/Feishu need reply-to anchoring for threading. - Stream consumer _send_commentary checks adapter.platform.value - Passes reply_to only for buzz/slack/mattermost/feishu - Discord/Telegram commentary posts flat or threads via metadata --- gateway/stream_consumer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gateway/stream_consumer.py b/gateway/stream_consumer.py index 4fc33efd20..22aac6e8cc 100644 --- a/gateway/stream_consumer.py +++ b/gateway/stream_consumer.py @@ -2714,10 +2714,16 @@ class GatewayStreamConsumer: # duplicate (live finding, 2026-08-16 canary). _md = self._metadata_for_send(final=False) or {} _md["_interim_send"] = True + # Only pass reply_to for platforms that use reply-anchoring for + # threading. Discord/Telegram use native thread_id in metadata; + # passing reply_to on every commentary creates reply spam. + _plat = getattr(getattr(self.adapter, "platform", None), "value", None) + _platform_name = str(_plat or getattr(self.adapter, "name", "")).lower() + _needs_reply_anchor = _platform_name in ("buzz", "slack", "mattermost", "feishu") result = await self.adapter.send( chat_id=self.chat_id, content=text, - reply_to=self._initial_reply_to_id, + reply_to=self._initial_reply_to_id if _needs_reply_anchor else None, metadata=_md, ) # Note: do NOT set _already_sent = True here.