📢 fix: Invalid engineTTS and Conversation State on Navigation (#6904)

* fix: handle invalid engineTTS values and prevent VoiceDropdown render errors

* refactor: add verbose developer logging for debugging conversation state issues

* refactor: remove unnecessary effect for conversationId changes

* chore: imports

* fix: include model and entity IDs in conversation query selection

* feat: add fetchFreshData function to retrieve conversation data on navigation

* fix: remove unnecessary comment in fetchFreshData function

* chore: reorder imports in useNavigateToConvo for consistency

---------

Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
Marco Beretta 2025-04-16 03:00:06 +02:00 committed by GitHub
parent d32f34e5d7
commit 000f3a3733
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 75 additions and 18 deletions

View file

@ -9,7 +9,7 @@ import type {
TEndpointsConfig,
} from 'librechat-data-provider';
import type { MentionOption, ConvoGenerator } from '~/common';
import { getConvoSwitchLogic, getModelSpecIconURL, removeUnavailableTools } from '~/utils';
import { getConvoSwitchLogic, getModelSpecIconURL, removeUnavailableTools, logger } from '~/utils';
import { useChatContext } from '~/Providers';
import { useDefaultConvo } from '~/hooks';
import store from '~/store';
@ -86,6 +86,7 @@ export default function useSelectMention({
});
/* We don't reset the latest message, only when changing settings mid-converstion */
logger.info('conversation', 'Switching conversation to new spec (modular)', conversation);
newConversation({
template: currentConvo,
preset,
@ -95,6 +96,7 @@ export default function useSelectMention({
return;
}
logger.info('conversation', 'Switching conversation to new spec', conversation);
newConversation({
template: { ...(template as Partial<TConversation>) },
preset,
@ -172,6 +174,11 @@ export default function useSelectMention({
});
/* We don't reset the latest message, only when changing settings mid-converstion */
logger.info(
'conversation',
'Switching conversation to new endpoint/model (modular)',
currentConvo,
);
newConversation({
template: currentConvo,
preset: currentConvo,
@ -181,6 +188,7 @@ export default function useSelectMention({
return;
}
logger.info('conversation', 'Switching conversation to new endpoint/model', template);
newConversation({
template: { ...(template as Partial<TConversation>) },
preset: { ...kwargs, spec: null, iconURL: null, modelLabel: null, endpoint: newEndpoint },
@ -230,6 +238,7 @@ export default function useSelectMention({
});
/* We don't reset the latest message, only when changing settings mid-converstion */
logger.info('conversation', 'Switching conversation to new preset (modular)', currentConvo);
newConversation({
template: currentConvo,
preset: newPreset,
@ -239,6 +248,7 @@ export default function useSelectMention({
return;
}
logger.info('conversation', 'Switching conversation to new preset', template);
newConversation({ preset: newPreset, keepAddedConvos: isModular });
},
[