Run parsing at least once before rendering reasoning DOM on continue

This commit is contained in:
Cohee
2025-03-09 16:08:29 +02:00
parent 96d79ac4e9
commit c03da65821

View File

@@ -3204,13 +3204,21 @@ class StreamingProcessor {
this.promptReasoning = promptReasoning;
}
#checkDomElements(messageId) {
/**
* Initializes DOM elements for the current message.
* @param {number} messageId Current message ID
* @param {boolean?} continueOnReasoning If continuing on reasoning
*/
async #checkDomElements(messageId, continueOnReasoning = null) {
if (this.messageDom === null || this.messageTextDom === null) {
this.messageDom = document.querySelector(`#chat .mes[mesid="${messageId}"]`);
this.messageTextDom = this.messageDom?.querySelector('.mes_text');
this.messageTimerDom = this.messageDom?.querySelector('.mes_timer');
this.messageTokenCounterDom = this.messageDom?.querySelector('.tokenCounterDisplay');
}
if (continueOnReasoning) {
await this.reasoningHandler.process(messageId, false, this.promptReasoning);
}
this.reasoningHandler.updateDom(messageId);
}
@@ -3230,7 +3238,8 @@ class StreamingProcessor {
}
async onStartStreaming(text) {
if (this.type === 'continue' && this.promptReasoning.prefixReasoning) {
const continueOnReasoning = !!(this.type === 'continue' && this.promptReasoning.prefixReasoning);
if (continueOnReasoning) {
this.reasoningHandler.initContinue(this.promptReasoning);
}
@@ -3242,7 +3251,7 @@ class StreamingProcessor {
} else {
await saveReply(this.type, text, true, '', [], '');
messageId = chat.length - 1;
this.#checkDomElements(messageId);
await this.#checkDomElements(messageId, continueOnReasoning);
this.markUIGenStarted();
}
hideSwipeButtons();
@@ -3275,7 +3284,7 @@ class StreamingProcessor {
this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true }));
} else {
const mesChanged = chat[messageId]['mes'] !== processedText;
this.#checkDomElements(messageId);
await this.#checkDomElements(messageId);
this.#updateMessageBlockVisibility();
const currentTime = new Date();
chat[messageId]['mes'] = processedText;