WIP: 实现资源依赖关系图层 #126
Reference in New Issue
Block a user
Delete Branch "codex/dependency-graph"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
新增资源依赖图模型、去重、环检测与上下游查询。
使用原生 SVG 渲染资源引用和聚合任务流,并接入搜索、高亮、拖动及生命周期清理。
修复资源自引用连线被卡片遮挡的问题。
补充前端回归测试并同步工作台 PRD、技术方案和决策记录。
[P1] 拖动卡片会全量重建依赖 SVG。4096 个资源时约生成 12,285 条 path;实测单次拖动重渲染约 179ms,约 5fps。ResourceDependencyOverlay.tsx:184-236,304-376 还会每帧重建 ResizeObserver,不满足实时连线要求。
[P2] index.tsx:331-355 错把画板资产的 source.taskId 当作 manifest 任务 ID。该字段实际是 External Editor 生成任务 ID(如 task-1),导致正式规范图、UI 原型和图集缺失聚合 task-flow 与上下游高亮。新增测试使用了非生产数据形状,未覆盖此问题。
[P2] 自引用闭环向卡片右侧延伸 56px,但画布 extent 只预留 16px。Chromium 中滚到最右仍会裁掉约 8px,闭环显示不完整。
计算和处理过程推荐放到rust中
[P1] 4096 张资源卡片拖动时仍整体重渲染。 index.tsx:820-833 每帧更新父组件 state,index.tsx:1247-1370 随后重新遍历全部资源;ResourceCard(:470)没有 memo,且传入内联回调。4096 张真实卡片的 jsdom 定向测试中,一次有效拖动耗时 179.53ms。这个数字不能等同于 Chromium,但已证明当前结构明显超出文档要求的 <16.7ms 帧预算。
[P2] 依赖图返回晚于首次布局初始化,正确层级不会触发重排。 index.tsx:611-709 在 Rust graph 尚未返回时先用 dependencyDepth=0 初始化布局;useProjectResourceCanvasLayout.ts:438-475 会据此生成并持久化坐标。graph 返回后,:501-523 的 reconcile 为保留已有/手动位置,不会按新深度重新排布。延迟 graph 测试确认 producer 信息到达前后坐标完全不变。
由于本周需求包含该分支所写部分功能,也有一些需求冲突,所以我目前是想合并该分支后新建分支完成本周任务。但是CI测试一直无法通过,无法进行后续开发。所以应该强行合并还是直接抛弃该分支后新建分支开启本周任务。(毕竟该分支部分功能如拖拽资源卡片是最新需求里抛弃的)
由pr129一并交付
Pull request closed