모델 프로파일 기반 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:
@@ -62,6 +62,8 @@ public class IndexService : IDisposable
|
||||
public IReadOnlyList<IndexEntry> Entries => _index;
|
||||
|
||||
public event EventHandler? IndexRebuilt;
|
||||
/// <summary>전체 재색인 및 증분 갱신 모두에서 발생 — 쿼리 캐시 무효화 용도.</summary>
|
||||
public event EventHandler? IndexEntriesChanged;
|
||||
public event EventHandler<LauncherIndexProgressInfo>? IndexProgressChanged;
|
||||
public TimeSpan LastIndexDuration { get; private set; }
|
||||
public int LastIndexCount { get; private set; }
|
||||
@@ -109,6 +111,7 @@ public class IndexService : IDisposable
|
||||
LastIndexDuration = TimeSpan.Zero;
|
||||
LastIndexCount = _index.Count;
|
||||
LogService.Info($"런처 인덱스 캐시 로드: {entries.Count}개 파일 시스템 항목");
|
||||
IndexEntriesChanged?.Invoke(this, EventArgs.Empty); // FuzzyEngine 캐시 무효화
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -171,6 +174,7 @@ public class IndexService : IDisposable
|
||||
$"최근 색인 완료 · {LastIndexCount:N0}개 항목 · {LastIndexDuration.TotalSeconds:F1}초"));
|
||||
LogService.Info($"런처 인덱싱 완료: {fileSystemEntries.Count}개 파일 시스템 항목 ({sw.Elapsed.TotalSeconds:F1}초)");
|
||||
IndexRebuilt?.Invoke(this, EventArgs.Empty);
|
||||
IndexEntriesChanged?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -329,6 +333,7 @@ public class IndexService : IDisposable
|
||||
LastIndexCount,
|
||||
LastIndexDuration,
|
||||
$"최근 색인 완료 · {LastIndexCount:N0}개 항목");
|
||||
IndexEntriesChanged?.Invoke(this, EventArgs.Empty); // 증분 갱신도 캐시 무효화 필요
|
||||
LogService.Info($"런처 인덱스 증분 갱신: {triggerPath}");
|
||||
}
|
||||
|
||||
@@ -516,7 +521,12 @@ public class IndexService : IDisposable
|
||||
}
|
||||
|
||||
RegisterBuiltInApps(entries);
|
||||
ComputeAllSearchCaches(entries);
|
||||
// FS 항목은 이미 캐시 계산 완료 — 별칭·내장앱처럼 새로 추가된 항목만 계산
|
||||
foreach (var entry in entries)
|
||||
{
|
||||
if (string.IsNullOrEmpty(entry.NameLower))
|
||||
ComputeSearchCache(entry);
|
||||
}
|
||||
_index = entries;
|
||||
}
|
||||
|
||||
@@ -798,6 +808,10 @@ public class IndexService : IDisposable
|
||||
if (name.StartsWith(".", StringComparison.Ordinal) || IgnoredDirectoryNames.Contains(name))
|
||||
continue;
|
||||
|
||||
// 파일과 동일하게 숨김·시스템 폴더도 색인에서 제외
|
||||
if (ShouldIgnorePath(subDir))
|
||||
continue;
|
||||
|
||||
entries.Add(CreateFolderEntry(subDir));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user