优化: 待审查 CR-260619-17 ai_node 拆分审查回填( PASS)

6 维度全过:逻辑等价(逐字搬运)+ AiSelfReviewNode 抽出完整 + 测试共置 +
state.rs 路径引用 + 注册键不变 + helpers 未重复抽。
Node trait/路径引用/注册键三项无回归。df-nodes 82 passed + workspace EXIT 0。
清理审查 agent 遗留重复登记块。无 🔴/🟡 阻塞项。
This commit is contained in:
2026-06-19 22:17:20 +08:00
parent c61a222db8
commit 26765a050a

View File

@@ -1140,6 +1140,32 @@
--- ---
### CR-260619-17 REFACTOR-260619-06 ai_node.rs 拆分(836→423,抽 AiSelfReviewNode·commit c61a222) — ✅ 已审(PASS)
- **结论(2026-06-19·独立 grep/read 核验 commit c61a222 + cargo test 复跑)**: ✅ **PASS** — 🔴0 🟡0 ⚪0
- **验证**: cargo test -p df-nodes 82 passed 0 failed 1 ignored(复跑通过,含 9 自审测试) / cargo check --workspace EXIT 0(零 warning) / 逐行 git show c61a222^ vs c61a222 对比 impl 体。
**6 维度逐项核验**:
| # | 维度 | 判定 |
|---|------|------|
| 1 | 逻辑等价 | ✅ AiSelfReviewNode struct + `impl Node`(execute/schema/node_type)+ build_review_prompt 逐字一致(逐行 diff 核验,无字符级改动);Node trait 签名 `df_workflow::node::Node` 不变 |
| 2 | AiSelfReviewNode 抽出完整 | ✅ ai_self_review_node.rs(447)含 struct:39 + new:45 + build_review_prompt:50 + impl Node:73-262,符合一节点一文件约定(human_node/script_node/task_advance_node) |
| 3 | 测试共置 | ✅ 9 自审测试全迁入 ai_self_review_node::tests(update_field_writes_output_json / parse_review_json_valid_passes_through / parse_review_json_invalid_falls_back_unknown / parse_review_json_strips_markdown_code_fence / truncate_for_summary_long_text / build_review_prompt_contains_inputs / gate_disabled_never_blocks_any_verdict / gate_enabled_blocks_only_on_fail / gate_unknown_verdict_does_not_block);ai_node.rs 测试模块止于 glm_live_complete:387,无自审测试残留 |
| 4 | state.rs 路径引用 | ✅ grep 全 src-tauri+crates 确认 `ai_node::AiSelfReviewNode` **0 残留**;state.rs:714 已改 `df_nodes::ai_self_review_node::AiSelfReviewNode`(注释同步 :708) |
| 5 | 注册键/node_type 不变 | ✅ state.rs:713 `register("ai_self_review", ...)` 字符串键未动(git diff 仅 :708 注释 + :714 路径两行变更);node_type() 返 "ai_self_review" 不变(ai_self_review_node.rs:260);task_workflow_templates.rs 本 commit 未改(字符串引用 :66/67/80/137 基于字符串非 Rust 路径,不受影响) |
| 6 | params/self_review 未重复抽 | ✅ ai_node_helpers.rs 本 commit 零改动(git show 空 diff);8 helper 全 pub(crate):resolve_and_parse/provider_from_params/resolve_provider/parse_params/REVIEW_SYSTEM_PROMPT/parse_review_json/truncate_for_summary/gate_should_block;ai_self_review_node.rs:17-22 仅 import 未重定义;build_review_prompt 留 ai_self_review_node(AiSelfReviewNode 专属,非共享 helper) |
**审查防污染印证**:
- 逐字搬运独立核验:对 ai_self_review_node.rs:75-262(execute impl 体)与 c61a222^:ai_node.rs:197-323 逐行比对,execute/schema/node_type 体字符级一致(含 review JSON 合并逻辑 / gate 闸门 return Err / schema params required 字段 / 注释文案),仅文件归属变更。
- imports 精简合理:ai_self_review_node.rs 删原 glob `#[allow(unused_imports)]`(改显式列 5 个 helper),ai_node.rs 主代码 import 收敛到 2 个(execute 唯二用)+ tests 模块独立 import 3 个(parse_params/resolve_provider/ResolvedProvider),无 unused warning(cargo check 零 warning 印证)。
- 行数账对:836(旧)≈ 423(ai_node.rs)+ 447(ai_self_review_node.rs)- 重复(imports/文档块重写),符合纯拆分预期。
- task_workflow_templates.rs 字符串引用经核基于 "ai_self_review" 字面量(dag.add_node:66/edge:80/test:137),非 Rust 路径,模块拆分对其零影响——印证「注册键字符串不变」论断正确。
- **待修项回流 todo**: **无** 🔴/🟡 项
---
## 已审归档 ## 已审归档
> 已审 CR 段迁独立文件: [待审查归档/2026-06.md](./07-项目管理/待审查归档/2026-06.md) > 已审 CR 段迁独立文件: [待审查归档/2026-06.md](./07-项目管理/待审查归档/2026-06.md)