Skip to content

Conversation

@d3xvn
Copy link
Contributor

@d3xvn d3xvn commented Jan 30, 2026

Realtime LLMs (Gemini, OpenAI) emit transcripts word-by-word, which was causing each word to appear as a separate message in chat. This fix:

  • Tracks message IDs per user turn to reuse the same message
  • Accumulates transcript text intelligently (handles both delta and pre-accumulated formats from different providers)
  • Uses completed=False during streaming to allow message updates
  • Finalizes messages with completed=True when turns change

@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/realtime-transcript-accumulation

Tip

🧪 Unit Test Generation v2 is now available!

We have significantly improved our unit test generation capabilities.

To enable: Add this to your .coderabbit.yaml configuration:

reviews:
  finishing_touches:
    unit_tests:
      enabled: true

Try it out by using the @coderabbitai generate unit tests command on your code files or under ✨ Finishing Touches on the walkthrough!

Have feedback? Share your thoughts on our Discord thread!


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Realtime LLMs (Gemini, OpenAI) emit transcripts word-by-word, which was
causing each word to appear as a separate message in chat. This fix:

- Tracks message IDs per user turn to reuse the same message
- Accumulates transcript text intelligently (handles both delta and
  pre-accumulated formats from different providers)
- Uses completed=False during streaming to allow message updates
- Finalizes messages with completed=True when turns change

Adds comprehensive tests for transcript accumulation behavior.
@d3xvn d3xvn force-pushed the fix/realtime-transcript-accumulation branch from f3a0e9d to 8ab55cb Compare January 30, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant