feat(review): /review 코드 리뷰 map-reduce 청킹 명령 (v2.2.255)

일반 에이전트 채팅이 큰 코드베이스 리뷰를 단일 호출로 처리하다 약한 로컬
모델에서 빈 응답으로 무너지던 문제를, /meet 의 검증된 map-reduce 로 우회.

- /review <디렉터리|파일> [초점] 신설 (코어 채팅 경로 무수정)
- Map: 파일별 독립 리뷰(라인 인용 근거), callLmSynthesis 재시도/붕괴감지 활용,
  한 파일 실패해도 부분 리뷰로 진행
- Reduce: 노트 통합 + hierarchical fold 로 reduce 입력을 약한 모델 한도(16K) 안 유지
- 의존성/빌드 산출물 제외, 파일 30개·400KB 상한, 결과 wiki 저장
- 신규 reviewPrompt.ts / reviewFiles.ts, 테스트 +5건(전체 667 통과)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 18:18:20 +09:00
parent 1efbe2ec0f
commit 6adbc2a6fa
6 changed files with 438 additions and 1 deletions
+7
View File
@@ -1,5 +1,12 @@
# Astra Patch Notes
## v2.2.255 (2026-06-18)
### 🧩 `/review` — 코드 리뷰 map-reduce 청킹 (약한 모델도 큰 코드베이스 처리)
- 일반 에이전트 채팅은 코드 리뷰처럼 입력이 큰 작업을 단일 호출로 처리하다 약한 로컬 모델에서 빈 응답(첫 토큰 EOS)으로 무너진다. `/meet` 의 검증된 map-reduce 를 코드 리뷰에 적용한 **`/review <디렉터리|파일> [초점]`** 명령 신설. 코어 채팅 경로는 건드리지 않음.
- **Map**: 소스 파일을 하나씩 독립 리뷰(버그·보안·성능·설계·가독성, 라인 인용 근거 필수) → 파일별 노트. `callLmSynthesis` 의 재시도/출력붕괴 감지를 그대로 활용. 한 파일이 실패해도 전체를 포기하지 않고 부분 리뷰로 진행.
- **Reduce**: 노트를 통합해 우선순위가 매겨진 보고서(총평·우선개선·분류별·잘된점·다음단계). 노트가 크면 배치로 접는 **hierarchical fold** 로 reduce 입력도 약한 모델 한도(16K) 안에 유지.
- 의존성·빌드 산출물 자동 제외(`node_modules`/`dist`/`.d.ts`/`.min.js`/lock 등), 파일 30개·400KB 상한(초과 시 경고), 결과는 wiki 에 저장. 신규: [reviewPrompt.ts](src/features/datacollect/prompts/reviewPrompt.ts) · [reviewFiles.ts](src/features/datacollect/reviewFiles.ts). 테스트 +5건(전체 667 통과).
## v2.2.254 (2026-06-18)
### 🔎 빈 응답(empty response) 진단 정확도 — MoE 활성 파라미터 인식
- 일반 에이전트 채팅에서 약한 모델이 큰 입력에 첫 토큰 EOS 로 무너져 **빈 응답**이 날 때, 모델명 파서가 `gemma-4-26b-a4b` 를 "26B 큰 모델"로 오판해 엉뚱한 안내를 하던 문제. **활성 파라미터 추정**(`estimateActiveParamsB`: `a4b`→4, `A3B`→3, `e2b`→2) 추가 → MoE 를 정확히 식별. ([contextManager.ts](src/lib/contextManager.ts))