Refs: #311088
Complexity: 3
Context
Our current markdown rendering approach is an innate 50ms render loop to achieve a type-writer effect. With new reasoning models, this can sometimes look a bit awkward as there are long pauses and the animation itself can be jumpy while partially rendering content like LaTeX.
So the goal here is to modernize our rendering strategy with these outcomes:
- See if we can improve actual rendering performance by rendering as things come in and buffering it based on preference (no buffer is the most efficient, since number of renders would just be how may token stream events we have)
- See if we can improve the perception of performance by offering more options and allowing for longer animations (50ms render loop effectively kills the possibility of any longer animation).
Test Steps
- Enable the
chat.experimental.incrementalRendering.enabled setting
- Render long segments of markdown (some sample prompts below)
give a long dissertation about code, with code blocks interleaved
write a paragraph about coding, then call the terminal to sleep for 2s, then repeat this 3 times
- Or, you could just try to use this along with your regular long-running tasks :)
- Make sure you try this across different thinking levels / models. E.g., the animation should be smooth for haiku, sonnet and opus models.
- Make sure you try different settings; compare with the setting disabled, and try different animations, buffer modes to find what feels the most performant/speedy to you. Subjective opinions would be great to hear here.
Refs: #311088
Complexity: 3
Context
Our current markdown rendering approach is an innate 50ms render loop to achieve a type-writer effect. With new reasoning models, this can sometimes look a bit awkward as there are long pauses and the animation itself can be jumpy while partially rendering content like LaTeX.
So the goal here is to modernize our rendering strategy with these outcomes:
Test Steps
chat.experimental.incrementalRendering.enabledsettinggive a long dissertation about code, with code blocks interleavedwrite a paragraph about coding, then call the terminal to sleep for 2s, then repeat this 3 times