모델 프로파일 기반 Cowork/Code 루프와 진행 UX 고도화 반영
- 등록 모델 실행 프로파일을 검증 게이트, 문서 fallback, post-tool verification까지 확장 적용 - Cowork/Code 진행 카드에 계획/도구/검증/압축/폴백/재시도 단계 메타를 추가해 대기 상태 가시성 강화 - OpenAI/vLLM tool 요청에 병렬 도구 호출 힌트를 추가하고 회귀 프롬프트 문서를 프로파일 기준으로 전면 정리 - 검증: 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:
@@ -118,9 +118,10 @@ public sealed class ChatSessionStateService
|
||||
|
||||
// 새 대화를 시작한 직후처럼 아직 저장되지 않은 현재 대화가 있으면,
|
||||
// 최신 저장 대화로 되돌아가지 말고 그 임시 세션을 그대로 유지합니다.
|
||||
// HasActualContent를 사용하여 WorkFolder/Permission 같은 설정값만 있는 경우도 새 대화로 인식.
|
||||
if (CurrentConversation != null
|
||||
&& string.Equals(NormalizeTab(CurrentConversation.Tab), normalizedTab, StringComparison.OrdinalIgnoreCase)
|
||||
&& !HasPersistableContent(CurrentConversation))
|
||||
&& !HasActualContent(CurrentConversation))
|
||||
{
|
||||
return CurrentConversation;
|
||||
}
|
||||
@@ -607,6 +608,20 @@ public sealed class ChatSessionStateService
|
||||
return "Chat";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 실제 사용자 상호작용 데이터가 있는지 확인합니다. WorkFolder/Permission 같은 설정값은 제외.
|
||||
/// LoadOrCreateConversation의 새 대화 보호 가드에서 사용합니다.
|
||||
/// </summary>
|
||||
private static bool HasActualContent(ChatConversation conv)
|
||||
{
|
||||
if ((conv.Messages?.Count ?? 0) > 0) return true;
|
||||
if ((conv.ExecutionEvents?.Count ?? 0) > 0) return true;
|
||||
if ((conv.AgentRunHistory?.Count ?? 0) > 0) return true;
|
||||
if ((conv.DraftQueueItems?.Count ?? 0) > 0) return true;
|
||||
if (conv.Pinned) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool HasPersistableContent(ChatConversation conv)
|
||||
{
|
||||
if ((conv.Messages?.Count ?? 0) > 0) return true;
|
||||
|
||||
Reference in New Issue
Block a user