002 — Backlog: Push Delivery Reporting (Client-Side)
출처 플랜: docs/development/plans-archive/002-push-delivery-reporting/
등록일: 2026-03-21
검증 등급: A- (🟢 양호)
배경
dha-sleep-api에서 agentz-studio platform으로 push delivery 상태를 보고하는 기능 구현 완료. 테스트 부재와 기존 코드의 retry 미작동 문제가 후속 조치로 남음.
High Priority
1. PushDeliveryReporterService 단위 테스트
우선순위: P1
best-effort HTTP 서비스에 대한 단위 테스트 작성:
agentz.enabled=false시 early return- fetch 성공 (200) 시 debug 로그
- fetch 실패 (4xx/5xx) 시 warn 로그
- fetch timeout (5s) 시 catch 동작
- optional 필드 누락 시 body에서 제외 확인
관련 코드: apps/dha-sleep-api/src/app/push/push-delivery-reporter.service.ts
Medium Priority
2. Bull retry 미작동 문제 분석 및 수정
우선순위: P2
기존 push-job.processor.ts에서 첫 실패 시 DB status를 FAILED로 변경(line 182-192)한 후
throw(line 213)로 Bull retry를 트리거하지만, retry attempt 2에서는
push.status !== SCHEDULED 체크(line 63)에 걸려 "already processed"로 성공 처리된다.
결과적으로 Bull의 3회 retry 설정이 사실상 동작하지 않음.
수정 방향:
- 실패 시 status를 FAILED 대신 SCHEDULED로 유지하고 metadata에만 failure 기록
- 또는 retry attempt에서 FAILED 상태도 재처리하도록 status 체크 수정
관련 코드: apps/dha-sleep-api/src/app/push/push-job.processor.ts:63, 182-213
참고
- Plan Archive
- [agentz-studio Plan 120](Push Delivery Monitoring Platform — platform-side)