improve reply-tag parsing with current message fallback and outbound reply metadata

This commit is contained in:
DBT
2026-02-23 17:13:29 +00:00
parent 9f802b2dcf
commit 583a0667ca
2 changed files with 5 additions and 2 deletions

View File

@@ -205,7 +205,7 @@ func (al *AgentLoop) Run(ctx context.Context) error {
if shouldDropNoReply(response) {
suppressed = true
} else {
clean, replyToID := parseReplyTag(response)
clean, replyToID := parseReplyTag(response, msg.Metadata["message_id"])
if al.shouldSuppressOutbound(msg, clean) {
suppressed = true
} else {
@@ -931,7 +931,7 @@ func shouldDropNoReply(text string) bool {
return strings.EqualFold(t, "NO_REPLY")
}
func parseReplyTag(text string) (content string, replyToID string) {
func parseReplyTag(text string, currentMessageID string) (content string, replyToID string) {
t := strings.TrimSpace(text)
if !strings.HasPrefix(t, "[[") {
return text, ""
@@ -946,6 +946,8 @@ func parseReplyTag(text string) (content string, replyToID string) {
content = strings.TrimSpace(t[end+2:])
if strings.HasPrefix(tag, "reply_to:") {
replyToID = strings.TrimSpace(rawTag[len("reply_to:"):])
} else if strings.HasPrefix(tag, "reply_to_current") {
replyToID = strings.TrimSpace(currentMessageID)
}
return content, replyToID
}

View File

@@ -289,6 +289,7 @@ func (c *TelegramChannel) Send(ctx context.Context, msg bus.OutboundMessage) err
if markup != nil {
sendParams.WithReplyMarkup(markup)
}
_ = strings.TrimSpace(msg.ReplyToID) // reserved for provider-level reply threading support
sendCtx, cancelSend := withTelegramAPITimeout(ctx)
_, err = c.bot.SendMessage(sendCtx, sendParams)