From 65bb1ae6a8fb5cad336c2d540e3cea39b85b2a4f Mon Sep 17 00:00:00 2001 From: "agent.develop" Date: Wed, 30 Sep 2026 18:15:34 +0800 Subject: [PATCH] =?UTF-8?q?approve:=20=E4=BF=AE=E5=A4=8D=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E8=BF=AD=E4=BB=A3=202=20=E4=B8=AA=E5=8A=9F=E8=83=BD=20Bug?= =?UTF-8?q?=EF=BC=88pbls-=E5=88=9D=E5=A7=8B=E8=BF=AD=E4=BB=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pbl_runtime_ext/init.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pbl_runtime_ext/init.py b/pbl_runtime_ext/init.py index 7940517..eec9728 100644 --- a/pbl_runtime_ext/init.py +++ b/pbl_runtime_ext/init.py @@ -31,7 +31,10 @@ else: _M11B_IMPORT_ERROR = None MODULE = "pbl_runtime_ext" -EXPECTED_TABLES = 3 +# [r13-start3 修复] 原值 3 是陈旧硬编码:tables.py(单一真源)为 4 表—— +# M11a 新增 pbl_runtime_idempotency 后本常量未同步,导致 fail-closed 拒启。 +# 期望表数以 tables.TABLES 为准,此处仅做漂移哨兵。 +EXPECTED_TABLES = 4 # M11b 必须在 ServerEnv 上注册的名字(dspy 裸全局名调用);自检据此核对「三处同步」 M11A_ENV_REGISTRATIONS = ( @@ -303,9 +306,12 @@ def load_pbl_runtime_ext(env=None): for m in msgs: _log(srv, m) if not ok: + # [r13-start3 修复] 原过滤 "FAIL" in m:失败行(如"表数=4 应为 3")不含 FAIL + # → 报错正文恒为空,不可行动。改为取全部非 PASS 行,仍为空则回显全量尾部。 + _failed = [m for m in msgs if "PASS" not in m] or msgs[-6:] raise RuntimeError( "%s self_check FAILED(fail-closed,拒绝启动):%s" - % (MODULE, "; ".join([m for m in msgs if "FAIL" in m][:6])) + % (MODULE, "; ".join(_failed[:6])) ) # 注册完整性同样 fail-closed:漏一个 dspy 契约名字就拒绝挂载(防上线 NameError)