From 26765a050a88bcfeebf7d801f7056ae26851b8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 19 Jun 2026 22:17:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=20=E5=BE=85=E5=AE=A1?= =?UTF-8?q?=E6=9F=A5=20CR-260619-17=20ai=5Fnode=20=E6=8B=86=E5=88=86?= =?UTF-8?q?=E5=AE=A1=E6=9F=A5=E5=9B=9E=E5=A1=AB(=E2=9C=85=20PASS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 6 维度全过:逻辑等价(逐字搬运)+ AiSelfReviewNode 抽出完整 + 测试共置 + state.rs 路径引用 + 注册键不变 + helpers 未重复抽。 Node trait/路径引用/注册键三项无回归。df-nodes 82 passed + workspace EXIT 0。 清理审查 agent 遗留重复登记块。无 🔴/🟡 阻塞项。 --- docs/待审查.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/待审查.md b/docs/待审查.md index db37878..d21d2ea 100644 --- a/docs/待审查.md +++ b/docs/待审查.md @@ -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)