Run parsing at least once before rendering reasoning DOM on continue

c03da65821d729014858a4478b1f1e290fd643b3

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +13 -4Showing whitespace changes
public/script.js+13 -4
@@ -3204,13 +3204,21 @@ class StreamingProcessor {
32043204 this.promptReasoning = promptReasoning;
32053205 }
32063206
3207- #checkDomElements(messageId) {
3207+ /**
3208+ * Initializes DOM elements for the current message.
3209+ * @param {number} messageId Current message ID
3210+ * @param {boolean?} continueOnReasoning If continuing on reasoning
3211+ */
3212+ async #checkDomElements(messageId, continueOnReasoning = null) {
32083213 if (this.messageDom === null || this.messageTextDom === null) {
32093214 this.messageDom = document.querySelector(`#chat .mes[mesid="${messageId}"]`);
32103215 this.messageTextDom = this.messageDom?.querySelector('.mes_text');
32113216 this.messageTimerDom = this.messageDom?.querySelector('.mes_timer');
32123217 this.messageTokenCounterDom = this.messageDom?.querySelector('.tokenCounterDisplay');
32133218 }
3219+ if (continueOnReasoning) {
3220+ await this.reasoningHandler.process(messageId, false, this.promptReasoning);
3221+ }
32143222 this.reasoningHandler.updateDom(messageId);
32153223 }
32163224
@@ -3230,7 +3238,8 @@ class StreamingProcessor {
32303238 }
32313239
32323240 async onStartStreaming(text) {
32333241 ifconst continueOnReasoning = !!(this.type === 'continue' && this.promptReasoning.prefixReasoning) {;
3242+ if (continueOnReasoning) {
32343243 this.reasoningHandler.initContinue(this.promptReasoning);
32353244 }
32363245
@@ -3242,7 +3251,7 @@ class StreamingProcessor {
32423251 } else {
32433252 await saveReply(this.type, text, true, '', [], '');
32443253 messageId = chat.length - 1;
32453254 await this.#checkDomElements(messageId, continueOnReasoning);
32463255 this.markUIGenStarted();
32473256 }
32483257 hideSwipeButtons();
@@ -3275,7 +3284,7 @@ class StreamingProcessor {
32753284 this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true }));
32763285 } else {
32773286 const mesChanged = chat[messageId]['mes'] !== processedText;
32783287 await this.#checkDomElements(messageId);
32793288 this.#updateMessageBlockVisibility();
32803289 const currentTime = new Date();
32813290 chat[messageId]['mes'] = processedText;