diff --git a/README.md b/README.md index 9e21f4f..6ae0beb 100644 --- a/README.md +++ b/README.md @@ -1104,3 +1104,5 @@ MIT License - 업데이트: 2026-04-05 22:26 (KST) - 코드 탭에서는 폴더 문서/파일을 기본 작업 전제로 삼도록 `폴더 내 데이터 활용`을 항상 `적극 활용(active)`으로 강제했다. 하단 채팅창의 데이터 활용 버튼은 코드 탭에서 숨기고, 내부 설정 오버레이의 같은 옵션도 코드 탭에서는 노출하지 않게 정리했다. - 코워크/코드 탭의 사용자 메시지도 assistant 메시지와 같은 파일 경로 강조 렌더러를 쓰도록 바꿔, 폴더 하위 파일명이나 경로를 입력하면 채팅 본문에서 파란색으로 인식되게 맞췄다. +- 업데이트: 2026-04-05 22:29 (KST) + - AX Agent 채팅/코워크 프리셋을 선택할 때, 메시지도 입력도 없는 fresh conversation인데도 `새 대화`가 반복 생성되던 흐름을 보정했다. 이제 현재 대화가 이미 있으면 그 빈 대화에 프리셋만 적용하고, 실제 대화가 아예 없는 경우에만 새 대화를 만든다. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index e3070ec..20a7204 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -4862,3 +4862,6 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎. - 업데이트: 2026-04-05 22:26 (KST) - [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 에 `IsFolderDataAlwaysEnabledTab()` helper를 추가하고, 코드 탭에서는 `_folderDataUsage`를 항상 `active`로 로드/저장하도록 고정했다. 이에 맞춰 `BtnDataUsage_Click`, `UpdateDataUsageUI()`, 오버레이의 `OverlayFolderDataUsageRow`, `BtnOverlayFolderDataUsage_Click`, `CmbOverlayFolderDataUsage_SelectionChanged`도 코드 탭에서는 숨김 또는 강제 active만 유지하게 정리했다. - 같은 파일의 사용자 메시지 bubble 렌더에서 코워크/코드 탭은 plain `TextBlock` 대신 [MarkdownRenderer.Render](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/MarkdownRenderer.cs) 경로를 타도록 변경했다. 이로써 코워크/코드 사용자 입력 안의 파일명/파일 경로가 assistant 응답과 동일한 파란 강조 규칙을 쓰게 됐다. +- 업데이트: 2026-04-05 22:29 (KST) + - [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `SelectTopic(...)`에서 fresh conversation이 이미 있는 경우에는 `StartNewConversation()`를 다시 호출하지 않도록 보정했다. 기존에는 메시지도 입력도 없는 빈 대화에서 프리셋만 눌러도 새 conversation이 계속 생성되어 좌측 목록에 `새 대화`가 누적될 수 있었다. + - 현재는 `_currentConversation` 존재 여부를 기준으로 빈 대화 재사용과 실제 신규 생성 경로를 분리해, 프리셋 클릭은 같은 새 대화 안에서 메타데이터만 갱신하도록 맞췄다. diff --git a/src/AxCopilot/Views/ChatWindow.xaml.cs b/src/AxCopilot/Views/ChatWindow.xaml.cs index 2a1d52d..f3e3d56 100644 --- a/src/AxCopilot/Views/ChatWindow.xaml.cs +++ b/src/AxCopilot/Views/ChatWindow.xaml.cs @@ -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 탭: 하단 바 갱신