From 39c626aa8e6c68bf22d060a014ec74285b160ef9 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Fri, 25 Aug 2023 09:29:19 -0400 Subject: [PATCH] fix: isEdited edge case where latest Message is not saved due to aborting too quickly --- api/app/clients/BaseClient.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/api/app/clients/BaseClient.js b/api/app/clients/BaseClient.js index ea1f9c0dab..ec4344bb46 100644 --- a/api/app/clients/BaseClient.js +++ b/api/app/clients/BaseClient.js @@ -412,8 +412,21 @@ class BaseClient { // depending on subclass implementation of handling messages // When this is an edit, all messages are already in currentMessages, both user and response if (isEdited) { - /* TODO: edge case where latest message doesn't exist */ - this.currentMessages[this.currentMessages.length - 1].text = generation; + let latestMessage = this.currentMessages[this.currentMessages.length - 1]; + if (!latestMessage) { + latestMessage = { + messageId: responseMessageId, + conversationId, + parentMessageId: userMessage.messageId, + isCreatedByUser: false, + model: this.modelOptions.model, + sender: this.sender, + text: generation, + }; + this.currentMessages.push(userMessage, latestMessage); + } else { + latestMessage.text = generation; + } } else { this.currentMessages.push(userMessage); }