# NousResearch/hermes-agent · Telegram tables flattened to bullets in final rich messages

## Open now

- 1 issue, 2 PRs open on GitHub.
- #46515: Telegram: sendRichMessageDraft works but final message falls back to MarkdownV2 (expect_edits kills rich path)
- PR #45327: fix(telegram): preserve pipe tables on rich-message and standalone send paths
- PR #46536: fix(gateway): omit expect_edits on finalize so Telegram uses sendRichMessage

Members mostly concern Telegram messages where a streaming draft or preview shows a table, but the final send reportedly falls back to MarkdownV2 or converts pipe tables to bullet lists. Several are issue reports and several are proposed fixes touching rich-message sends, expect_edits handling, and table formatting, though the exact cause is described differently across them.

## TL;DR

- 10 member(s): 1 open issue(s), 4 closed issue(s), 2 open PR(s), 0 merged PR(s), 3 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_PARTIAL`): some members are connected by structural evidence (shared changed files, or a closing/superseded reference); the rest are joined by an automated relevance judgement over their text.
- Members outside that structural core may belong to a different underlying problem.
- Pairwise link density `0.15`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #46515: Telegram: sendRichMessageDraft works but final message falls back to MarkdownV2 (expect_edits kills rich path)

## Closed / duplicate issues

- #45323: \[Bug\]: Telegram rich tables are rewritten into bullets by the shared formatter
- #46540: \[Bug\]: Draft streaming — final message falls back to MarkdownV2 instead of Rich Message
- #49137: rich_messages: true - streaming preview shows table but final sendMessage falls back to bullet list
- #49452: \[Telegram\] Markdown pipe tables converted to bullet lists in streaming finalization

## Prior & competing PRs

- **#45387: fix(gateway): preserve tables in rich Telegram sends and send_message (#45323)**. closed without merge · fix tier `suggested`
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#45327`, `#45323`
  - _suggested-tier fix detail withheld; re-request with `?tier=all` to include it._
- **#45327: fix(telegram): preserve pipe tables on rich-message and standalone send paths**. open
  - maintainer direction: category `implemented_elsewhere`; implication `superseded`; refs `5600105478ffde29d7566b45421b100eaa29c4ef`, `#45323`
  - files: `gateway/platforms/telegram.py`, `tests/gateway/test_telegram_format.py`, `tools/send_message_tool.py`
- **#46536: fix(gateway): omit expect_edits on finalize so Telegram uses sendRichMessage**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `gateway/stream_consumer.py`, `tests/gateway/test_stream_consumer_draft.py`
- **#49850: fix(telegram): replace table-to-bullet conversion with monospaced code block**. closed without merge
  - maintainer direction: category `silent_close`; implication `active`
- **#62715: fix: ensure rich messages are used for final messages when notify=true (#49137)**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`

## Fix status

- No merged fix on record.
- Subsystem: `gateway`
