fix: 사전지식 색인 transient 실패 판별 누락 수정
is_transient 가 실제 클라이언트 예외를 전부 영구 실패로 분류해, ai-home 재시도 tick 의 claim 조건(retryable IS TRUE)에 걸리는 잡이 만들어지지 않았다. dev 에서 ES 순단으로 실패한 잡(httpx.ConnectError)이 한 번도 재발행되지 않고 tick 은 계속 count=0 이었다.
- httpx.TransportError 추가: httpx 예외 계층은 표준 ConnectionError/TimeoutError 를 상속하지 않아 ES/스토리지 연결·타임아웃 오류가 전부 누락됐다.
- 상태코드 추출을 _http_status 로 분리: httpx.HTTPStatusError 는 status_code 가 없고 response.status_code 에 있으며, google-genai APIError 는 code 가 int 상태코드이고 status 는 'UNAVAILABLE' 같은 문자열이라 기존 검사에서 둘 다 빠졌다.
- int 이 아닌 값은 상태코드로 취급하지 않는다(sqlalchemy 예외의 code 는 문서 코드 문자열).
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com