From 714d0adebcedbdc736385c907d720d7a832e923a Mon Sep 17 00:00:00 2001 From: lili Date: Fri, 3 Jul 2026 14:32:57 -0700 Subject: [PATCH] =?UTF-8?q?fix(cheap):=20judge=5Fcheap=5Fverdict=20?= =?UTF-8?q?=E5=85=A8=E7=BB=BF=E8=B7=AF=20feedback=20=E6=96=87=E6=A1=88?= =?UTF-8?q?=E6=94=B9=E5=87=86(=E3=80=8C=E4=B9=9D=E9=97=A8=E5=85=A8?= =?UTF-8?q?=E7=BB=BF,=E6=94=BE=E8=A1=8C=E3=80=8D=E5=8F=96=E4=BB=A3?= =?UTF-8?q?=E8=AF=AF=E5=AF=BC=E7=9A=84=E3=80=8C=E6=9C=AA=E5=AE=9A=E4=BD=8D?= =?UTF-8?q?=E5=88=B0=E6=9C=AA=E8=BF=87=E9=97=A8=E3=80=8D;passed=3DTrue=20?= =?UTF-8?q?=E6=97=B6=20feedback=20=E6=9C=AC=E4=B8=8D=E5=9B=9E=E5=96=82,?= =?UTF-8?q?=E4=BB=85=E6=97=A5=E5=BF=97/trace=20=E7=94=A8)=20(T7=20fx4c-3?= =?UTF-8?q?=20=E5=A4=8D=E8=B7=91=E5=8F=91=E7=8E=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- tier2/gen-worker/worker/gate_judge.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tier2/gen-worker/worker/gate_judge.py b/tier2/gen-worker/worker/gate_judge.py index 50110334..f7a9ddf1 100644 --- a/tier2/gen-worker/worker/gate_judge.py +++ b/tier2/gen-worker/worker/gate_judge.py @@ -321,7 +321,10 @@ def judge_cheap_verdict(play_result: dict, *, game_id=None, staged_dir=None) -> # 放行必须「顶层 pass 且有逐门 guards」:空 guards 无从证明九门真跑过,不放行(防空 verdict 假绿)。 passed = bool(v.get("pass")) and bool(guards) failed_gates = [k for k, g in guards.items() if isinstance(g, dict) and g.get("pass") is False] - obj = build_cheap_feedback_obj(v, game_id=game_id, staged_dir=staged_dir) if not passed else None + if passed: + # 全绿:feedback 只作日志/trace 用(GateJudgment 契约:passed=True 时不回喂),给准确描述。 + return GateJudgment(passed=True, failed_gates=failed_gates, feedback="九门全绿,放行。") + obj = build_cheap_feedback_obj(v, game_id=game_id, staged_dir=staged_dir) if obj is not None: feedback = _render_cheap_feedback(obj) if staged_dir is not None: