fix: convertir Markdown a HTML de Telegram antes de enviar mensajes del agente

El bot manda mensajes con parse_mode=HTML, pero la IA responde en Markdown
(##, **negrita**, listas con "-", separadores ---), que Telegram no
interpreta — salía todo literal con los símbolos. Ahora FormatearParaTelegram
convierte el Markdown a las etiquetas que Telegram sí soporta (b, code, pre,
a) justo antes de enviar, escapando cualquier < > & literal para que
sendMessage tampoco falle por HTML inválido. Se ajustó el único lugar que ya
armaba HTML a mano (/instancias) para que use el mismo formato Markdown y
pase por el mismo conversor. Incluye tests con el caso real reportado.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Lizandro GD
2026-08-03 02:26:42 +00:00
co-authored by Claude Sonnet 5
parent a0b2e9ae0a
commit 7b0e4b9b5c
4 changed files with 155 additions and 3 deletions
@@ -165,7 +165,7 @@ func TelegramAgentWebhook(c *fiber.Ctx) error {
func sendAgentReply(botToken string, chatID int64, text string) error {
svc := &services.TelegramService{BotToken: botToken}
return svc.SendMessage(chatID, text)
return svc.SendMessage(chatID, services.FormatearParaTelegram(text))
}
// ─── CRUD de chats autorizados ────────────────────────────────────────────────