diff --git a/packages/twenty-front/src/modules/ai/hooks/__tests__/useAgentChatModelId.test.tsx b/packages/twenty-front/src/modules/ai/hooks/__tests__/useAgentChatModelId.test.tsx index bc776a9c22..335ff7da99 100644 --- a/packages/twenty-front/src/modules/ai/hooks/__tests__/useAgentChatModelId.test.tsx +++ b/packages/twenty-front/src/modules/ai/hooks/__tests__/useAgentChatModelId.test.tsx @@ -87,4 +87,13 @@ describe('useAgentChatModelId', () => { expect(result.current.modelIdForRequest).toBe('openai/gpt-4.1'); }); + + it('should keep an auto-select sentinel selection instead of discarding it', () => { + const result = renderHooks({ + pathname: '/objects/companies', + userSelectedModel: 'default-fast-model', + }); + + expect(result.current.modelIdForRequest).toBe('default-fast-model'); + }); }); diff --git a/packages/twenty-front/src/modules/ai/hooks/useAgentChatModelId.ts b/packages/twenty-front/src/modules/ai/hooks/useAgentChatModelId.ts index 62ccb6e22b..7d9ef550c8 100644 --- a/packages/twenty-front/src/modules/ai/hooks/useAgentChatModelId.ts +++ b/packages/twenty-front/src/modules/ai/hooks/useAgentChatModelId.ts @@ -1,4 +1,4 @@ -import { isDefined } from 'twenty-shared/utils'; +import { isAutoSelectModelId, isDefined } from 'twenty-shared/utils'; import { useIsWorkspaceSetupChat } from '@/ai/hooks/useIsWorkspaceSetupChat'; import { useWorkspaceAiModelAvailability } from '@/ai/hooks/useWorkspaceAiModelAvailability'; @@ -16,6 +16,7 @@ export const useAgentChatModelId = () => { const isUserModelAvailable = !isDefined(agentChatUserSelectedModel) || + isAutoSelectModelId(agentChatUserSelectedModel) || enabledModels.some((model) => model.modelId === agentChatUserSelectedModel); const selectedModelId = isUserModelAvailable