- 260326_evaluation_empty_response_and_polling.md: 실제 해결 완료 확인, frontmatter closed 처리 - 260326_principle_improvements.md: coding-principles.md 미반영 0건 확인, frontmatter closed 처리 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.0 KiB
2.0 KiB
date, subject, status, closed_date, closed_reason, writer, investigators
| date | subject | status | closed_date | closed_reason | writer | investigators |
|---|---|---|---|---|---|---|
| 2026-03-26 | IR Deck 평가 빈 응답 + 무한 폴링 문제 | closed | 2026-03-27 | 260326_ir_eval_empty_response_resolved.md에서 해결 확인. DB status/failed 갱신, response_format, max_tokens 수정 완료. open 문서는 계획 초안이었고, 실제 적용 후 종료 기록은 resolved 문서에 있음. | 24-claude (총괄) | 24-Cursor(백엔드), 24-Codex(API), 23-Cursor(프런트), 24-Gemini(로그) |
IR Deck 평가 빈 응답 + 무한 폴링
현상
- LLM evaluation이 빈 응답 반환 시 DB에 아무 상태도 안 남음
- 프런트가 evaluation_id로 조회 시 영원히 404
- 3분간 2초마다 폴링 (최대 90회 무의미한 호출)
근본 원인
| 위치 | 문제 | 위반 원칙 |
|---|---|---|
ir_deck_analyzer.py _evaluate_comprehensive |
실패 시 ValueError만 올리고 DB에 기록 없음 | coding-principles §3 (실패 의미 보존) |
ir_deck_evaluations 테이블 |
status 컬럼 없음 — 성공 INSERT만 존재 | coding-principles §5 (관측 가능) |
ir_deck.py GET endpoint |
DB에 행 없으면 404 — "실패"와 "미존재" 구분 불가 | coding-principles §3 |
useEvaluation.ts |
404를 "아직 처리 중"으로 해석, 폴링 지속 | coding-principles §4 (폴백 절제) |
수정 계획
백엔드 (24서버, rb8001)
ir_deck_evaluations에status컬럼 추가 (pending/completed/failed)- POST /evaluate 시 즉시
status: pending으로 INSERT - 성공 시
completed, 실패 시failed+ error_message UPDATE - GET endpoint: pending→200+pending, failed→200+failed, completed→기존 응답
프런트 (23서버, frontend-ir-valuation)
- 응답 status 필드 분기: pending→계속, completed→중단+표시, failed→중단+"평가 실패"
- 404 3회 연속 시 폴링 중단
- 3분 타임아웃 유지
에이전트 배분
- 24-Cursor: 백엔드 수정
- 23-Cursor: 프런트 수정