Loading src/common/chat/gitlab_chat_record.test.ts +6 −0 Original line number Diff line number Diff line Loading @@ -62,12 +62,18 @@ describe('GitLabChatRecord', () => { describe('detectType', () => { it.each` message | version | expectedType ${'/reset'} | ${'17.5.0-ee'} | ${'newConversation'} ${'/reset'} | ${'17.5.0'} | ${'newConversation'} ${'/reset'} | ${'17.4.0'} | ${'newConversation'} ${'/clear'} | ${'17.5.0-ee'} | ${'clearChat'} ${'/clear'} | ${'17.5.0'} | ${'clearChat'} ${'/clear'} | ${'17.4.0'} | ${'clearChat'} ${'/clean'} | ${'17.6.0-ee'} | ${'general'} ${'/clean'} | ${'17.5.0-ee'} | ${'general'} ${'/clean'} | ${'17.5.0'} | ${'general'} ${'/clean'} | ${'17.4.0-ee'} | ${'clearChat'} ${'/clean'} | ${'17.4.0'} | ${'clearChat'} ${'test message'} | ${'17.5.0-ee'} | ${'general'} ${'test message'} | ${'17.5.0'} | ${'general'} ${'test message'} | ${'17.4.0'} | ${'general'} `('returns $expectedType for $message on $version', ({ message, version, expectedType }) => { Loading src/common/chat/gitlab_chat_record.ts +5 −2 Original line number Diff line number Diff line import { v4 as uuidv4 } from 'uuid'; import { AIContextItem } from '@gitlab-org/gitlab-lsp'; import { gte } from 'semver'; import { coerce, gte } from 'semver'; import { log } from '../log'; import { buildCurrentContext, GitLabChatRecordContext } from './gitlab_chat_record_context'; import { SPECIAL_MESSAGES } from './constants'; Loading Loading @@ -33,10 +33,13 @@ type GitLabChatRecordAttributes = { }; export function detectType(content: string, version: string): ChatRecordType { const parsedVersion = coerce(version); const usesGeneralTypeForCleanMessage = Boolean(parsedVersion && gte(parsedVersion, '17.5.0')); if (content === SPECIAL_MESSAGES.RESET) { return 'newConversation'; } if (content === SPECIAL_MESSAGES.CLEAN && gte(version, '17.5.0')) { if (content === SPECIAL_MESSAGES.CLEAN && usesGeneralTypeForCleanMessage) { return 'general'; } if (content === SPECIAL_MESSAGES.CLEAN || content === SPECIAL_MESSAGES.CLEAR) { Loading Loading
src/common/chat/gitlab_chat_record.test.ts +6 −0 Original line number Diff line number Diff line Loading @@ -62,12 +62,18 @@ describe('GitLabChatRecord', () => { describe('detectType', () => { it.each` message | version | expectedType ${'/reset'} | ${'17.5.0-ee'} | ${'newConversation'} ${'/reset'} | ${'17.5.0'} | ${'newConversation'} ${'/reset'} | ${'17.4.0'} | ${'newConversation'} ${'/clear'} | ${'17.5.0-ee'} | ${'clearChat'} ${'/clear'} | ${'17.5.0'} | ${'clearChat'} ${'/clear'} | ${'17.4.0'} | ${'clearChat'} ${'/clean'} | ${'17.6.0-ee'} | ${'general'} ${'/clean'} | ${'17.5.0-ee'} | ${'general'} ${'/clean'} | ${'17.5.0'} | ${'general'} ${'/clean'} | ${'17.4.0-ee'} | ${'clearChat'} ${'/clean'} | ${'17.4.0'} | ${'clearChat'} ${'test message'} | ${'17.5.0-ee'} | ${'general'} ${'test message'} | ${'17.5.0'} | ${'general'} ${'test message'} | ${'17.4.0'} | ${'general'} `('returns $expectedType for $message on $version', ({ message, version, expectedType }) => { Loading
src/common/chat/gitlab_chat_record.ts +5 −2 Original line number Diff line number Diff line import { v4 as uuidv4 } from 'uuid'; import { AIContextItem } from '@gitlab-org/gitlab-lsp'; import { gte } from 'semver'; import { coerce, gte } from 'semver'; import { log } from '../log'; import { buildCurrentContext, GitLabChatRecordContext } from './gitlab_chat_record_context'; import { SPECIAL_MESSAGES } from './constants'; Loading Loading @@ -33,10 +33,13 @@ type GitLabChatRecordAttributes = { }; export function detectType(content: string, version: string): ChatRecordType { const parsedVersion = coerce(version); const usesGeneralTypeForCleanMessage = Boolean(parsedVersion && gte(parsedVersion, '17.5.0')); if (content === SPECIAL_MESSAGES.RESET) { return 'newConversation'; } if (content === SPECIAL_MESSAGES.CLEAN && gte(version, '17.5.0')) { if (content === SPECIAL_MESSAGES.CLEAN && usesGeneralTypeForCleanMessage) { return 'general'; } if (content === SPECIAL_MESSAGES.CLEAN || content === SPECIAL_MESSAGES.CLEAR) { Loading