mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
feat: implement edit_message() for Telegram/Discord/Slack and fix fallback regression
Building on PR #288's edit_message() abstraction: - Telegram: edit_message_text() with MarkdownV2 + plain text fallback - Discord: channel.fetch_message() + msg.edit() with length capping - Slack: chat_update() via slack_bolt client Also fixes the fallback regression in send_progress_messages() where platforms that don't support editing would receive duplicated accumulated tool lines. Now uses a can_edit flag — after the first failed edit, falls back to sending individual lines (matching pre-PR behavior).
This commit is contained in:
parent
5702eba93b
commit
1708dcd2b2
4 changed files with 91 additions and 15 deletions
|
|
@ -156,6 +156,25 @@ class SlackAdapter(BasePlatformAdapter):
|
|||
print(f"[Slack] Send error: {e}")
|
||||
return SendResult(success=False, error=str(e))
|
||||
|
||||
async def edit_message(
|
||||
self,
|
||||
chat_id: str,
|
||||
message_id: str,
|
||||
content: str,
|
||||
) -> SendResult:
|
||||
"""Edit a previously sent Slack message."""
|
||||
if not self._app:
|
||||
return SendResult(success=False, error="Not connected")
|
||||
try:
|
||||
await self._app.client.chat_update(
|
||||
channel=chat_id,
|
||||
ts=message_id,
|
||||
text=content,
|
||||
)
|
||||
return SendResult(success=True, message_id=message_id)
|
||||
except Exception as e:
|
||||
return SendResult(success=False, error=str(e))
|
||||
|
||||
async def send_typing(self, chat_id: str) -> None:
|
||||
"""Slack doesn't have a direct typing indicator API for bots."""
|
||||
pass
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue