AX Agent 새 대화 전환 버그 수정 및 상태 초기화 정리
Some checks failed
Release Gate / gate (push) Has been cancelled

- 새 대화 시작 시 LoadOrCreateConversation 재호출로 기존 대화가 다시 복원되던 경로 제거
- ClearCurrentConversation 이후 항상 fresh conversation 생성으로 current conversation 전환 고정
- 새 대화 전환 시 대화별 설정, 압축 메트릭, 앱 상태, 프리셋 안내, 조건부 스킬 상태를 새 세션 기준으로 재동기화
- 빈 transcript를 다시 렌더하도록 정리해 첫 화면 깜빡임 후 기존 메시지가 남는 현상 수정
- README 및 DEVELOPMENT 문서에 2026-04-05 23:02 (KST) 기준 변경 이력 반영

검증:
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\verify\ -p:IntermediateOutputPath=obj\verify\
- 경고 0 / 오류 0 확인
This commit is contained in:
2026-04-05 20:26:59 +09:00
parent f79e657895
commit b1e11b27bc
3 changed files with 12 additions and 3 deletions

View File

@@ -4790,3 +4790,5 @@ ow + toggle ?쒓컖 ?몄뼱濡??ㅼ떆 ?뺣젹?덈떎.
- 런처 클립보드 붙여넣기 포커스 경로를 공통 helper 기반으로 재정리했다. [ForegroundPasteHelper.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Services/ForegroundPasteHelper.cs) 를 추가해 이전 활성 창 복원, 최소 대기, `Ctrl+V` 주입 순서를 하나로 통일했고, [ClipboardHistoryHandler.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Handlers/ClipboardHistoryHandler.cs), [ClipboardHandler.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Handlers/ClipboardHandler.cs), [PasteHandler.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Handlers/PasteHandler.cs) 가 모두 같은 포커스 복원 로직을 사용하도록 맞췄다.
- 업데이트: 2026-04-05 20:17 (KST)
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 `AddMessageBubble(...)`에서 사용자/assistant wrapper 여백을 줄여 transcript 좌우 끝단 정렬감을 높였다. 또 assistant 헤더의 `AX 에이전트` 라벨, 상단 아이콘, 사용자/assistant 시간 표기 글꼴 크기와 opacity를 함께 올려 메타 정보가 지나치게 작게 보이던 문제를 보정했다.
- 업데이트: 2026-04-05 23:02 (KST)
- [ChatWindow.xaml.cs](/E:/AX%20Copilot%20-%20Codex/src/AxCopilot/Views/ChatWindow.xaml.cs) 의 StartNewConversation()을 수정해 새 대화 클릭 시 기존 대화를 다시 불러오지 않도록 정리했다. 기존 구현은 session.ClearCurrentConversation(_activeTab) 직후 session.LoadOrCreateConversation(...)을 호출해, 기억된 최근 대화가 다시 current conversation으로 복원되는 경로가 있었다. 이 때문에 빈 상태가 잠깐 깜빡인 뒤 기존 메시지가 다시 그려지는 현상이 발생했다. 이제는 clear 직후 session.CreateFreshConversation(...)만 사용하고, 이어서 LoadConversationSettings(), LoadCompactionMetricsFromConversation(), SyncAppStateWithCurrentConversation(), UpdateSelectedPresetGuide(), UpdateConditionalSkillActivation(reset: true), RenderMessages()를 fresh conversation 기준으로 다시 호출해 새 대화 화면이 안정적으로 유지되게 했다.