feat(core): 자기지식 접지·웹 접근·환경 자가점검 — 할루시네이션 방어 3중화 (v2.2.247)

- Alignment Self-Learning: 자가 조사(질문 전 두뇌 검색)·사용자 답변 두뇌 저장·핵심메시지/프로젝트 컨텍스트 주입 (alignmentResearch.ts 신규)
- 웹 접근: Bridge 폴백 직접 fetch(webFetch.ts 신규)·<fetch_url> 액션 태그·기업 모드 URL/아키텍처 컨텍스트 주입·bare 도메인 인식
- 트리거 버그 수정: startsWith('/') 가 절대경로를 슬래시 명령으로 오인 — 분석 지시·URL 주입 전멸 원인 (회귀 테스트 고정)
- 자기지식 접지: 기능 인벤토리 lazy 재생성·학습 메커니즘 정본 섹션·[인벤토리 대조] 태그 의무화·결정론적 재구현 제안 정정 훅(featureConceptMap.ts 신규)
- 환경 자가점검: HealthCheckMonitor 에 Bridge/두뇌 볼륨/git 자격증명/확장 버전 검사 4종 + readyBar ⚠ 표시
- 두뇌 동기화: 원격 미설정 시 로컬 새로고침 모드·staged 기준 commit 판정·인증 부재 안내
- 기타: outputFormat 기본 markdown(제목 렌더 복구)·레슨/행동제약 truncation 보호 구역 이동·[CONTEXT] 절단 우선순위 재정렬

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
g1nation
2026-06-12 23:46:07 +09:00
parent 553aa0b134
commit a114d968b0
42 changed files with 4178 additions and 2088 deletions
+18 -3
View File
@@ -2,7 +2,7 @@
"name": "astra",
"displayName": "Astra",
"description": "The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.",
"version": "2.2.231",
"version": "2.2.247",
"publisher": "g1nation",
"license": "MIT",
"icon": "assets/icon.png",
@@ -926,8 +926,8 @@
"plain",
"markdown"
],
"default": "plain",
"markdownDescription": "최종 답변 표시 방식.\n\n- `plain` (기본): 모델이 무심코 내보낸 마크다운 마커(`##`, `**`, `__`, `> `, `* ` 등)를 후처리로 모두 제거. 섹션 라벨 텍스트(예: `핵심 요약`)는 유지되지만 헤더 마커는 사라져 깔끔한 plain text 로 보임. 작은 로컬 모델이 학습된 습관으로 `## 다음 한 수` 같은 마커를 흘리는 문제 차단.\n- `markdown`: legacy 동작. 모델 출력을 그대로 렌더러에 넘김."
"default": "markdown",
"markdownDescription": "최종 답변 표시 방식.\n\n- `markdown` (기본): 모델 출력을 그대로 렌더러에 넘김 — 채팅 UI 가 마크다운을 렌더하므로 `##` 제목이 크게, `**` 강조가 굵게 표시되어 가독성이 좋음.\n- `plain`: 마크다운 마커(`##`, `**`, `__`, `> `, `* ` 등)를 후처리로 모두 제거. 제목/본문이 같은 크기의 평문이 됨 — 답변을 평문으로 복사해 쓰는 워크플로 전용. (작은 로컬 모델의 마커 누수 차단 용도였으나 채팅 가독성을 해쳐 기본에서 제외)"
},
"g1nation.chronicleAutoRecord": {
"type": "boolean",
@@ -966,6 +966,21 @@
"default": 3,
"description": "Maximum back-and-forth rounds the Intent Alignment analyzer is allowed to ask before forcing a 'confirm or cancel' card (it stops asking new questions and shows the current contract for user approval). Each round = one LLM call. Default 3."
},
"g1nation.web.autoFetchUrls": {
"type": "boolean",
"default": true,
"description": "URL 자동 수집 — 메시지에 http(s) 링크가 있으면 답변 생성 전에 페이지 본문을 가져와 모델에게 전달합니다 (일반 챗·기업 모드·Intent Alignment 공통). Datacollect Bridge가 켜져 있으면 고품질 추출을 우선 사용하고, 꺼져 있으면 확장이 직접 페이지를 가져옵니다. 끄면 모델이 링크 내용을 알 수 없습니다."
},
"g1nation.company.alignmentSelfResearch": {
"type": "boolean",
"default": true,
"description": "Alignment 자가 조사 — 분석기가 만든 질문을 사용자에게 보여주기 전에 두뇌(지식 폴더)를 먼저 검색해 스스로 답할 수 있는 질문을 걸러냅니다. 두뇌에서 답을 찾은 항목은 '(자가 조사로 두뇌에서 확인)' 표시와 함께 contract에 반영되고, 정말 모르는 질문만 카드에 노출됩니다. 질문이 있을 때만 LLM 1회가 추가됩니다."
},
"g1nation.company.alignmentKnowledgeSave": {
"type": "boolean",
"default": true,
"description": "Alignment 학습 루프 — 사용자가 alignment 라운드에서 직접 답해준 Q/A를 두뇌의 'Alignment Knowledge' 폴더에 노트로 저장합니다. 다음 turn의 자가 조사가 이 노트를 발견해 같은 질문을 두 번 묻지 않게 됩니다. 20자 미만의 짧은 답과 자가 조사 항목은 저장하지 않습니다."
},
"g1nation.selfReflector.enabled": {
"type": "boolean",
"default": false,