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
@@ -1,5 +1,5 @@
{
"result": "직답 결과 — single-pass mock 응답입니다.",
"createdAt": 1780367973993,
"createdAt": 1780882719870,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "---\nid: wiki_on\ndate: 2026-06-02T02:39:33.994Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (25ms)\n",
"createdAt": 1780367973995,
"result": "---\nid: wiki_on\ndate: 2026-06-08T01:38:39.872Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (21ms)\n",
"createdAt": 1780882719872,
"modelVersion": "unknown"
}
@@ -1,8 +1,8 @@
{
"missionId": "wiki_on",
"status": "completed",
"startTime": "2026-06-02T02:39:33.967Z",
"totalElapsedMs": 28,
"startTime": "2026-06-08T01:38:39.847Z",
"totalElapsedMs": 26,
"results": {
"direct": "직답 결과 — single-pass mock 응답입니다."
},
@@ -12,16 +12,16 @@
{
"from": "idle",
"to": "direct",
"durationMs": 25,
"durationMs": 21,
"message": "답변 작성 중... (단일 호출 fast-path)",
"ts": "2026-06-02T02:39:33.992Z"
"ts": "2026-06-08T01:38:39.868Z"
},
{
"from": "direct",
"to": "completed",
"durationMs": 3,
"durationMs": 5,
"message": "미션 완료",
"ts": "2026-06-02T02:39:33.995Z"
"ts": "2026-06-08T01:38:39.873Z"
}
],
"resilienceMetrics": {
@@ -1,5 +1,5 @@
{
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
"createdAt": 1780367980792,
"createdAt": 1780882727041,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
"createdAt": 1780367980791,
"createdAt": 1780882727039,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
"createdAt": 1780367980787,
"createdAt": 1780882727035,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
"createdAt": 1780367980789,
"createdAt": 1780882727037,
"modelVersion": "unknown"
}
@@ -1,8 +1,8 @@
{
"missionId": "stress_conflict_1780367980767",
"missionId": "stress_conflict_1780882727018",
"status": "completed",
"startTime": "2026-06-02T02:39:40.767Z",
"totalElapsedMs": 26,
"startTime": "2026-06-08T01:38:47.018Z",
"totalElapsedMs": 24,
"results": {
"outline": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
"section_0": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
@@ -14,30 +14,30 @@
{
"from": "idle",
"to": "outline",
"durationMs": 19,
"durationMs": 15,
"message": "답변 구조 잡는 중...",
"ts": "2026-06-02T02:39:40.786Z"
"ts": "2026-06-08T01:38:47.033Z"
},
{
"from": "outline",
"to": "section",
"durationMs": 3,
"message": "본문 작성 중...",
"ts": "2026-06-02T02:39:40.789Z"
"ts": "2026-06-08T01:38:47.036Z"
},
{
"from": "section",
"to": "polish",
"durationMs": 1,
"durationMs": 2,
"message": "최종 다듬기 중...",
"ts": "2026-06-02T02:39:40.790Z"
"ts": "2026-06-08T01:38:47.038Z"
},
{
"from": "polish",
"to": "completed",
"durationMs": 2,
"durationMs": 4,
"message": "미션 완료",
"ts": "2026-06-02T02:39:40.792Z"
"ts": "2026-06-08T01:38:47.042Z"
}
],
"resilienceMetrics": {