hermes-agent/gateway/platforms
Teknium 3705625b74
feat(gateway): render terminal commands as bare fenced code blocks in chat (#42576)
Terminal tool progress on markdown-capable gateways (Telegram, Slack,
Discord, WhatsApp, Matrix, Weixin, Feishu) renders the full command in a
fenced code block again, in all/new AND verbose modes — gated on the
adapter's supports_code_blocks capability. Plain-text platforms keep the
short truncated preview.

No language tag is emitted: Slack mrkdwn renders a '```bash' fence with
'bash' as a literal first code line, so a bare '```' fence is used, which
renders correctly on every platform that supports blocks.

This restores the #41215 feature (removed in #41950 due to the command
showing in group chats) as the default. For a personal assistant the
command display is desired; the group-chat concern is a preference, not a
vulnerability.
2026-06-08 21:19:05 -07:00
..
qqbot fix(qqbot): stop 100% CPU spin when WebSocket is closed but not None (#31193, #31771) (#40574) 2026-06-06 18:44:44 -07:00
ADDING_A_PLATFORM.md
…
__init__.py
…
_http_client_limits.py
…
api_server.py fix(api-server): bind request session context for tools 2026-06-08 20:52:08 -07:00
base.py feat(gateway): render terminal commands as bare fenced code blocks in chat (#42576) 2026-06-08 21:19:05 -07:00
bluebubbles.py refactor(bluebubbles): simplify mention-gating helpers 2026-06-01 18:52:05 -07:00
dingtalk.py fix(dingtalk): finalize open streaming cards before disconnect 2026-05-23 20:48:56 -07:00
email.py
…
feishu.py feat(gateway): render terminal tool calls as native bash code blocks on markdown platforms (#41215) 2026-06-07 17:29:55 -07:00
feishu_comment.py
…
feishu_comment_rules.py
…
feishu_meeting_invite.py refactor(feishu): slim meeting-invite parser; add AUTHOR_MAP entry 2026-06-04 06:15:23 -07:00
helpers.py fix(gateway): preserve underscores in plain-text identifiers 2026-05-16 23:11:43 -07:00
matrix.py feat(gateway): render terminal tool calls as native bash code blocks on markdown platforms (#41215) 2026-06-07 17:29:55 -07:00
msgraph_webhook.py fix(security): require source CIDR allowlisting for public msgraph webhook binds 2026-05-28 01:26:18 -07:00
signal.py Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
signal_rate_limit.py
…
slack.py fix(slack): align thread_ts check with is_thread_reply invariant (Copilot #15464) 2026-06-07 21:19:59 -07:00
sms.py fix(gateway): add trust_env=True to aiohttp sessions in SMS, Slack, Teams, Google Chat adapters 2026-05-16 23:11:43 -07:00
telegram.py fix(telegram): improve MarkdownV2 edit fallback and fix _strip_mdv2 bold handling 2026-06-08 15:53:16 -07:00
telegram_network.py fix(telegram): reset sticky fallback IP on connect failure, retry primary DNS 2026-05-18 22:14:45 -07:00
webhook.py feat(dashboard): complete admin panel — MCP catalog, enable/disable toggles, hook creation, system stats (#36736) 2026-06-02 00:16:11 -04:00
wecom.py fix(gateway): honor WECOM_ALLOWED_USERS in env-only WeCom DM allowlist 2026-06-01 19:20:36 -07:00
wecom_callback.py chore(wecom): make defusedxml dep acquireable and tolerant of absence 2026-05-25 23:30:43 -07:00
wecom_crypto.py
…
weixin.py fix(weixin): add rate-limit circuit breaker 2026-06-07 22:10:17 -07:00
whatsapp.py feat(gateway): render terminal tool calls as native bash code blocks on markdown platforms (#41215) 2026-06-07 17:29:55 -07:00
yuanbao.py fix(yuanbao): bound ws.close() so an idle server can't stall shutdown ~5s (#40607) 2026-06-07 17:49:38 -07:00
yuanbao_media.py
…
yuanbao_proto.py
…
yuanbao_sticker.py
…