프리셋 선택 시 새 대화 중복 생성 방지
Some checks failed
Release Gate / gate (push) Has been cancelled

AX Agent 채팅과 코워크에서 메시지와 입력이 없는 fresh conversation에 프리셋만 선택해도 새 대화가 반복 생성되던 흐름을 수정했습니다.

기존 빈 대화가 있으면 해당 대화를 재사용하고 프리셋 메타데이터만 갱신하도록 정리했으며 문서 이력과 빌드 검증도 함께 반영했습니다.
This commit is contained in:
2026-04-05 22:30:53 +09:00
parent be7328184a
commit fa349c2057
3 changed files with 16 additions and 5 deletions

View File

@@ -12676,16 +12676,22 @@ public partial class ChatWindow : Window
private void SelectTopic(Services.TopicPreset preset)
{
bool hasMessages;
lock (_convLock) hasMessages = _currentConversation?.Messages.Count > 0;
bool hasConversation;
lock (_convLock)
{
hasConversation = _currentConversation != null;
hasMessages = _currentConversation?.Messages.Count > 0;
}
// 입력란에 텍스트가 있으면 기존 대화를 유지 (입력 내용 보존)
bool hasInput = !string.IsNullOrEmpty(InputBox.Text);
bool keepConversation = hasMessages || hasInput;
bool keepConversation = hasConversation;
if (!keepConversation)
{
// 메시지도 입력 텍스트도 없으면 새 대화 시작
// 현재 대화가 아예 없는 경우에만 새 대화 시작
StartNewConversation();
keepConversation = true;
}
// 프리셋 적용 (기존 대화에도 프리셋 변경 가능)
@@ -12722,10 +12728,10 @@ public partial class ChatWindow : Window
if (!string.IsNullOrEmpty(preset.Placeholder))
{
_promptCardPlaceholder = preset.Placeholder;
if (!keepConversation) ShowPlaceholder();
if (!hasMessages && !hasInput) ShowPlaceholder();
}
if (keepConversation)
if (hasMessages || hasInput)
ShowToast($"프리셋 변경: {preset.Label}");
// Cowork 탭: 하단 바 갱신