Skip to content

Track Weixin native voice-bubble delivery for Hermes hosted audio replies #10

@Sapientropic

Description

@Sapientropic

Summary

Track whether Codeksei + Hermes can eventually deliver Weixin audio replies as native voice bubbles instead of ordinary file attachments.

This is not just a transport detail. For companion-style interactions, a Weixin voice bubble feels much more alive and conversational; a downloadable file attachment is usable, but it has a colder, more mechanical UX.

Current status as of 2026-04-21

Native outbound Weixin voice bubbles should be treated as not solved.

The strongest public repro is still:

  • text delivery works
  • file attachment delivery works
  • real .silk conversion works
  • sending the resulting .silk through outbound voice_item / native voice payload is rejected or dropped

Specific evidence:

  • NousResearch/hermes-agent#9971 remains open. The 2026-04-16 repro reports that real .silk + voice_item still returns {"ret": -2} from ilink/bot/sendmessage across multiple payload variants.
  • NousResearch/hermes-agent#11571 was merged as a partial fix, but it deliberately routes Weixin send_voice() to file attachments. The PR text says full voice-bubble TTS remains open.
  • Tencent/openclaw-weixin#18 remains open and includes evidence that a local outbound VOICE send path can report success while the WeChat client receives no voice bubble.
  • Tencent/openclaw-weixin#9 adds native outbound voice support, but it remains open and unmerged.
  • @tencent-weixin/openclaw-weixin@2.1.9 still does not expose a merged outbound sendVoiceMessageWeixin path in the published tarball. Its public README still describes sendMessage as text/image/video/file, and getUploadUrl as media types 1=IMAGE, 2=VIDEO, 3=FILE.

Why this matters for Codeksei

Codeksei's hosted Hermes flow can currently rely on audio file fallback for delivery, but that is not the desired companion UX.

For ADHD companion / check-in interactions, native voice bubbles are materially better because they:

  • feel like a normal Weixin conversation instead of a file transfer
  • reduce friction on mobile
  • make proactive or reassuring check-ins feel more human
  • better match the mental model of short spoken replies

So this deserves a dedicated tracking issue even if the current fallback is technically functional.

Current recommended behavior

Until upstream evidence changes:

  • Do not claim Weixin native outbound voice bubbles are supported.
  • Prefer reliable file attachment fallback for audio replies.
  • If Codeksei or Hermes has a native voice_item code path, keep it behind an explicit experiment / probe rather than enabling it by default.
  • Treat ret=-2 on sendmessage as a real delivery failure, not success.
  • Keep the distinction clear in docs and smoke output: “audio attachment works” is not the same as “native voice bubble works”.

Things to re-check before closing

Close this only after one of these becomes true:

  1. Tencent documents outbound voice_item support for personal Weixin iLink bots, including the exact required upload/send fields; and a real-device test confirms delivery as a native voice bubble.
  2. Tencent/openclaw-weixin merges and releases a working outbound voice path, and Codeksei/Hermes verifies it on current stable.
  3. Hermes adds a verified native Weixin voice-bubble path with real-device proof, not just unit tests that construct voice_item JSON.
  4. Tencent or maintainers explicitly confirm outbound native voice bubbles are unsupported for this bot API, and Codeksei records the fallback as a product limitation rather than a pending bug.

Follow-up checklist

  • Re-check NousResearch/hermes-agent#9971 for maintainer response or closure.
  • Re-check NousResearch/hermes-agent#11571 and any follow-up PRs after the file-attachment fallback.
  • Re-check Tencent/openclaw-weixin#18 and Tencent/openclaw-weixin#9.
  • Re-check the latest @tencent-weixin/openclaw-weixin npm tarball for a real sendVoiceMessageWeixin implementation.
  • If a native path appears, run a real-device smoke that confirms the Weixin client displays a voice bubble, not a file attachment.
  • Update Codeksei / Hermes hosted docs to say clearly which behavior is available.

Related tracking

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions