Repository navigation
fix(ai): Gemini 장애 시 읽기 타임아웃 복구 경계 개선 - #154
Merged
Merged
Conversation
krestar
marked this pull request as ready for review
October 26, 2026 18:30
6 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
2026-10-27 Render 운영 로그에서 이야기 시작 시 Gemini 503 반복 및 약 40초 후
RestClientException으로 감싸진SocketTimeoutException을 확인했습니다.무엇이 바뀌나요?
SocketTimeoutException인 경우PROVIDER_NETWORK로 분류해 기존 bounded recovery에 포함; 그 외RestClientException은 비재시도 provider 오류책임 경계
어떻게 검증했나요?
./gradlew clean test./gradlew postgresIntegrationTest./gradlew buildcd frontend && npm ci && npm test && npm run lint && npm run build추가된
GeminiNarrativeAdapterTest: wrapped read timeout이RecoverableNarrativeResponseException(PROVIDER_NETWORK)가 되는지, 일반RestClientException은NarrativeProviderException인지 확인.GeminiProviderSettingsTest는 primary/fallback URL 및 기존 thinking contract를 확인.CI 증거: https://github.com/krestar/uctale/actions/runs/40379491482 (최종 head
0a9ff361, Backend / PostgreSQL integration / Frontend 모두 success).비판적 검토에서 반영한 내용: 초기 PR에 누락된 HTTP client 예외 회귀 테스트, default property, README/architecture 동기화를 수정. Run-time 환경변수 override가 기본값과 다를 수 있다는 배포 주의사항도 기재. 외부 provider가 정상화됐다는 주장은 하지 않음.
게임 상태·AI 안전성
보안·비용
API·DB·운영 영향
화면 / 응답 예시
새 API schema 없음. 한시적 네트워크 오류 재시도 소진 시 기존
NARRATIVE_PROVIDER_UNAVAILABLE응답 경계가 적용될 수 있음.