Files
mini-openclaw-v2/backend
qiaoqichaoandClaude Code bd389ebd31 feat(v2): T07-c 预审运行装配与运行级集成,T07 收尾
T07 第三块。ScreeningRun 是**既有 run 对象的受约束投影**,不是第二份运行存储;
AC-13/14 由既有 enqueue 实现,本批只验证其成立、不重做。

新增契约:Degradation、DimensionResult、ProbabilityView、ScreeningRun。
契约层的硬约束:`probability` 与 `probability_view.real_estimate` 的类型就是
`None`,传任何数值都被 pydantic 拒绝——"未校准就没有概率"不靠自觉;
演示估计必须标 synthetic_demo 且带"人工设定"说明、取值 0–1。

新增 services/prescreen.py:
- assemble():把冻结方案、政策结论、降级与维度状态收成契约合法的运行视图
- versions_block():冻结 plan_hash 与各组件版本;题库与主审模型未接入时**留空**,
  不编造版本号
- dimension_results():维度状态由本次核查结果推出
- assert_versions_frozen():未冻结方案版本或专项修订的运行不得执行

**实现中被测试抓到一个真实错误**:初版把"被引用组件未报告结果"当作已核查
(状态 checked)。这是把静默当成通过,违背 BR-07。现改为:任一被引用组件没有
结果即 unknown;issue 优先于 unknown(具体阻断比信息缺失更该被看到)。

测试:新增 test_prescreen_run.py 20 项,其中 4 项直接验证既有 enqueue 的
AC-13(新证据→新快照+新运行、旧运行留存、旧 revision 冲突)与 AC-14(同键同载荷
返回同一运行、异载荷 409)。全量 410 项 OK(390 → 410);verify.py 10/10 PASS。

T07 三块完成,卡片验收对照:AC-05/06/07/12/45(T07-a)· AC-09/10/21(T07-b)·
AC-13/14 验证(T07-c)。AC-08 的跨项目引用拒绝已在 T03 覆盖。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-29 20:38:02 +08:00
..