Skip to content

fix: Renewal Agent 재조회 시 입력 상태가 초기화되는 문제 수정 - #375

Merged
krestar merged 3 commits into
mainfrom
fix/renewal-modal-state-on-refetch
Aug 20, 2026
Merged

fix: Renewal Agent 재조회 시 입력 상태가 초기화되는 문제 수정#375
krestar merged 3 commits into
mainfrom
fix/renewal-modal-state-on-refetch

Conversation

@krestar

@krestar krestar commented Aug 20, 2026

Copy link
Copy Markdown
Member

개요

Renewal Agent가 scenario=ask_hr 응답을 정상적으로 반환한 뒤에도, 업무 상세 페이지의 Task 재조회 과정에서 RenewalExecutionModal이 언마운트되면서 Agent 결과와 입력 상태가 초기화되는 문제를 수정합니다.

기존에는 Renewal 실행 성공 후 onApplied()에서 refetchTask()가 호출되면 taskStatus가 일시적으로 loading으로 변경되고, CaseDetailPage가 전체 로딩 화면을 반환했습니다.

이 과정에서 열려 있던 RenewalExecutionModal이 언마운트되어 내부의 result, instruction, slotAnswers 상태가 사라졌고, 재조회 완료 후 다시 처음의 요청 내용 입력 화면으로 돌아가는 문제가 있었습니다.

문제 상황

Renewal Agent 실행 결과가 다음과 같이 정상적으로 반환되는 경우에도:

{
  "task_status": "NEEDS_INFO",
  "scenario": "ask_hr",
  "missing_slots": [
    "wage",
    "working_hours",
    "job_description",
    "work_location",
    "contract_period"
  ]
}

사용자는 아래 추가 정보를 입력할 화면으로 이동하지 못했습니다.

  • 월 임금
  • 주당 근로시간
  • 담당 업무
  • 근무 장소
  • 계약 기간

실제 흐름은 다음과 같았습니다.

Renewal Agent 실행
→ HTTP 200 / scenario=ask_hr
→ RenewalExecutionModal.setResult(response)
→ onApplied(response)
→ refetchTask()
→ taskStatus = loading
→ CaseDetailPage 전체 로딩 화면 렌더링
→ RenewalExecutionModal unmount
→ 내부 state 초기화
→ 재조회 완료
→ 처음의 "요청 내용" 화면으로 복귀

원인

useApiQuery는 refetch 시 기존 data를 유지하면서 statusloading으로 변경합니다.

하지만 CaseDetailPage에서는 기존 Task 데이터 존재 여부와 관계없이 taskStatus === 'loading'이면 전체 페이지를 로딩 화면으로 교체하고 있었습니다.

따라서 최초 로딩뿐 아니라 백그라운드 refetch에서도 페이지 하위 컴포넌트가 모두 언마운트되었습니다.

변경 내용

  • 최초 Task 조회 시에만 전체 로딩 화면을 표시하도록 조건을 조정
  • 기존 Task 데이터가 존재하는 refetch 중에는 현재 업무 상세 화면을 유지
  • Renewal Agent 실행 결과 및 담당자 추가 입력 상태가 refetch 과정에서도 유지되도록 수정
  • 기존 Task/문서/활동이력/readiness 재조회 동작은 유지

핵심 변경 방향:

// before
if (taskStatus === 'loading') {
  ...
}

// after
if (taskStatus === 'loading' && !task) {
  ...
}

기대 동작

수정 후 흐름:

Renewal Agent 실행
→ HTTP 200 / scenario=ask_hr
→ 담당자가 채워야 하는 정보 표시
→ Task 백그라운드 refetch
→ Modal 유지
→ 월 임금 / 근로시간 / 담당 업무 / 근무 장소 / 계약 기간 입력
→ "답변 제출하고 다시 실행"
→ 다음 Renewal 단계 진행

검증 항목

  • 최초 업무 상세 진입 시 기존 로딩 화면이 정상 표시되는지
  • Renewal Agent가 ask_hr를 반환하면 USER_INPUT 필드가 표시되는지
  • refetchTask() 중에도 RenewalExecutionModal이 유지되는지
  • result, instruction, slotAnswers가 refetch 과정에서 초기화되지 않는지
  • 답변 제출하고 다시 실행 버튼이 유지되고 정상 동작하는지
  • Task/문서/활동이력/readiness 재조회가 기존과 동일하게 동작하는지
  • 기존 관련 테스트가 통과하는지

현재 local 상 AI repo가 연결되어 있지 않아, local 테스트는 진행하지 못했습니다.
배포 링크 상에서 직접 검증 후, 문제 시 revert하거나 수정 PR을 다시 올릴 예정입니다.

영향 범위

Client의 CaseDetailPage 로딩 처리와 Renewal Agent Modal 유지 동작에 한정된 수정입니다.

Server/AI API 계약 및 Renewal 실행 로직은 변경하지 않습니다.

@krestar krestar changed the title fix: Renewal Agent 재조회 시 입력 상태가 초기화되는 문제 수정` fix: Renewal Agent 재조회 시 입력 상태가 초기화되는 문제 수정 Aug 20, 2026
@krestar
krestar merged commit 8c918e3 into main Aug 20, 2026
1 check passed
@krestar
krestar deleted the fix/renewal-modal-state-on-refetch branch August 20, 2026 04:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant