Skip to content

(realtime capabilities): add support for native transcript synchronization#1329

Open
tinalenguyen wants to merge 12 commits intomainfrom
tina/rt-sync-transcript-capability
Open

(realtime capabilities): add support for native transcript synchronization#1329
tinalenguyen wants to merge 12 commits intomainfrom
tina/rt-sync-transcript-capability

Conversation

@tinalenguyen
Copy link
Copy Markdown
Member

No description provided.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 28, 2026

🦋 Changeset detected

Latest commit: 985a136

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

This PR includes changesets to release 28 packages
Name Type
@livekit/agents-plugin-phonic Patch
@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-google Patch
@livekit/agents-plugin-hedra 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-neuphonic Patch
@livekit/agents-plugin-openai 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-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

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@tinalenguyen tinalenguyen force-pushed the tina/rt-sync-transcript-capability branch from 4168cea to 7eae6c7 Compare April 29, 2026 21:58
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

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 found 1 new potential issue.

View 25 additional findings in Devin Review.

Open in Devin Review

Comment on lines 547 to 548
if (this.options.enabled === value) {
return;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 TranscriptionSynchronizer.enabled setter treats undefined and false as different, causing unnecessary segment rotation

When the TranscriptionSynchronizer is constructed without native sync (the default), this.options.enabled is undefined. When onConversationItemAdded fires for an agent handoff to another non-native-sync model, this.transcriptionSynchronizer.enabled = false is called (room_io/room_io.ts:286). The setter at line 547 compares this.options.enabled === valueundefined === falsefalse, so it falls through and triggers a rotateSegment(). This rotation closes the current SegmentSynchronizerImpl (which force-closes the word stream at synchronizer.ts:476) and creates a new one with identical sync behavior (!false = true is functionally equivalent to !undefined = true). If the rotation interrupts an active synchronization segment (text buffered in the word stream but not yet forwarded), words can be silently dropped.

Suggested change
if (this.options.enabled === value) {
return;
if (!!this.options.enabled === value) {
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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