Files
DevFlow/docs/05-代码审查/定时走查-2026-06-15-第8轮.md
绝尘 f30df333b3 docs: 巡检简报+todo 回写(2026-06-15 第2轮)
巡检发现:
- 2196c77 workflow 整文件替换回退破坏(AiChat+Ideas 12项功能)
- B-260615-03 truncated 标志已落地
- AR-8-scroll scrollToBottom smooth 已补
- CR-260615-09 .ai-md 残余:4详情页各21处 scoped .ai-md
  (全局 ai-md.css 75行已建,旧副本待清理但非阻塞)
2026-06-15 17:23:57 +08:00

65 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 定时代码走查 — 第 8 轮(前端收尾)
> 触发:定时走查 cron每 30 分钟)。范围 = **剩余小区域收尾**useConfirm/useMarkdown/ConfirmDialog/ToolCardList/constants/utils+ 核 CR-25/28/30 修复。
> 方法:主代理 git show 3 提交 + 1 路代理收尾走查。
> 性质:核对记录,不改产品代码(本会话 session-role-diagnose-only。todo 见 `docs/todo.md`。
> 关联:[第1-7轮](./)。
---
## CR-25/28/30 ✅(价值第 7 次闭环)
| 提交 | CR | 修复 |
|---|---|---|
| ac8dab3 | CR-25 ✅ | 分离窗口状态机destroyed 恢复 panelOpenR3+ resumeInDetached 核 ai_is_generatingR4+ 删 switchConversation 自动 switchR5|
| 40461b2 | CR-28 ✅ | knowledge create 内 loadCandidates 改非阻塞(不污染成功语义)+ Knowledge.vue error banner 消费 store.error**通道接通**|
| b300bb7 | CR-30 ✅ | useSetting 值类型契约文档 + changed helper JSON 深比较 |
**CR-29ai.ts messages 无上限 + knowledge 竞态)仍存**
## 数据完整性修复
todo:227 CR-30 行末**被污染**(上轮 Edit 锚错位接 CR-23 的 B-34 注释残留内容),本轮修复(删除 CR-23 残留段)。走查记录数据完整性已恢复。
---
## 收尾小区域(代理)— 无必修,质量过关
### CR-260615-31 [P2] 小区域健壮性Y-1/Y-2
- **Y-1 useConfirm 并发 confirmDialog 覆盖 resolve**useConfirm.ts:35-47连点两删除/confirm 交错时,第二个覆盖 `resolve`,前一个 Promise **永挂**(静默中断 + 轻微内存泄漏)。修:进入时 `resolve?.(false)` 打断前一个视为取消
- **Y-2 ToolCardList collapseInactive 漏清 expandedTools**:47-51只清 expandedCards 未动 expandedTools已完成卡片折叠后内容展开态残留 Set。修对称过滤或注释明确有意保留
### ✅ 5 亮点(收尾区域是项目较干净部分)
- **G-1 useConfirm 抽取消除 5 处重复**Projects/ProjectDetail/Ideas/Settings/AiChat— DRY 到位
- **G-2 useMarkdown 单例 + AiChat 流式 getter 复用** + **escapeHtml 全局单份** + **useRendered 已抽**CR-10 无残留重复)
- **G-3 XSS 防护链完整**renderMd `_purify.sanitize(_marked.parse(...))` + escapeFallback 纯文本转义双保险B-24 覆盖)
- **G-4 project 常量统一映射**label/badge/stage 三套 + accessor 兜底 + parseStack 防崩)— 根治三套矛盾
- **G-5 ConfirmDialog 自包含**(样式内联不依赖外部 .btn-*CSS 变量主题化)
> 硬编码中文文案AiChat:471/ProjectDetail:392均带「i18n 不在白名单」注释属已知取舍CR-08 范围内不重复记。
---
## 📊 8 轮 cron 走查总结(前端全覆盖)
| 维度 | 成果 |
|---|---|
| 轮次 | 8 轮 cron + 5 垂直切片i18n/api/列表页/AI窗口/stores+ 收尾 |
| 价值闭环 | **7 次**B-32/33/34/35 + AR-11 + CR-18/19/21/22/24/25/26/27/28/30 全被接收方修复)|
| 假阳性纠正 | 1 次Tauri camelCase代理 A 6 处误判经权威裁决纠正)|
| 数据完整性 | 1 次污染修复CR-30 行末 CR-23 残留)|
| 方法论 | 走查须地面 Read/权威为准(非注释);多代理交叉验证有效;垂直切片是横切收敛后的新发现来源 |
**前端剩余未修**CR-29ai.ts messages 无上限 + knowledge 竞态)/ CR-31useConfirm/ToolCardList 健壮性)/ CR-08i18n 硬编码 40+/ CR-09/10DRY .ai-md/renderedRef/ CR-12可选一组
---
## 💡 建议
前端走查已**充分覆盖**8 轮 + 5 垂直切片,收尾无必修,接收方修复速度跟上发现速度)。建议:
1. **停止 cron**(前端边际收益递减)— 用户可 `/loop` 停止或让我 CronDelete
2. **转 task2/3 后端 workflow 功能/模块垂直走查**(新维度:后端 src-tauri + 8 crate 全链路,此前前端走查未覆盖后端)
todo 映射CR-260615-31P2 收尾健壮性)。