♻️ 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

@ -4,14 +4,15 @@ import * as s from './schemas';
export default function createPayload(submission: t.TSubmission) {
const {
conversation,
userMessage,
endpointOption,
isEdited,
userMessage,
isContinued,
isTemporary,
ephemeralAgent,
isRegenerate,
conversation,
editedContent,
ephemeralAgent,
endpointOption,
} = submission;
const { conversationId } = s.tConvoUpdateSchema.parse(conversation);
const { endpoint: _e, endpointType } = endpointOption as {
@ -31,11 +32,12 @@ export default function createPayload(submission: t.TSubmission) {
...userMessage,
...endpointOption,
endpoint,
ephemeralAgent: s.isAssistantsEndpoint(endpoint) ? undefined : ephemeralAgent,
isContinued: !!(isEdited && isContinued),
conversationId,
isTemporary,
isRegenerate,
editedContent,
conversationId,
isContinued: !!(isEdited && isContinued),
ephemeralAgent: s.isAssistantsEndpoint(endpoint) ? undefined : ephemeralAgent,
};
return { server, payload };

View file

@ -105,6 +105,7 @@ export type TEphemeralAgent = {
export type TPayload = Partial<TMessage> &
Partial<TEndpointOption> & {
isContinued: boolean;
isRegenerate?: boolean;
conversationId: string | null;
messages?: TMessages;
isTemporary: boolean;
@ -125,7 +126,6 @@ export type TSubmission = {
isTemporary: boolean;
messages: TMessage[];
isRegenerate?: boolean;
isResubmission?: boolean;
initialResponse?: TMessage;
conversation: Partial<TConversation>;
endpointOption: TEndpointOption;