Skip to content

fix(voice): restrict stt pipeline reuse#1605

Open
rosetta-livekit-bot[bot] wants to merge 2 commits into
mainfrom
fix/restrict-stt-pipeline-reuse
Open

fix(voice): restrict stt pipeline reuse#1605
rosetta-livekit-bot[bot] wants to merge 2 commits into
mainfrom
fix/restrict-stt-pipeline-reuse

Conversation

@rosetta-livekit-bot
Copy link
Copy Markdown
Contributor

@rosetta-livekit-bot rosetta-livekit-bot Bot commented May 26, 2026

Summary

On agent handoff, _detach_reusable_resources reuses the STT pipeline when type(self.agent).stt_node is type(new_activity.agent).stt_node. That check passes whenever two agents share the same stt_node method object — including via a common base class — but the detached pipeline is a running generator bound to the old agent's self. The default Agent.stt_node is safe because it only reads self/activity at startup, before the yield loop. Any custom override that touches self.session or self.activity inside the loop will crash after handoff:

File "/code/ai_receptionist/logic/livekit_agents/base.py", line 1079, in stt_node
    self.session,
File ".../voice/agent.py", line 684, in session
    return self._get_activity_or_raise().session
File ".../voice/agent.py", line 382, in _get_activity_or_raise
    raise RuntimeError("no activity context found, the agent is not running")

Tighten the precondition to "both agents use Agent.stt_node directly." Custom overrides — even ones shared via inheritance — no longer trigger reuse, since we can't verify they're safe to keep iterating after their bound self loses its activity.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 26, 2026

🦋 Changeset detected

Latest commit: f7bbebf

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 33 packages
Name Type
@livekit/agents Patch
@livekit/agents-plugin-anam Patch
@livekit/agents-plugin-assemblyai Patch
@livekit/agents-plugin-baseten Patch
@livekit/agents-plugin-bey Patch
@livekit/agents-plugin-cartesia Patch
@livekit/agents-plugin-cerebras Patch
@livekit/agents-plugin-deepgram Patch
@livekit/agents-plugin-elevenlabs Patch
@livekit/agents-plugin-fishaudio Patch
@livekit/agents-plugin-google Patch
@livekit/agents-plugin-hedra Patch
@livekit/agents-plugin-hume Patch
@livekit/agents-plugin-inworld Patch
@livekit/agents-plugin-lemonslice Patch
@livekit/agents-plugin-liveavatar Patch
@livekit/agents-plugin-livekit Patch
@livekit/agents-plugin-minimax Patch
@livekit/agents-plugin-mistral Patch
@livekit/agents-plugin-mistralai Patch
@livekit/agents-plugin-neuphonic Patch
@livekit/agents-plugin-openai Patch
@livekit/agents-plugin-perplexity Patch
@livekit/agents-plugin-phonic Patch
@livekit/agents-plugin-resemble Patch
@livekit/agents-plugin-rime Patch
@livekit/agents-plugin-runway Patch
@livekit/agents-plugin-sarvam Patch
@livekit/agents-plugin-silero Patch
@livekit/agents-plugin-tavus Patch
@livekit/agents-plugins-test Patch
@livekit/agents-plugin-trugen Patch
@livekit/agents-plugin-xai Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

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.

0 participants