Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions gateway/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -2611,6 +2611,18 @@ async def _handle_message(self, event: MessageEvent) -> Optional[str]:
merge_pending_message_event(adapter._pending_messages, _quick_key, event)
return None

# Voice/audio messages need STT transcription before the agent
# can act on them. Transcription only runs inside
# _handle_message_with_agent, so interrupting the running agent
# with event.text (which is empty pre-transcription) causes a
# hang. Queue them like photos instead.
if event.message_type in (MessageType.VOICE, MessageType.AUDIO):
logger.debug("PRIORITY voice follow-up for session %s — queueing without interrupt", _quick_key[:20])
adapter = self.adapters.get(source.platform)
if adapter:
merge_pending_message_event(adapter._pending_messages, _quick_key, event)
return None

running_agent = self._running_agents.get(_quick_key)
if running_agent is _AGENT_PENDING_SENTINEL:
# Agent is being set up but not ready yet.
Expand Down