-
-
Notifications
You must be signed in to change notification settings - Fork 80.3k
Telegram outbound replies leak/drop react/media directives instead of applying native reactions/GIFs #71140
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Type
Fields
No fields configured for issues without a type.
Summary
Telegram outbound delivery drops or leaks reaction / media directives instead of turning them into native Telegram behavior.
In live Telegram use, replies like:
[[react_to_current:🔥]]MEDIA:/path/to/file.gifwere being rendered as literal text in chat or partially dropped, even though the Telegram extension already has native support for:
setMessageReactionsendAnimationsendPhotoThis turned out to be a core outbound normalization + Telegram adapter gap, not a local config problem.
User-visible symptoms
[[react_to_current:🔥]]leaked into Telegram instead of applying a reactionMEDIA:lines leaked into Telegram as plain text in some pathsreply missing text/media)Root cause
There were three related gaps:
[[react...]]/[[react_to_current:...]]into structured channel datachannelData.telegram.reactioninsendPayloadSource areas involved
Likely source files:
src/auto-reply/reply/reply-directives.tssrc/infra/outbound/payloads.tsextensions/telegram/src/bot/delivery.replies.tsextensions/telegram/src/outbound-adapter.tsWorking fix outline
A local hotfix against the installed build worked in live Telegram and should be ported cleanly to source:
1) Parse reaction directives during reply normalization
[[react:...]]and[[react_to_current:...]]channelData.telegram.reaction2) Allow reaction-only Telegram replies
channelData.telegram.reaction, do not reject itreplyToId3) Execute reaction channelData in outbound adapter
sendTelegramPayloadMessages(...), readchannelData.telegram.reactionreactMessageTelegram(...)whenreplyToMessageIdis presentValidation performed
Confirmed in a live Telegram chat after patching the installed package:
[[react_to_current:🔥]]plusMEDIA:<gif>worked correctly in the real chatWhy this matters
This is not just a Telegram UX paper cut. It breaks a cross-surface control-directive contract:
That makes reaction/GIF behavior unreliable and discourages use of otherwise-supported features.
Suggested acceptance criteria
[[react_to_current:🔥]]in a Telegram reply applies a native Telegram reaction, not visible textsendPayloadhonorschannelData.telegram.reaction