Skip to content

관측 기반 실패 code 의 일시 전환 - #146

Merged
m-a-king merged 1 commit into
mainfrom
chore/145-transient-observed-codes
Oct 19, 2026
Merged

m-a-king merged 1 commit into
mainfrom
chore/145-transient-observed-codes

Conversation

@m-a-king

Copy link
Copy Markdown
Contributor

한눈에

추출 실패 가운데 확정으로 닫는 범위 축소

  • 이전: 추출 서비스가 받은 페이지에 상품이 없거나 읽을 수 없으면 확정 실패로 응답
    • 호출 서비스가 재시도 없이 그 항목을 실패로 닫음
    • 원인: 봇 방어·앱 오류·빈 페이지로 받은 페이지 자체가 가짜일 수 있음
  • 확정 실패는 링크 형식 위반·내부망 차단·이미지 형식 셋만 남김
  • 받은 페이지를 보고 내린 판정은 전부 일시 실패로 응답
    • 호출 서비스가 한 번 더 시도한 뒤 닫음
  • 이 계약을 쓰는 추출 서비스와 호출 서비스가 각자 뒤따라 바뀜

Situation

추가

  • 관측 기반 실패 code 의 일시 전환 #145
  • extractor 의 실패 분류 정본은 예외 팩토리의 permanent 플래그이고 CI 테스트가 이 proto 의 disposition 옵션과 대조함
  • core 의 CI 테스트는 PERMANENT code 전수가 자기 번역 표에 있는지 대조함
  • 결과: 이 PR 머지 전에 소비 repo 를 올리면 CI 가 깨짐

Task

계약 정본 전환

Action

관측 기반 code 9개의 disposition 전환

  • PERMANENT 에서 TRANSIENT 로
  • bucket 옵션은 PERMANENT 전용이라 9개에서 제거
  • Disposition 주석에 확정의 기준 추가
    • 링크 자체의 사실과 프로브 전용 code 만 확정
선택지 바뀌는 범위 비용
관측 기반 code 전부 일시 (채택) 차단 탐지 여부와 무관하게 재시도 진짜 상품 아닌 링크도 렌더 1회 추가
목적지 차단 신호가 잡힐 때만 일시 (TeamPiKi/extractor#103) status·헤더·제목으로 잡히는 차단만 200 소프트 차단·앱 크래시는 계속 확정

code 주석 3곳 수정

  • NOT_PRODUCT_PAGE: 상품 페이지가 아닌 문서에서 받은 문서에 상품이 없음으로
  • NO_EXTRACTABLE_CONTENT: 확정에서 실패로
  • PERMANENT_UPSTREAM: 이름이 확정이던 때의 잔재임을 명시
    • 원인: 계약이 additive 라 개명 없음

Result

확정 code

  • INVALID_URL·BLOCKED_HOST·IMAGE_UNSUPPORTED·MODEL_NOT_FOUND·MODEL_INCOMPATIBLE
  • bucket 은 NOT_PRODUCT·EXTRACT_QUALITY·INTERNAL_ERROR 만 부여 code 남음
    • UNREADABLE·BLOCKED 는 부여 code 0 이나 enum 값 유지

후속

  • extractor: 팩토리 permanent 플래그·테스트 갱신, Gemini 재시도 판단을 permanent 와 분리
  • core: 422 번역 표에서 9개 제거
  • contracts/extraction-api.md 의 확정 기준 설명은 이 PR 밖
  • 위험: 호출 서비스 집계에서 이 9개가 retry_exhausted 로 모임. code 별 관측은 extractor 메트릭에서

연관 이슈

@m-a-king m-a-king added the chore 그 외 (빌드·deps·ci·도구·설정·잡일) label Oct 18, 2026
@m-a-king m-a-king linked an issue Oct 18, 2026 that may be closed by this pull request
@m-a-king m-a-king self-assigned this Oct 18, 2026
@coderabbitai

coderabbitai Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 239b6505-6d16-4b7d-a436-102ae2fd4cd7
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

- 확정 code 13개 중 9개를 TRANSIENT 로 전환
  - 원인: 받은 페이지를 보고 내린 판정은 봇 방어·앱 크래시·빈 셸로 재료가 가짜일 수 있음
  - 결과: 호출자가 재시도 뒤 attempt 소진으로 닫음
- 확정 유지는 INVALID_URL·BLOCKED_HOST·IMAGE_UNSUPPORTED·MODEL_*
  - 원인: 링크 자체의 사실이거나 우리가 직접 막은 것
- bucket 은 TRANSIENT 에 없어 9개에서 소멸
- code 이름 유지
  - 원인: 계약이 additive 라 제거·개명 없음
@m-a-king
m-a-king force-pushed the chore/145-transient-observed-codes branch from 9eb7484 to 12558c7 Compare October 19, 2026 11:09
@m-a-king
m-a-king merged commit ed901d9 into main Oct 19, 2026
4 checks passed
@m-a-king
m-a-king deleted the chore/145-transient-observed-codes branch October 19, 2026 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore 그 외 (빌드·deps·ci·도구·설정·잡일)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

관측 기반 실패 code 의 일시 전환

1 participant