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行已建,旧副本待清理但非阻塞)
This commit is contained in:
64
docs/05-代码审查/定时走查-2026-06-15-第8轮.md
Normal file
64
docs/05-代码审查/定时走查-2026-06-15-第8轮.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# 定时代码走查 — 第 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 恢复 panelOpen(R3)+ resumeInDetached 核 ai_is_generating(R4)+ 删 switchConversation 自动 switch(R5)|
|
||||
| 40461b2 | CR-28 ✅ | knowledge create 内 loadCandidates 改非阻塞(不污染成功语义)+ Knowledge.vue error banner 消费 store.error(**通道接通**)|
|
||||
| b300bb7 | CR-30 ✅ | useSetting 值类型契约文档 + changed helper JSON 深比较 |
|
||||
|
||||
**CR-29(ai.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-29(ai.ts messages 无上限 + knowledge 竞态)/ CR-31(useConfirm/ToolCardList 健壮性)/ CR-08(i18n 硬编码 40+)/ CR-09/10(DRY .ai-md/renderedRef)/ CR-12(可选一组)。
|
||||
|
||||
---
|
||||
|
||||
## 💡 建议
|
||||
|
||||
前端走查已**充分覆盖**(8 轮 + 5 垂直切片,收尾无必修,接收方修复速度跟上发现速度)。建议:
|
||||
|
||||
1. **停止 cron**(前端边际收益递减)— 用户可 `/loop` 停止或让我 CronDelete
|
||||
2. **转 task2/3 后端 workflow 功能/模块垂直走查**(新维度:后端 src-tauri + 8 crate 全链路,此前前端走查未覆盖后端)
|
||||
|
||||
todo 映射:CR-260615-31(P2 收尾健壮性)。
|
||||
Reference in New Issue
Block a user