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

작업 폴더 선택 시 현재 대화가 없더라도 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

@@ -617,10 +617,23 @@ public class ChatSessionStateServiceTests
var conversation = session.CreateFreshConversation("Code", settings);
conversation.Tab.Should().Be("Code");
conversation.WorkFolder.Should().Be("");
conversation.WorkFolder.Should().Be(@"E:\workspace");
session.CurrentConversation.Should().BeSameAs(conversation);
}
[Fact]
public void CreateFreshConversation_PrefersTabSpecificWorkFolderOutsideChatTab()
{
var session = new ChatSessionStateService();
var settings = new SettingsService();
settings.Settings.Llm.WorkFolder = @"E:\global";
settings.Settings.Llm.CodeWorkFolder = @"E:\code";
var conversation = session.CreateFreshConversation("Code", settings);
conversation.WorkFolder.Should().Be(@"E:\code");
}
[Fact]
public void CreateBranchConversation_ClonesConversationContextUpToBranchPoint()
{