**task-1565.1 완료 보고** (dev1-team) **완료 보고서** (3분 23초) **핵심 결과** `subprocess.run(["claude", "-p", prompt_text, "--model", "sonnet"])` 방식으로 전환 완료. `import anthropic` 및 `from anthropic.types import TextBlock` 2개 import 제거, API 키 로드/검증 분기 제거, 타임아웃 120초 설정. API 응답 형식(status, generatedContent, prompt, savedPath, message) 유지. pyright에서 `anthropic`/`TextBlock` 미정의 에러 0건 확인. ## 수정 파일 - `/home/jay/workspace/dashboard/server.py` ## 변경 내역 1. **import 제거** (구 라인 39-40): `import anthropic`, `from anthropic.types import TextBlock` 삭제. 이 endpoint에서만 사용되었으며 다른 곳에서는 미사용 확인 완료. 2. **API 호출 로직 교체** (구 라인 4316-4335 → 현 라인 4314-4329): - `_load_env_key("ANTHROPIC_API_KEY")` 호출 및 검증 분기 제거 - `anthropic.Anthropic` 클라이언트 생성 → `subprocess.run(["claude", "-p", ...])` 전환 - `TextBlock` 타입 체크 → `result.stdout.strip()` 직접 사용 - `subprocess.TimeoutExpired` 별도 처리(504 응답) 테스트: pyright 0 errors **발견/해결 이슈 3건** 1. **TimeoutExpired 미처리** — 원본 코드에 타임아웃 처리 부재. subprocess.TimeoutExpired를 별도 catch하여 504 응답 추가 2. **stderr 노출 길이 제한** — CLI 에러 시 stderr 전체 노출 방지. `result.stderr[:200]`으로 200자 제한 3. **환경변수 격리** — CLI 호출 시 불필요한 트래픽 방지. `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` 설정