Repository navigation
fix/#117-retry-job-snapshot - #118
Conversation
질문 생성이 실패해 질문을 다시 만드는 재시도이고 아직 면접 전용 면접관이 없으면, 처음 시작과 같은 직무 스냅샷을 만든다. 채팅 서버 전달만 실패한 재시도와 준비 중인 면접은 건드리지 않는다. 일반 직군 판정은 requiresJobSnapshot으로 모아 시작과 재시도가 함께 쓴다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
콜백을 기다리다 시간만 지난 N:1 준비 건은 재시도 안에서 실패로 닫히고 곧바로 질문을 다시 만든다. 면접관 고정 판단이 그보다 먼저 돌면 그 건을 아직 준비 중으로 보고 건너뛴다. 재시도 전에 시간이 지난 건부터 닫아 다시 만드는 재시도인지 확정한 뒤 고정한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d38c16be30
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (interview.getStatus() != Status.IN_PROGRESS | ||
| || tailors.findTopByInterviewIdOrderByCreatedAtDesc(interviewId).isPresent()) { | ||
| QuestionTailorEntity latest = tailors.findTopByInterviewIdOrderByCreatedAtDesc(interviewId).orElse(null); | ||
| if (interview.getStatus() != Status.IN_PROGRESS || (latest != null && !(retry && regeneratesQuestions(latest)))) { |
There was a problem hiding this comment.
Require an existing failed tailor before snapshotting retries
When a general-job user invokes the retry endpoint for an interview that has never been prepared, latest is null, so this condition falls through and creates a persistent persona snapshot before QuestionTailorService.retryPreparation rejects the request as “not started.” A rejected retry can therefore freeze the user's current major/job title; if the profile changes before the actual first preparation, that preparation keeps using the stale snapshot. In retry mode, return without snapshotting unless a non-null latest tailor is specifically in the question-generation failure state.
Useful? React with 👍 / 👎.
danjee2009
left a comment
There was a problem hiding this comment.
검토 결과: 확인된 수정 필요 결함은 없습니다. 일반 직군의 질문 생성 실패 재시도에서만 면접관 스냅샷을 보완하는 흐름, 시간 초과 정리와 전달 실패·준비 중 상태의 보존을 검토했습니다. 테스트는 직접 재실행하지 않았습니다.
#117
Task
InterviewJobSnapshotService.captureForRetry)capture)의 동작은 그대로다QuestionTailorService.expireTimedOutPreparation). 콜백을 못 받은 N:1 건이 재시도 안에서 실패로 닫히고 곧바로 질문을 다시 만드는 경우도 고정을 거친다requiresJobSnapshot으로 모아 시작과 재시도가 같이 쓴다. 개발·IT 비개발 직무는 재시도 동작이 바뀌지 않는다ETC
Doc/job-family-impl-spec/09-남은-구현-명세-2026-10-20.md§4./gradlew test(일회용 PostgreSQL 16): 969 tests, 실패 0. 새 테스트 9개(스냅샷 서비스 5, 준비 재시도 2, 재시도 전 정리 2)🤖 Generated with Claude Code