Files
DevFlow/docs/05-代码审查/本次修复摘要-2026-08-02.md
lxy a28c00b1e5 文档: docs 整理收尾(INDEX 走查条目 + todo 待办梳理 + 待审查登记 + 修复摘要)
- INDEX: 加 claude 走查 5 + 本次修复摘要条目(05-代码审查)
- todo: P2/P3/专项/技能注入 待办登记(B-260801-01 实证不存在关闭)
- 待审查: CR-2026-08-01 13 agent 改动登记
- 修复摘要: 5 根因 + 13 agent + 提交链 + 专项 + 推翻假设 + 教训
2026-08-02 10:51:57 +08:00

53 lines
3.2 KiB
Markdown

# 本次修复摘要(2026-08-02)
> 5 根因诊断 + 35 维度走查 + 13 agent 根本修 + 架构专项登记
> 原则:机制 > 说教 / 根本 > 补丁 / 实证 > 声明 / 简洁+可靠平衡
## 5 根因(对话停止/工具失败,诊断 + 根治)
| 根因 | 修复 | 提交 |
|---|---|---|
| G2 熔断误停(结果空当漂移) | 签名重复判定 | 重组 57d6a2d |
| handshake 越权强杀活 loop | generating 归 guard 单源 | bdc51c1→57d6a2d |
| 空 tool_call id(SenseNova 结果路由错位) | 全局 AtomicU64 兜底 | 7b4e6b7→dffc4e4 |
| 多模态图片 URL(模型看不到图) | image part 前端扫描 | 03614b6 |
| download 引导(AI 用错工具) | fetch_url 错误引导 + prompt 职责 | 1ec844f |
## 13 agent 根本修(真 bug + 架构 + P1/P2 + UX)
**真 bug 3**:
- ai_node/ai_self_review schema required 对齐
- docker_node POSIX 单引号注入防御(所有元字符失效)
- parse_review_json(verdict 规范化/score clamp/正则兜底)
- ❌ conditions 单引号 P0 **误报**(三层验证无 bug)
**架构 3**(memory 专项):
- run_agentic_loop 抽 finish_round_exit + emit_ai_completed_once(6 退出点收敛,AiCompleted 11→2)
- AI router(estimated_context 接真实估值 + weight tier tieback + 意图 DataReadOnly 兜底 + provider_pool 亲和 enabled)
- sanitize step4(显式 skipped_head_ids 跟踪,不制造 orphan,自洽不依赖出口断言)
**P1 3**:HumanNode timeout 1800 / df-mcp 实体校验(改进错误信息,B-260801-01 实证不存在)/ keyring 明文达阈值清除
**P2 3 + UX**:status union(字面量+删 cast)/ parse_review / ApprovalPopup(_placeholder hack 消除 + dispatchApprovalIPC 共享 + always 按钮 + closeWithFallback + 拖动 JS API startDragging + Esc)
## 提交链(本次会话)
befc51b sanitize → e2c6891 G2+read_file → 77b9b8c obscura → c9f6345 工具增强 → bdc51c1 handshake → 1ec844f download 引导 → 03614b6 多模态 → db5997c provider → 3f37f0f defaultModel → 7b4e6b7 空 id → e64de23 搜索 → 41f514e defaultModel UI → 74e8cdd /技能 → 9ea4fed get_app_config → (重组 6:57d6a2d/023377a/e4f7b43/b999f79/50c2326/953a3fb) → dffc4e4 走查空id/generate_image → fc249ad P0+P1 → f719546 MessageList → ea309c6 后端 crate → 3f2cf5f agentic → f1773dd 前端 → 8eb689a docs
## 专项登记(memory,后续分步)
- **AI router + sanitize step4** — `ai-router-sanitize-refactor-debt`(核心,改风险大)
- **run_agentic_loop 1217 行重构** — `agentic-loop-refactor-debt`(finish_round_exit 第一步已做,剩 build_runtime_prompt/入口解析)
- **技能注入** — 待 trace(SkillResolver 日志 dffc4e4)定位 read/AI 忽略
## 推翻假设(走查否定,更新认知)
- AiChat.vue **798 行**(非 3000+ God,已抽 5 批)— memory fe-arch-tech-debt 过时
- human_node **36KB 是测试 76%**(实现 200 行内聚,无技术债)
- conditions 单引号 P0 **误报**(三层验证无 bug)
- B-260801-01 跨实体污染**不存在**(Repo 表级,detect_entity_owner 改进错误信息保留)
## 教训(`code-review-anti-contamination`)
走查必须**源码佐证,不信假设**。B-260801-01 走查误判(假设跨实体污染),DevFlow AI 实证 Repo 表级已隔离。conditions P0 走查误报(纸面推演),三层验证无 bug。**假设性"可能存在"必须实证**。