코드 탭 작업 폴더 동기화 불일치 수정 및 빠른 전송 안정화
작업 폴더 선택 시 현재 대화가 없더라도 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:
@@ -168,7 +168,7 @@ public sealed class ChatSessionStateService
|
||||
if (string.Equals(normalizedTab, "Code", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(normalizedTab, "Cowork", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
created.WorkFolder = "";
|
||||
created.WorkFolder = ResolveDefaultWorkFolderForTab(normalizedTab, settings);
|
||||
try
|
||||
{
|
||||
var currentPerm = AxCopilot.Services.Agent.PermissionModeCatalog.NormalizeGlobalMode(
|
||||
@@ -187,6 +187,24 @@ public sealed class ChatSessionStateService
|
||||
return created;
|
||||
}
|
||||
|
||||
private static string ResolveDefaultWorkFolderForTab(string normalizedTab, ISettingsService settings)
|
||||
{
|
||||
var llm = settings.Settings.Llm;
|
||||
var tabFolder = normalizedTab switch
|
||||
{
|
||||
"Code" => llm.CodeWorkFolder,
|
||||
"Cowork" => llm.CoworkWorkFolder,
|
||||
_ => "",
|
||||
};
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(tabFolder))
|
||||
return tabFolder;
|
||||
|
||||
return string.Equals(normalizedTab, "Chat", StringComparison.OrdinalIgnoreCase)
|
||||
? ""
|
||||
: llm.WorkFolder ?? "";
|
||||
}
|
||||
|
||||
public ChatConversation CreateBranchConversation(
|
||||
ChatConversation source,
|
||||
int atIndex,
|
||||
|
||||
Reference in New Issue
Block a user