feat(retrieval): 청킹/평가 하니스 + 검색 인덱스 개선

- src/retrieval/chunker.ts: 문서 청킹 로직 추가
- src/retrieval/evalHarness.ts + src/extension/evalCommands.ts: 검색 품질 평가 하니스
- brainIndex.ts / retrieval/index.ts / memoryContext.ts: 인덱싱·컨텍스트 빌더 개선
- config.ts / extension.ts / sidebarProvider.ts / package.json 갱신
- ADR-0030~0032 및 개발 기록, .astra 런타임 상태 동기화

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-08 19:27:10 +09:00
parent b94e6ad1da
commit d39eb27c90
26 changed files with 1471 additions and 208 deletions
+20
View File
@@ -42,6 +42,14 @@
"title": "Astra: New Chat",
"icon": "$(add)"
},
{
"command": "g1nation.eval.retrieval",
"title": "Astra: 검색 평가 실행 (recall@k / MRR)"
},
{
"command": "g1nation.embeddings.backfill",
"title": "Astra: 두뇌 임베딩 전체 색인"
},
{
"command": "g1nation.exportChat",
"title": "Astra: Export Chat as Markdown"
@@ -572,6 +580,18 @@
"maximum": 1,
"description": "Hybrid score blend: 0 = pure TF-IDF (sparse / keyword), 1 = pure embedding cosine (dense / semantic), 0.5 = balanced. Only used when g1nation.embeddingModel is set. Default 0.5."
},
"g1nation.chunkLevelRetrieval": {
"type": "boolean",
"default": false,
"description": "섹션 청크 단위 검색 (Phase 1-가). 켜면 두뇌 검색이 파일이 아니라 '##' 헤딩 기준 섹션 청크 단위로 색인·스코어링하고 매치된 섹션을 주입합니다. 긴 다주제 문서의 검색 정밀도를 높입니다. '검색 평가 실행'으로 끄고/켜고 비교해 보세요. 기본 false."
},
"g1nation.chunkTargetChars": {
"type": "number",
"default": 1200,
"minimum": 400,
"maximum": 4000,
"description": "섹션 청크의 목표 길이(문자). 섹션이 이보다 길면 문단 경계로 더 쪼갭니다. chunkLevelRetrieval 가 켜져 있을 때만 사용. 값을 바꾸면 다음 검색 때 청크 색인이 재생성됩니다. 기본 1200."
},
"g1nation.conflictHighlightingEnabled": {
"type": "boolean",
"default": true,