Files
DevFlow/docs/05-代码审查/claude-汇总-2026-08-02.md
T
lxy b7111fcabc 整理: docs 走查报告归档(walkthrough-2026-08 合并到 05-代码审查,删重复/空目录)
- 我的走查 5 文件(summary/nodes/ai_storage/ideas_frontend/infra)移 05-代码审查/(claude- 前缀区分 DevFlow AI)
- DevFlow AI 重复 3(00/04/05,与 05-代码审查/00-05 同主题)删
- walkthrough-2026-08/ + architecture/(空)删
2026-08-02 10:49:46 +08:00

3.8 KiB

DevFlow 全库走查报告(2026-08-02)

4 workflow / 35 维度 / df-nodes + AI 链路 + ideas + storage + 前端 + 基础设施 + 剩余模块 + UI/UX 走查原则(code-review-anti-contamination):只看代码,不信文档/会话描述,关键结论 file:line 源码佐证。

P0(严重 bug,已修)

# 问题 位置 修复
1 df-mcp update_idea/project/task 缺省字段被空串覆盖(部分更新丢 title) crates/df-mcp/src/tools.rs 回退 existing(fc249ad)
2 df-execute probe_pwsh 死缓存(两 OnceLock,Default 永返 PS5,Pwsh 全死代码) crates/df-execute/src/shell.rs OnceLock 单源 PWSH_CACHE(fc249ad)

P1(高优,4 修 + 2 专项登记)

# 问题 位置 状态
1 df-mcp evaluate_idea 标 Low 却写库(read-only 仍改) crates/df-mcp/src/tools.rs 拆 evaluate(只读)+score(写)fc249ad
2 df-execute probe_pwsh 无超时挂起 + detect_shell 与 shell.rs 割裂 shell.rs + env_snapshot.rs 3s 超时 + 单源 fc249ad
3 ai_self_review build_review_prompt 直接拼 output_text(prompt 注入) df-nodes/ai_self_review_node.rs truncate + XML 标签隔离 fc249ad
4 MessageList + MessageItem 两套 AI 消息渲染(死代码+职责混乱) src/components/ai/ MessageItem 收敛 user-only f719546
5 AI router 路由弱(context 死/weight 弱/意图误收敛砍 Data 工具) crates/df-ai/src/router.rs + intent.rs 📋 专项登记(memory ai-router-sanitize-refactor-debt)
6 sanitize step4 制造 orphan(依赖出口断言兜底) crates/df-ai/src/context/sanitize.rs 📋 专项登记(同上)

P2/P3(关键,后续按优先级)

问题 位置 级别
status 无 union(types.ts AiMessage 无 status,AiMessageWithStatus 双份重复 + cast) api/types.ts + AiChat.vue + MessageList.vue P2
useAiEvents/useToolCard/useAiSend 胖(900/730/500 行) composables/ai/ P2
ApprovalPopup _placeholder hack + 审批 action 两套(path 浮窗缺 always) views/ApprovalPopup.vue P2
df-nodes 6 节点未注册(git/http/docker/notify/subflow,实现完整不可达) state.rs build_registry P2
parse_review_json(verdict 不规范/score 不 clamp/无正则兜底) df-nodes/ai_node_helpers.rs P2
provider_pool 亲和不过 model.enabled crates/df-ai/src/provider_pool.rs P2
df-mcp inputSchema required 形同虚设(handler arg_str_or 静默兜底) crates/df-mcp/src/tools.rs P2
df-mcp bind_directory 路径校验弱(仅防 ..,无白名单) crates/df-mcp/src/tools.rs P2
SubflowNode node_type() 用 &'static str 风格分裂 df-nodes/subflow_node.rs P3
script_node 缺 R-PD-2 安全注释 df-nodes/script_node.rs P3

推翻假设(走查否定,更新认知)

  • AiChat.vue 798 行(非 3000+ God 组件),已抽 5 批(消息列表/输入区/工具卡片/顶栏/侧栏),memory fe-arch-tech-debt 过时
  • human_node 36KB 是测试 76%(实现 200 行内聚,无技术债),memory devflow-workflow-approval-review 头号 bug(human_node:41 缺 await)已修(line 55-64)+ 双回归测试

修复提交(本次走查)

  • fc249ad 全库走查 P0+P1 后端(df-mcp 数据丢失/evaluate 拆 + df-execute probe_pwsh 死缓存/超时/单源 + ai_self_review 注入隔离 + generate_image 测试)
  • f719546 前端走查 P1(MessageList/MessageItem 两套渲染收敛)

专项登记(核心,后续)

  • AI router + sanitize step4 — memory ai-router-sanitize-refactor-debt(核心模块,改风险大,后续专项)
  • run_agentic_loop 1217 行重构 — memory agentic-loop-refactor-debt(分步拆 finish_round_exit/build_runtime_prompt)

剩余

  • 技能发送后未注入 — SkillResolver 日志(dffc4e4)已加,待打包后测 trace 定位(前端 skill 传?/name 匹配?/read 失败?)
  • P2/P3 — 后续按优先级 + 用户反馈