AX Agent 채팅과 코워크에서 메시지와 입력이 없는 fresh conversation에 프리셋만 선택해도 새 대화가 반복 생성되던 흐름을 수정했습니다. 기존 빈 대화가 있으면 해당 대화를 재사용하고 프리셋 메타데이터만 갱신하도록 정리했으며 문서 이력과 빌드 검증도 함께 반영했습니다.
This commit is contained in:
@@ -1104,3 +1104,5 @@ MIT License
|
|||||||
- 업데이트: 2026-04-05 22:26 (KST)
|
- 업데이트: 2026-04-05 22:26 (KST)
|
||||||
- 코드 탭에서는 폴더 문서/파일을 기본 작업 전제로 삼도록 `폴더 내 데이터 활용`을 항상 `적극 활용(active)`으로 강제했다. 하단 채팅창의 데이터 활용 버튼은 코드 탭에서 숨기고, 내부 설정 오버레이의 같은 옵션도 코드 탭에서는 노출하지 않게 정리했다.
|
- 코드 탭에서는 폴더 문서/파일을 기본 작업 전제로 삼도록 `폴더 내 데이터 활용`을 항상 `적극 활용(active)`으로 강제했다. 하단 채팅창의 데이터 활용 버튼은 코드 탭에서 숨기고, 내부 설정 오버레이의 같은 옵션도 코드 탭에서는 노출하지 않게 정리했다.
|
||||||
- 코워크/코드 탭의 사용자 메시지도 assistant 메시지와 같은 파일 경로 강조 렌더러를 쓰도록 바꿔, 폴더 하위 파일명이나 경로를 입력하면 채팅 본문에서 파란색으로 인식되게 맞췄다.
|
- 코워크/코드 탭의 사용자 메시지도 assistant 메시지와 같은 파일 경로 강조 렌더러를 쓰도록 바꿔, 폴더 하위 파일명이나 경로를 입력하면 채팅 본문에서 파란색으로 인식되게 맞췄다.
|
||||||
|
- 업데이트: 2026-04-05 22:29 (KST)
|
||||||
|
- AX Agent 채팅/코워크 프리셋을 선택할 때, 메시지도 입력도 없는 fresh conversation인데도 `새 대화`가 반복 생성되던 흐름을 보정했다. 이제 현재 대화가 이미 있으면 그 빈 대화에 프리셋만 적용하고, 실제 대화가 아예 없는 경우에만 새 대화를 만든다.
|
||||||
|
|||||||
@@ -4862,3 +4862,6 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
|
|||||||
- 업데이트: 2026-04-05 22:26 (KST)
|
- 업데이트: 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만 유지하게 정리했다.
|
- [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 응답과 동일한 파란 강조 규칙을 쓰게 됐다.
|
- 같은 파일의 사용자 메시지 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` 존재 여부를 기준으로 빈 대화 재사용과 실제 신규 생성 경로를 분리해, 프리셋 클릭은 같은 새 대화 안에서 메타데이터만 갱신하도록 맞췄다.
|
||||||
|
|||||||
@@ -12676,16 +12676,22 @@ public partial class ChatWindow : Window
|
|||||||
private void SelectTopic(Services.TopicPreset preset)
|
private void SelectTopic(Services.TopicPreset preset)
|
||||||
{
|
{
|
||||||
bool hasMessages;
|
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 hasInput = !string.IsNullOrEmpty(InputBox.Text);
|
||||||
bool keepConversation = hasMessages || hasInput;
|
bool keepConversation = hasConversation;
|
||||||
|
|
||||||
if (!keepConversation)
|
if (!keepConversation)
|
||||||
{
|
{
|
||||||
// 메시지도 입력 텍스트도 없으면 새 대화 시작
|
// 현재 대화가 아예 없는 경우에만 새 대화 시작
|
||||||
StartNewConversation();
|
StartNewConversation();
|
||||||
|
keepConversation = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 프리셋 적용 (기존 대화에도 프리셋 변경 가능)
|
// 프리셋 적용 (기존 대화에도 프리셋 변경 가능)
|
||||||
@@ -12722,10 +12728,10 @@ public partial class ChatWindow : Window
|
|||||||
if (!string.IsNullOrEmpty(preset.Placeholder))
|
if (!string.IsNullOrEmpty(preset.Placeholder))
|
||||||
{
|
{
|
||||||
_promptCardPlaceholder = preset.Placeholder;
|
_promptCardPlaceholder = preset.Placeholder;
|
||||||
if (!keepConversation) ShowPlaceholder();
|
if (!hasMessages && !hasInput) ShowPlaceholder();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (keepConversation)
|
if (hasMessages || hasInput)
|
||||||
ShowToast($"프리셋 변경: {preset.Label}");
|
ShowToast($"프리셋 변경: {preset.Label}");
|
||||||
|
|
||||||
// Cowork 탭: 하단 바 갱신
|
// Cowork 탭: 하단 바 갱신
|
||||||
|
|||||||
Reference in New Issue
Block a user