({ text }: { rendered?: string; text?: string })
| 653 | } |
| 654 | |
| 655 | recordMessageDelta({ text }: { rendered?: string; text?: string }) { |
| 656 | if (this.interrupted || !text) { |
| 657 | return |
| 658 | } |
| 659 | |
| 660 | this.pruneTransient() |
| 661 | this.endReasoningPhase() |
| 662 | |
| 663 | // Always accumulate the raw text delta. The pre-#16391 path replaced |
| 664 | // the entire buffer with `rendered` (an *incremental* Rich ANSI |
| 665 | // fragment), which on every tick discarded everything streamed so far |
| 666 | // — visible as overlapping coloured text and lost prose under |
| 667 | // `display.final_response_markdown: render`. |
| 668 | this.bufRef += text |
| 669 | |
| 670 | if (getUiState().streaming) { |
| 671 | this.scheduleStreaming() |
| 672 | } |
| 673 | } |
| 674 | |
| 675 | recordReasoningAvailable(text: string, force = false) { |
| 676 | if (this.interrupted || (!force && !getUiState().showReasoning)) { |
no test coverage detected