feat(telegram): send rich messages as rich html#93286
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 15, 2026, 8:44 AM ET / 12:44 UTC. Summary PR surface: Source +136, Tests +126, Docs 0. Total +262 across 16 files. Reproducibility: yes. for the review finding from source inspection and the Telegram Bot API rich-message contract; no live Telegram repro was run. The current-main Markdown path preserves Telegram parsing, while the PR turns table cells into escaped string-only HTML cells. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Preserve table-cell inline formatting through the IR-to-rich-HTML conversion or keep those tables on a rich Markdown path, then attach redacted Telegram Desktop or live bot proof before maintainer merge. Do we have a high-confidence way to reproduce the issue? Yes for the review finding from source inspection and the Telegram Bot API rich-message contract; no live Telegram repro was run. The current-main Markdown path preserves Telegram parsing, while the PR turns table cells into escaped string-only HTML cells. Is this the best way to solve the issue? No: the IR-to-rich-HTML direction is plausible for avoiding Rich Markdown sigil ambiguity, but this patch is not yet the best fix because it drops supported table-cell inline formatting and lacks real Telegram proof. The safer path is to preserve the full rich-table contract first, then prove the live output. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against a09f6b1b2787. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +136, Tests +126, Docs 0. Total +262 across 16 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Landed via squash onto main.
|
* feat(telegram): render rich messages through rich html * docs(telegram): teach agents rich formatting * fix(telegram): bound rich draft payloads (openclaw#93286) * fix(telegram): narrow rich draft payload type (openclaw#93286) * fix(telegram): preserve rich table cell formatting (openclaw#93286) * fix(telegram): honor rich table mode config (openclaw#93286) * fix(telegram): default rich markdown tables (openclaw#93286) * fix(telegram): gate rich table block mode (openclaw#93286) * fix(telegram): normalize raw rich html limits (openclaw#93286) * fix(telegram): preserve link preview suppression (openclaw#93286) * fix(telegram): preserve rich markdown headings (openclaw#93286) * fix(telegram): reject unsupported rich media sources (openclaw#93286) * fix(telegram): honor link preview off in rich chunks (openclaw#93286) * fix(telegram): avoid double escaping markdown media (openclaw#93286) * fix(telegram): render markdown media via placeholders (openclaw#93286) * fix(telegram): preserve table text in prompt context (openclaw#93286)
* feat(telegram): render rich messages through rich html * docs(telegram): teach agents rich formatting * fix(telegram): bound rich draft payloads (openclaw#93286) * fix(telegram): narrow rich draft payload type (openclaw#93286) * fix(telegram): preserve rich table cell formatting (openclaw#93286) * fix(telegram): honor rich table mode config (openclaw#93286) * fix(telegram): default rich markdown tables (openclaw#93286) * fix(telegram): gate rich table block mode (openclaw#93286) * fix(telegram): normalize raw rich html limits (openclaw#93286) * fix(telegram): preserve link preview suppression (openclaw#93286) * fix(telegram): preserve rich markdown headings (openclaw#93286) * fix(telegram): reject unsupported rich media sources (openclaw#93286) * fix(telegram): honor link preview off in rich chunks (openclaw#93286) * fix(telegram): avoid double escaping markdown media (openclaw#93286) * fix(telegram): render markdown media via placeholders (openclaw#93286) * fix(telegram): preserve table text in prompt context (openclaw#93286)
* feat(telegram): render rich messages through rich html * docs(telegram): teach agents rich formatting * fix(telegram): bound rich draft payloads (openclaw#93286) * fix(telegram): narrow rich draft payload type (openclaw#93286) * fix(telegram): preserve rich table cell formatting (openclaw#93286) * fix(telegram): honor rich table mode config (openclaw#93286) * fix(telegram): default rich markdown tables (openclaw#93286) * fix(telegram): gate rich table block mode (openclaw#93286) * fix(telegram): normalize raw rich html limits (openclaw#93286) * fix(telegram): preserve link preview suppression (openclaw#93286) * fix(telegram): preserve rich markdown headings (openclaw#93286) * fix(telegram): reject unsupported rich media sources (openclaw#93286) * fix(telegram): honor link preview off in rich chunks (openclaw#93286) * fix(telegram): avoid double escaping markdown media (openclaw#93286) * fix(telegram): render markdown media via placeholders (openclaw#93286) * fix(telegram): preserve table text in prompt context (openclaw#93286)
Summary
Proof