feat(telegram): support copy text buttons - #69153
Conversation
Duplicate/superseding iteration of still-open #59445: it keeps the same Telegram CopyTextButton marker feature on a clean branch. Maintainers can retain the preferred branch and close the other. |
|
Thanks for the focused Telegram implementation and overflow/fallback coverage. Problems
Suggested changes
Automated hermes-sweeper review. |
SummaryThree PRs address Telegram copy-text buttons: #59443 introduced the marker-based implementation but mixed in Codex telemetry, #59445 repeated it with additional unrelated network work and incomplete overflow handling, and #69153 isolates the Telegram change and fixes overflow/fallback delivery within the adapter. The current #69153 diff still does not apply marker extraction or reply markup to standalone Telegram sends through Related pull requests
Duplicates#59443, #59445, and #69153 implement substantially the same Suggested consolidationKeep #69153 open with a salvage path: reuse its marker parser and markup construction in Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
subgraph Dup59443 ["PRs duplicating each other"]
P59443["PR #59443 (closed)"]
P59445["PR #59445 (open)"]
P69153["PR #69153 (open)"]
end
class P59443 closed
class P59445 open
class P69153 open
class P69153 target
click P59443 "https://github.com/NousResearch/hermes-agent/pull/59443"
click P59445 "https://github.com/NousResearch/hermes-agent/pull/59445"
click P69153 "https://github.com/NousResearch/hermes-agent/pull/69153"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 3 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 198 kB of PR diffs, 3 kB of issue/PR text, 3 kB of discussion (4 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Summary
COPY_BUTTON: label | textmarkers that render as Bot APICopyTextButtoninline keyboard buttonsCopyTextButtonis unavailableReplaces #59445 with a clean Telegram-only branch from current
main. The unrelated Codex usage, credential telemetry, and network circuit-breaker commits are intentionally excluded.Test Plan
reply_markupuv run --with pytest --with pytest-asyncio --extra messaging python -m pytest tests/gateway/test_telegram_copy_buttons.py tests/gateway/test_telegram_clarify_buttons.py tests/gateway/test_telegram_rich_messages.py tests/gateway/test_telegram_thread_fallback.py tests/gateway/test_telegram_overflow_partial.py -q -o 'addopts='— 148 passeduv run --extra dev ruff check plugins/platforms/telegram/adapter.py tests/gateway/test_telegram_copy_buttons.pyuv run --extra messaging python -m py_compile plugins/platforms/telegram/adapter.py tests/gateway/test_telegram_copy_buttons.pygit diff --check