Bug Description
The Buzz platform adapter cannot deliver locally generated video files.
When Hermes produces an MP4 and routes it through the messaging gateway, the text response reaches Buzz successfully, but the attachment is replaced by:
⚠️ Couldn't deliver the video attachment.
The generated MP4 exists on the Hermes host, is readable, and is a valid video. The failure occurs before the Buzz CLI or relay receives an upload request, so both Buzz Desktop and Buzz iOS display the same fallback warning.
Steps to Reproduce
- Configure and run the native Hermes Buzz gateway.
- Pair a Buzz user with the Hermes profile.
- Send a Buzz DM requesting video generation.
- Have the agent produce a local MP4, resulting in a
MEDIA:<local-path>.mp4 response.
- Observe the Buzz conversation and Hermes gateway log.
Reproduced with an approximately 9 MB valid MP4.
Expected Behavior
Hermes should upload the local MP4 through the Buzz CLI and deliver it as an attachment to the originating Buzz conversation.
If Buzz does not support inline video playback, it should still be delivered as a downloadable file attachment.
Actual Behavior
The accompanying text is delivered, followed by:
⚠️ Couldn't deliver the video attachment.
The gateway log contains:
WARNING gateway.platforms.base: [Buzz] send_video fallback: native video send unavailable for /home//.hermes/profiles//cache/videos/video.mp4
No Buzz CLI upload is attempted.
Affected Component
Gateway (Telegram/Discord/Slack/WhatsApp)
Messaging Platform (if gateway-related)
No response
Debug Report
A public debug-report upload was not included because this installation contains private relay and profile configuration. A redacted local report can be supplied if needed.
Operating System
Ubuntu 26.04 LTS
Python Version
Python 3.11.15
Hermes Version
Hermes Agent v0.19.1 (2026.7.30) Local checkout: 6ecd335
Additional Logs / Traceback (optional)
Root Cause Analysis (optional)
gateway/platforms/base.py routes local video extensions such as .mp4 to:
adapter.send_video(
chat_id=chat_id,
video_path=media_path,
metadata=metadata,
)
The bundled plugins/platforms/buzz/adapter.py implements send() and send_image(), but does not override send_video().
The inherited BasePlatformAdapter.send_video() implementation therefore emits the fallback warning instead of invoking buzz messages send --file.
This is analogous to the missing local-image bridge addressed by PR #74999:
#74999
Proposed Fix (optional)
Add a BuzzAdapter.send_video() override that uploads an existing local video through the Buzz CLI's existing file path:
buzz messages send --channel <chat_id> --file <video_path> --content -
The implementation should:
- preserve caption and reply/thread metadata;
- return the existing
SendResult structure;
- retain the Base fallback for missing or invalid local paths;
- avoid exposing host filesystem paths in chat;
- add a regression test exercising the real
MEDIA: dispatcher path;
- verify MP4 delivery in Buzz Desktop and Buzz mobile.
Ideally, image and video uploads should share an internal Buzz file-upload helper after PR #74999 lands.
Are you willing to submit a PR for this?
Bug Description
The Buzz platform adapter cannot deliver locally generated video files.
When Hermes produces an MP4 and routes it through the messaging gateway, the text response reaches Buzz successfully, but the attachment is replaced by:
The generated MP4 exists on the Hermes host, is readable, and is a valid video. The failure occurs before the Buzz CLI or relay receives an upload request, so both Buzz Desktop and Buzz iOS display the same fallback warning.
Steps to Reproduce
MEDIA:<local-path>.mp4response.Reproduced with an approximately 9 MB valid MP4.
Expected Behavior
Hermes should upload the local MP4 through the Buzz CLI and deliver it as an attachment to the originating Buzz conversation.
If Buzz does not support inline video playback, it should still be delivered as a downloadable file attachment.
Actual Behavior
The accompanying text is delivered, followed by:
The gateway log contains:
WARNING gateway.platforms.base: [Buzz] send_video fallback: native video send unavailable for /home//.hermes/profiles//cache/videos/video.mp4
No Buzz CLI upload is attempted.
Affected Component
Gateway (Telegram/Discord/Slack/WhatsApp)
Messaging Platform (if gateway-related)
No response
Debug Report
Operating System
Ubuntu 26.04 LTS
Python Version
Python 3.11.15
Hermes Version
Hermes Agent v0.19.1 (2026.7.30) Local checkout: 6ecd335
Additional Logs / Traceback (optional)
Root Cause Analysis (optional)
gateway/platforms/base.pyroutes local video extensions such as.mp4to:The bundled
plugins/platforms/buzz/adapter.pyimplementssend()andsend_image(), but does not overridesend_video().The inherited
BasePlatformAdapter.send_video()implementation therefore emits the fallback warning instead of invokingbuzz messages send --file.This is analogous to the missing local-image bridge addressed by PR #74999:
#74999
Proposed Fix (optional)
Add a
BuzzAdapter.send_video()override that uploads an existing local video through the Buzz CLI's existing file path:The implementation should:
SendResultstructure;MEDIA:dispatcher path;Ideally, image and video uploads should share an internal Buzz file-upload helper after PR #74999 lands.
Are you willing to submit a PR for this?