Skip to content

fix(cron): deliver media files via live adapter#5679

Closed
0xbyt4 wants to merge 1 commit into
NousResearch:mainfrom
0xbyt4:fix/cron-live-adapter-media-delivery
Closed

fix(cron): deliver media files via live adapter#5679
0xbyt4 wants to merge 1 commit into
NousResearch:mainfrom
0xbyt4:fix/cron-live-adapter-media-delivery

Conversation

@0xbyt4

@0xbyt4 0xbyt4 commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Live adapter path in _deliver_result() had two bugs:

    1. Sent raw delivery_content (with MEDIA: tags) instead of cleaned_delivery_content — users saw raw tags like MEDIA:/tmp/voice.ogg in messages
    2. Extracted media_files were silently discarded — adapter.send() only accepts text, so attachments were lost
  • Standalone fallback path already handled both correctly (line 271), so this only affected cron delivery when the gateway was running with live adapters

  • Fix sends cleaned text via adapter.send(), then delivers media through the adapter's typed methods (send_voice, send_image_file, send_video, send_document) — same pattern already used in _deliver_media_from_response() for streaming

  • Fully backward compatible: without media, behavior is identical to before. If media delivery fails, text is already sent and errors are logged without crashing

Test plan

  • Unit tests for _deliver_media_via_adapter: audio/image/video/document routing, multi-file delivery, single failure isolation
  • Integration tests: live adapter receives cleaned content (no MEDIA tags), media helper called with extracted files
  • Text-only delivery: no media helper invocation
  • All 51 existing scheduler tests pass

…ropping them

Two bugs in _deliver_result() live adapter path:

1. Used raw delivery_content (with MEDIA: tags) instead of
   cleaned_delivery_content, exposing raw tags to users
2. Extracted media_files were never sent — adapter.send() only
   accepts text, so files were silently lost after return

Fix: send cleaned text via adapter.send(), then deliver extracted
media through adapter's typed methods (send_voice, send_image_file,
send_video, send_document) matching the pattern already used in
_deliver_media_from_response() for streaming.
teknium1 added a commit that referenced this pull request Apr 7, 2026
…failure isolation

Adapted from PR #5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
teknium1 added a commit that referenced this pull request Apr 7, 2026
…failure isolation

Adapted from PR #5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
@teknium1

teknium1 commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Merged via PR #5921 using #5909's implementation with additional unit tests adapted from your PR (video routing, document fallback, multi-file, failure isolation). Both contributors credited. Your PR was submitted first — thanks @0xbyt4!

Tommyeds pushed a commit to Tommyeds/hermes-agent that referenced this pull request Apr 12, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 27, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 28, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…failure isolation

Adapted from PR NousResearch#5679 (0xbyt4) to cover edge cases not in the integration tests:
video routing, unknown extension fallback to send_document, multi-file delivery,
and single-failure isolation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants