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:
2026-06-15 17:23:57 +08:00
parent 672d677046
commit f30df333b3
17 changed files with 2184 additions and 15 deletions

View 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 恢复 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 收尾健壮性)。