feat(telegram): treat a reply to the bot as a mention - #834
Open
grootbro wants to merge 2 commits into
Open
Conversation
Thread.reply() threw NotImplementedError on Telegram because the adapter had no reply method, even though the Bot API threads an answer to its question with reply_parameters. postMessage takes an optional reply target and passes it to every send path — text, rich messages, documents, attachments and both media group variants — and reply() delegates to it, matching how the WhatsApp adapter implements the same contract. The target is decoded through the existing decodeCompositeMessageId, so a target from another chat is rejected the same way an edit would be. allow_sending_without_reply is set so a deleted target degrades to an unthreaded message instead of failing the send. Signed-off-by: grootbro <vadim@ravefox.dev>
In a group a Telegram bot only sees messages that address it, and users address a bot by replying to it as often as by typing its handle. The adapter reported isMention for the handle but not for the reply, so a bot went quiet the moment the conversation moved to replies. mentionOnReply turns that on. It is off by default: the flag changes which messages report isMention, and a bot that deliberately answers only explicit mentions should keep the stricter behaviour. It also reads from TELEGRAM_MENTION_ON_REPLY so a deployment can set it without code. The check runs before the empty-text guard, so a reply carrying only a photo or a document counts too. Signed-off-by: grootbro <vadim@ravefox.dev>
Contributor
|
@grootbro is attempting to deploy a commit to the Vercel Team on Vercel. A member of the Team first needs to authorize it. |
Comment on lines
+2476
to
+2482
| const urlReplyParameters = this.buildReplyParameters( | ||
| replyToMessageId, | ||
| thread.chatId | ||
| ); | ||
| if (urlReplyParameters) { | ||
| payload.reply_parameters = urlReplyParameters; | ||
| } |
Contributor
There was a problem hiding this comment.
Suggested change
| const urlReplyParameters = this.buildReplyParameters( | |
| replyToMessageId, | |
| thread.chatId | |
| ); | |
| if (urlReplyParameters) { | |
| payload.reply_parameters = urlReplyParameters; | |
| } | |
| } | |
| const urlReplyParameters = this.buildReplyParameters( | |
| replyToMessageId, | |
| thread.chatId | |
| ); | |
| if (urlReplyParameters) { | |
| payload.reply_parameters = urlReplyParameters; |
URL-attachment branch of sendAttachment only sets reply_parameters when replyMarkup is present, dropping reply threading for plain URL attachments.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on #833.
In a group a bot only sees messages that address it, and people address a bot by replying to it as often as by typing its handle. The adapter reported
isMentionfor the handle but not for the reply, so a bot went quiet the moment the conversation moved to replies.mentionOnReplyturns that on. Off by default — the flag changes which messages reportisMention, and a bot that deliberately answers only explicit mentions should keep the stricter behaviour. It also readsTELEGRAM_MENTION_ON_REPLY, so a deployment can set it without code, and the key is declared in the adapters catalog.The check runs before the empty-text guard, so a reply carrying only a photo or a document counts too.