文档: 项目详情页走查(60项) + aichat效率走查(74项,含LLM缓存命中率核心发现)登记

This commit is contained in:
lxy
2026-08-09 21:35:03 +08:00
parent 5a92e6056c
commit 4a9f77872e
3 changed files with 302 additions and 0 deletions
+55
View File
@@ -579,6 +579,61 @@ graph TD
---
**关联**:父任务「总览页 + 项目列表 UI/UX 优化(持续更新)」(id: 0115aea6-b423-482a-8a64-b793a66a0417)—— 本走查作为该任务的子任务延伸。
---
### 🔍 2026-08-09 项目详情页走查(概览/文件/依赖图 · 3 agent 并行 + 主代核查)
> 用户要求「检查项目详情(概览、文件、依赖图)存在的问题」并「先检查做记录,不直接改」。详单见 [项目详情页走查-2026-08-09.md](./05-代码审查/项目详情页走查-2026-08-09.md)。共 **60 项**P0×1 / P1×6 / P2×14 / P3×27)。守 session-role-diagnose-only:仅走查登记,未实施代码。
**P0(核心不可用)**:
- [ ] **PD-P0-1** — 依赖图节点 Vue 组件未注册到 x6-vue-shape → **节点根本不渲染**(DependencyGraph.vue:82 只 import 未 register,`component` 字段库内不读;ModuleNode 读 props.data 但 vue-shape 传 {node,graph})
**P1(数据正确性/一致性·6 项)**:
- [ ] **PD-P1-1** — 中文文件名 git status 八进制转义未还原(core.quotepath 默认)→ 变更视图乱码/打不开/树无徽标(module.rs:1081-1091)
- [ ] **PD-P1-2** — 删除参与依赖的工程必失败(FK 约束无级联清理)→ remove_project_module 报错+前端误导(module.rs:249-260)
- [ ] **PD-P1-3** — 工作流日志/DAG/进度读全局 liveEvents 无项目隔离 → 跨项目数据错配(ProjectDetail.vue:676-709)
- [ ] **PD-P1-4** — projectTasks 无 df-data-changed 本地监听 → AI/其它视图改任务后概览列表陈旧(TaskDetail 已做此处漏做,:534-542)
- [ ] **PD-P1-5** — AI 写文件后自动切变更视图不刷新 GitChanges + 徽标计数清零(v-show 不重挂载,:399-411)
- [ ] **PD-P1-6** — 子目录展开失败把父级整棵树替换为错误态且无法自愈(FileTree:157-181)
**P2(体验/打磨·14 项)**:
- [ ] **PD-P2-1** 概览工程列表与 FileExplorer 双向不同步(:548-555) / **PD-P2-2** 快速切项目列表竞态(无 seq 守卫,:866-871) / **PD-P2-3** DAG 边条件编辑 emit 父级未监听→失效回退 / **PD-P2-4** onUnmounted stopEventListener 停全局监听波及他视图 / **PD-P2-5** 折叠态跨项目残留
- [ ] **PD-P2-6** 概览任务无 loading/分页 / **PD-P2-7** 项目状态 in_progress/testing 无 i18n / **PD-P2-8** 环高亮 attrs.body 选择器 vue-shape 无 body 元素(UX-P0-4 未真正修) / **PD-P2-9** 节点点击 emit 无人监听+路由重复导航(死代码) / **PD-P2-10** 零工程文件 tab 永久转圈无空态
- [ ] **PD-P2-11** 打开文件 tab 即全量 git status+log 扫描(纯浏览也扫) / **PD-P2-12** 切 tab v-if 反复销毁重建 FileExplorer(状态全丢+重复扫描) / **PD-P2-13** cycleNodes 跨数据变更不重置 / **PD-P2-14** 重复依赖可重复添加(前后端无去重)
**P3(边缘/打磨·27 项)**: 见详单文档(概览 O10-18 / 文件 F13-24 / 依赖图 G14-18)
> **优先级建议**:P0 G1 节点不渲染 → P1 F3 中文乱码 + G3 删依赖必失败 + O2 跨项目串数据 + O1 列表陈旧 + F1 变更不刷新 → P2 分批。
> **memory 指针**[[devflow-project-detail-walkthrough]]
---
### 🔍 2026-08-09 aichat 运行效率走查(6 路并行 · 单轮成本/工具/流式/前端/会话/LLM成本)
> 用户反馈「aichat 运行的效率很低」+「成本走查,比如有的 LLM 要求的缓存命中率规则」。详单见 [aichat效率走查-2026-08-09.md](./05-代码审查/aichat效率走查-2026-08-09.md)。共 **74 项**(单轮13/工具9/流式12/前端12/会话16/LLM成本12)。守 session-role-diagnose-only:仅走查登记,未实施代码。
**LLM 成本/缓存命中(用户重点 · P0×2)**:
- [ ] **AC-EFF-C0-1** — 全链路无 cache_control 注解,Anthropic 提示缓存未启用(system 纯 String 需改 text-block 数组;openai/DeepSeek 依赖自动前缀缓存)
- [ ] **AC-EFF-C0-2** — system prompt 每轮实时 DB 重建(prompt.rs:295/315 list_active 20+20),前缀不稳定 → **多轮 100% 缓存不命中每轮全价**。**修复优先级最高**:C0-1+C0-2 一起修才有效
- [ ] **AC-EFF-C1-1~3** — 日期在 system 位置0跨天失效 / 每轮全量重发 O(n²) 无缓存兜底 / augmentation+知识注入拼 system 添失效源
**后端效率(单轮成本 + 会话 + 工具 · P0×4)**:
- [ ] **AC-EFF-R1-1** 每轮全量历史重放无增量(O(n²) 成本大头) / **AC-EFF-R2-1** 每轮 ≥4 次全历史深克隆(2 次持 session 锁)
- [ ] **AC-EFF-L0-1** save_conversation 每轮 O(N) 克隆+截断+记录构建(单线程 runtime,无变化捷径在 records 后判定)
- [ ] **AC-EFF-L0-2** system prompt 每次操作 6-8 次串行 DB 查询全在首 token 关键路径
- [ ] **AC-EFF-L0-3** 自动压缩在 loop 内同步阻塞整轮(非流式 LLM 最长 60s)+ 必全量重写
- [ ] **AC-EFF-T1-1** 审计每工具 ≥1 次串行 INSERT(全局 DB 锁瓶颈,需批量事务) / **AC-EFF-T1-2** 只读缓存"假缓存"(每工具全量扫+DB 往返,需 O(1) 索引) / **AC-EFF-T1-3** git 工具不进缓存
**前端效率(流式 + 交互 · P1×4)**:
- [ ] **AC-EFF-S1-1** 单块回复每帧全量 lexer+parse(块级 memo 退化,长文卡顿主因) / **AC-EFF-S1-2** 长尾代码块每帧重跑 hljs
- [ ] **AC-EFF-F1-1~3** 回合收尾双拉列表 / notify 同窗口自触发 / loadConversations 无防抖(合并一个 debounced scheduleConversationsRefresh)
- [ ] **AC-EFF-S2-1** 每次 flush 两次整组件重渲染 / **AC-EFF-S2-5** AiCommandOutput 逐行未合批事件风暴
**P2/P3 其余 50+ 项**: 见详单文档(R2/R3/T2/T3/S2/S3/F2/F3/L1/L2/L3/C2/C3 全量)
> **优先级建议**:① C0-1+C0-2 缓存命中率 → ② L0-1 save + L0-2 system 缓存 + L0-3 压缩后台化 → ③ R1-1 全量重放 + S1-1 流式增量 → ④ T1-1 审计批量 + F1-1/2/3 列表刷新收敛。
> **memory 指针**[[aichat-efficiency-walkthrough-2026-08-09]]
### 🔴 2026-08-09 AI 自审/工作流推进链路缺陷(task_id 断裂 + AiNode 缺 prompt + 审批无 UI
> 用户「检查 AI self-review 遇到的问题」触发对工作流推进链路的深度审查。**核心结论:工作流推进按钮从 TaskDetail 触发时,三条推进链(in_progress/testing/done)全部不可用**。守 session-role-diagnose-only:本会话仅走查+登记,未实施代码。