코드 탭 작업 폴더 동기화 불일치 수정 및 빠른 전송 안정화

작업 폴더 선택 시 현재 대화가 없더라도 Code/Cowork 대화를 즉시 확보하고 WorkFolder를 먼저 기록하도록 보강했다.

새 Code/Cowork 대화가 탭별 최근 작업 폴더를 기본으로 승계하도록 ChatSessionStateService를 조정하고, 현재 폴더 표시도 CodeWorkFolder/CoworkWorkFolder를 우선 사용하도록 맞췄다.

작업 폴더 해제 시 대화 메타데이터와 탭별 저장 폴더를 함께 초기화하도록 정리했다.

검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_workfolder_sync\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync\\ / dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter ChatSessionStateServiceTests -p:OutputPath=bin\\verify_workfolder_sync_tests\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync_tests\
This commit is contained in:
2026-04-15 14:18:14 +09:00
parent d58cf2c093
commit b260008663
5 changed files with 77 additions and 2 deletions

View File

@@ -1357,3 +1357,11 @@ UI ?붿옄???€洹쒕え 由ы뙥?좊쭅 ???꾪뿕 ?묒뾽 ??湲곕줉???덉쟾
### 검증
- `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_runtime_policy_alignment_build\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment_build\\` 경고 0 / 오류 0
- `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentLoopE2ETests|AgentLoopResponseClassificationServiceTests" -p:OutputPath=bin\\verify_runtime_policy_alignment\\ -p:IntermediateOutputPath=obj\\verify_runtime_policy_alignment\\` 통과 19
업데이트: 2026-04-15 15:09 (KST)
- `src/AxCopilot/Views/ChatWindow.xaml.cs`의 작업 폴더 반영 경로를 보강했습니다. `SetWorkFolder(...)`가 이제 Code/Cowork 탭에서 현재 대화가 없더라도 `EnsureCurrentConversation(...)`으로 대화를 즉시 확보한 뒤 `WorkFolder`를 기록해, 폴더 선택 직후 빠른 전송에서도 대화 메타데이터가 비어 있지 않게 유지합니다.
- `GetCurrentWorkFolder()`는 전역 `Llm.WorkFolder`보다 탭별 `CodeWorkFolder`/`CoworkWorkFolder`를 먼저 읽도록 바꿨습니다. 폴더 바·워터마크·스킬 로더가 보는 경로와 실제 탭별 저장 경로를 더 잘 맞춰 UI fallback과 실행 경로가 어긋나는 상황을 줄였습니다.
- `BtnFolderClear_Click(...)`는 대화의 `WorkFolder`만 비우던 기존 동작에서 확장해 탭별 최근 작업 폴더 설정과 UI 상태도 함께 초기화합니다. 이전 경로가 설정 fallback으로 다시 나타나는 현상을 줄이고, 이후 스킬 재로드도 같은 기준으로 다시 시작합니다.
- `src/AxCopilot/Services/ChatSessionStateService.cs`의 `CreateFreshConversation(...)`는 Code/Cowork 탭 새 대화 생성 시 탭별 최근 작업 폴더를 기본 `WorkFolder`로 승계합니다. 이로써 “UI에는 폴더가 보이는데 전송 차단은 경로 없음으로 판단”하던 불일치를 완화합니다.
- 테스트: `src/AxCopilot.Tests/Services/ChatSessionStateServiceTests.cs`에서 fresh conversation 기본 폴더 승계와 탭별 우선순위를 검증하도록 확장
- 검증: `dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_workfolder_sync\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync\\` 경고 0 / 오류 0
- 검증: `dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "ChatSessionStateServiceTests" -p:OutputPath=bin\\verify_workfolder_sync_tests\\ -p:IntermediateOutputPath=obj\\verify_workfolder_sync_tests\\` 통과 37