The Telegram platform sends Markdown content by first converting it
to a small HTML subset and posting with parse_mode=HTML. When
Telegram rejects the HTML (typically with "can't parse entities:
..."), the platform silently retries the request with parse_mode=""
and the original Markdown text — which means the user sees literal
**bold** and # heading characters in the IM with no indication of
why or which message triggered the fallback.
This change upgrades the four send-path fallbacks and the one
edit-path fallback from slog.Debug (or no log at all) to slog.Warn,
with the underlying Telegram error and a 200-char prefix of the
rejected HTML included as structured fields. Operators can now
diagnose specific HTML-rendering failures by tailing logs at the
default level instead of having to enable debug logging system-wide.
Each warning carries a "method" tag so the originating code path is
unambiguous when a single message goes through multiple sites
(e.g. SendPreviewStart followed by repeated UpdateMessage).
No behavior change for users; same plain-text fallback, just visible.
No new dependencies, no test changes (the fallback path is exercised
only by live Telegram API rejections).
Touched send/edit sites: Reply, Send, SendWithButtons,
SendPreviewStart, UpdateMessage.
Generated with [Devin](https://cli.devin.ai/docs)
Co-authored-by: youngshook <youngshook@users.noreply.github.com>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>