From f872e4666f62b03d66fc0c81bb69b16dd95625d8 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Fri, 24 Apr 2026 11:04:47 +0900 Subject: [PATCH] =?UTF-8?q?fix(ai):=20B-1=20envelope.from=5Fstage=20PR-A?= =?UTF-8?q?=20enum=20=EA=B0=92=EC=9C=BC=EB=A1=9C=20=EC=A0=95=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc 5260 (confidence 0.3 low_confidence 에스컬레이션) 실측에서 발견: EscalationEnvelope(from_stage='summary_triage') 가 PR-A ValidFromStage ({triage, summarize_short, advice_trigger, classify, night_sweep, ask_pre, unknown}) 에 없어 ValueError 발생 → 모든 deep_summary enqueue 가 envelope 생성 단계에서 터짐. tldr/bullets 기록은 envelope 실패 전에 완료되어 영향 없음 (try/except 가 classify 전체는 보호). P3a short summary 에서의 에스컬레이션 의미에 맞춰 'summarize_short' 로 변경. 내부 task 이름 (SUMMARY_TRIAGE_TASK = 'p3a_short_summary') 는 analyze_events. prompt_version 기록 전용이라 그대로 유지. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/workers/classify_worker.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/workers/classify_worker.py b/app/workers/classify_worker.py index bb28943..f8be607 100644 --- a/app/workers/classify_worker.py +++ b/app/workers/classify_worker.py @@ -479,8 +479,11 @@ async def _apply_triage_result( # enqueue deep_summary if escalate: try: + # PR-A envelope.ValidFromStage 기준 — P3a 에서 에스컬레이션은 'summarize_short'. + # 내부 task 이름 'summary_triage' 는 analyze_events.prompt_version 에만 쓰고, + # envelope.from_stage 는 PR-A 가 정의한 enum 값을 따른다. envelope = EscalationEnvelope( - from_stage="summary_triage", + from_stage="summarize_short", escalation_reasons=tuple([escalation_reason] if escalation_reason else []), risk_flags=tuple(routing_decision.risk_flags) if routing_decision else tuple(triage_out.risk_flags),