♻️ fix: Correct Message ID Assignment Logic (#8439)

* fix: Add `isRegenerate` flag to chat payload to avoid saving temporary response IDs

* fix: Remove unused `isResubmission` flag

* ci: Add tests for responseMessageId regeneration logic in BaseClient
This commit is contained in:
Danny Avila 2025-07-14 00:57:20 -04:00 committed by GitHub
parent 170cc340d8
commit e370a87ebe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 61 additions and 15 deletions

View file

@ -345,9 +345,7 @@ export type TOptions = {
isContinued?: boolean;
isEdited?: boolean;
overrideMessages?: t.TMessage[];
/** This value is only true when the user submits a message with "Save & Submit" for a user-created message */
isResubmission?: boolean;
/** Currently only utilized when `isResubmission === true`, uses that message's currently attached files */
/** Currently only utilized when resubmitting user-created message, uses that message's currently attached files */
overrideFiles?: t.TMessage['files'];
};

View file

@ -60,7 +60,6 @@ const EditMessage = ({
conversationId,
},
{
isResubmission: true,
overrideFiles: message.files,
},
);

View file

@ -83,7 +83,6 @@ export default function useChatFunctions({
{
editedContent = null,
editedMessageId = null,
isResubmission = false,
isRegenerate = false,
isContinued = false,
isEdited = false,
@ -230,7 +229,10 @@ export default function useChatFunctions({
}
const responseMessageId =
editedMessageId ?? (latestMessage?.messageId ? latestMessage?.messageId + '_' : null) ?? null;
editedMessageId ??
(latestMessage?.messageId && isRegenerate ? latestMessage?.messageId + '_' : null) ??
null;
const initialResponse: TMessage = {
sender: responseSender,
text: '',
@ -307,7 +309,6 @@ export default function useChatFunctions({
isEdited: isEditOrContinue,
isContinued,
isRegenerate,
isResubmission,
initialResponse,
isTemporary,
ephemeralAgent,