Files
DevFlow/docs/05-代码审查/项目详情页走查-2026-08-09.md

6.3 KiB
Raw Permalink Blame History

项目详情页走查报告(概览/文件/依赖图)

走查日期:2026-08-09 范围:src/views/ProjectDetail.vue1346 行)+ src/components/project/FileExplorer 837 / FileTree 405 / DependencyGraph 490 / FilePreview / GitChanges / ModuleNode+ 后端 src-tauri/src/commands/module.rs 方法:3 路并行 Explore agent(概览/文件/依赖图)+ 主代理独立核查 ProjectDetail.vue 本体 性质:只走查登记,不实施代码(守 session-role-diagnose-only 关联:UIUX 扩展审查(2026-08-02)、TaskDetail 走查(2026-08-09,同批父子任务详情页)


一、概览 tabProjectDetail.vue)— 18 项

P13 项)

# 问题 位置
O1 projectTasks 无 df-data-changed 本地监听 → AI/其它视图改任务后概览任务列表陈旧(TaskDetail 已做 B-260616-18,此处漏做) :534-542, :849-863
O2 工作流日志/DAG/进度读全局 liveEvents,无项目隔离 → 跨项目数据错配(正在看项目 A 显示 B 的工作流) :676-689, :696-709
O3 概览工程列表与 FileExplorer 双向不同步 → 文件 tab 增删改工程后切回概览 modules 陈旧 :548-555

P25 项)

# 问题 位置
O4 快速切项目 loadProjectTasks/loadModules 竞态(无 seq 守卫) :866-871
O5 WorkflowDagDisplay 边条件编辑 emit update:dagJson 父级未监听 → 编辑静默失效回退 :326
O6 onUnmounted stopEventListener 停全局 workflow 监听,可能波及其他视图(共享单例) :876-880
O7 折叠态 descExpanded/workflowLogCollapsed 跨项目残留 :457-462
O8 概览任务列表无 loading 态、无 limit 分页(超上限静默截断) :537, :292-309
O9 项目状态映射不完整:in_progress/testing 等无 i18n 文案 constants/project.ts:11-15

P310 项)

O10 checkPath 重复触发(watch+显式双发)· O11 loading 态误判(store.error 非空显示"不存在")· O12 任务卡片只读不可点击跳详情 · O13 模板多次 parseStack 重复 JSON.parse · O14 sourceScores 宽度未 clamp · O15 日志自动滚动打断上翻 · O16 descCollapsible 字符数近似 vs TaskDetail DOM 测量不一致 · O17 onMounted 链式 await startEventListener 抛错跳过 checkPath · O18 handleSync 未刷模块/灵感


二、文件 tabFileExplorer/FileTree/FilePreview/GitChanges)— 24 项

P13 项)

# 问题 位置
F1 AI 写文件后自动切变更视图不刷新 GitChanges 列表 + 徽标计数被清零v-show 不重挂载,GitChanges 唯一重拉是 watch moduleId FileExplorer:399-411, :368
F2 子目录展开失败把父级整棵树替换为错误态且无法自愈(error 置父实例,优先于列表渲染) FileTree:157-181, :14
F3 中文文件名 git status 八进制转义未还原 → 变更视图乱码/打不开/树无徽标(core.quotepath 默认) module.rs:1081-1091, GitChanges:66-73

P29 项)

F4 git diff 仅 unstagedstaged/untracked 空 diff)· F5 切工程后 gitStatusData 不清 → 徽标张冠李戴 · F6 GitChanges 切工程遗留提交详情/选中态 · F7 文件树切工程双重请求+短暂显示旧文件 · F8 零工程文件 tab 永久转圈无空态 · F9 打开文件 tab 即全量 git status+log 扫描(纯浏览也扫)· F10 变更视图点文件默认看原文非 diff · F11 切 tab v-if 反复销毁重建 FileExplorer(状态全丢+重复扫描)· F12 FilePreview 大文件同步高亮阻塞 UI

P312 项)

F13 GitChanges.selectFile 拉 diff 从不渲染 · F14 refresh 用固定 50ms 睡 · F15 展开目录无加载反馈 · F16 findEntryGitStatus 全缓存线性扫描 · F17 双击目录无 in-flight 去重 · F18 FilePreview 切文件头部 size 残留 · F19 R 状态样式不一致 · F20 提交搜索只过滤已加载 50 条 · F21 提交 diff 含空格路径解析失败 · F22 目录不存在误显"非 Git 仓库" · F23 面包屑点击不展开目标目录 · F24 文件树 git 徽标模块路径≠仓库根失效


三、依赖图 tabDependencyGraph)— 18 项

P01 项)

# 问题 位置
G1 节点 Vue 组件从未注册到 x6-vue-shape → 节点根本不渲染register({shape,component}) 未调用,component 字段库内不读;ModuleNode 读 props.data 但 vue-shape 传 {node,graph} :82, :174-185, ModuleNode:18-26

P13 项)

# 问题 位置
G2 UX-P0-4 环高亮仍是空操作(attrs.body 选择器在 vue-shape 无 body 元素) :186-190
G3 删除参与依赖的工程必失败(FK 约束无级联清理)→ remove_project_module 报错+前端误导 module.rs:249-260
G4 点击节点无任何效果(emit 无人监听 + router.push 重复导航空操作) :230-233

P29 项)

G5 cycleNodes 跨数据变更/跨项目不重置 · G6 重复依赖可重复添加(前后端无去重)· G7 添加依赖不防环 · G8 边删除按钮定位偏移(未计工具栏高度)· G9 依赖加载失败静默吞掉→误导性空态 · G10 添加依赖失败无反馈 · G11 边 hover 监听重复累积(off 删不掉旧 handler)· G12 每次 renderGraph 重置视野 + 拖拽位置被 dagre 覆盖 · G13 无加载态

P35 项)

G14 后端 add_module_dependency 不校验 from==to 与模块归属 · G15 exportPNG 回调错误无法 catch · G16 ModuleNode 路径截断省略号混用+兜底丢根锚点 · G17 死配置/未过滤项(History/Snapline 无 UI、archived 进图、dep_type 回落)· G18 detect_module_cycles 只标节点不标边(需确认是否逐环展示)


四、优先级建议

P0(崩页/核心不可用)G1 依赖图节点不渲染 P1(数据正确性/一致性):F3 中文 git 乱码 · G3 删依赖工程必失败 · O2 工作流跨项目串数据 · O1 任务列表陈旧 · F1 变更视图不刷新 P2(体验/打磨):O3 模块双向同步 · F8 零工程空态 · F9 全量 git 扫描 · F11 切 tab 状态丢失 · G2 环高亮 · G4 节点点击死代码


五、登记去向

  • 本报告:docs/05-代码审查/项目详情页走查-2026-08-09.md
  • 看板:docs/todo.md 增登记条目(P0/P1 优先,P2/P3 分批)
  • 不实施:本次仅走查登记(用户明确要求先检查做记录)