Summary
Discord voice replies lose their reply anchor. GatewayRunner passes the source message ID to DiscordAdapter.send_voice(reply_to=...), and the adapter accepts that argument, but neither the native voice-message REST payload nor the file-attachment fallback includes a message reference.
Reproduction
- Call
send_voice(channel_id, audio_path, reply_to="99") for an existing Discord message.
- Inspect the native
/channels/{channel_id}/messages payload_json.
- Force the native request to fail and inspect the fallback
channel.send() call.
Current behavior:
payload_json has voice flags and attachment metadata but no message_reference.
- fallback calls
channel.send(file=file) without reference.
The voice response is posted as an unthreaded channel message.
Expected behavior
When reply mode is enabled and the target can be resolved, native and fallback voice sends should preserve the same reply reference as text sends. Reply mode off and unavailable targets should continue to send without a reference.
Summary
Discord voice replies lose their reply anchor.
GatewayRunnerpasses the source message ID toDiscordAdapter.send_voice(reply_to=...), and the adapter accepts that argument, but neither the native voice-message REST payload nor the file-attachment fallback includes a message reference.Reproduction
send_voice(channel_id, audio_path, reply_to="99")for an existing Discord message./channels/{channel_id}/messagespayload_json.channel.send()call.Current behavior:
payload_jsonhas voice flags and attachment metadata but nomessage_reference.channel.send(file=file)withoutreference.The voice response is posted as an unthreaded channel message.
Expected behavior
When reply mode is enabled and the target can be resolved, native and fallback voice sends should preserve the same reply reference as text sends. Reply mode
offand unavailable targets should continue to send without a reference.