## 问题与影响 Agent将已有画布视频节点的素材加入时间线后,片段已进入轨道并保存,但画布没有显示“视频节点→时间线节点”的输入连线。用户无法从画布直观看到时间线使用了哪些来源节点;缺少连线容易被误认为素材未加入或保存失败。 ## 复现步骤 1. 在画布准备两个已有视频素材、当前可见的视频节点。 2. 委托Agent将这两个节点的视频依次加入时间线,并保存时间线节点。 3. 检查时间线轨道,两个片段及其素材引用均已存在。 4. 开启画布连线显示,检查两个视频节点与时间线节点之间的输入连线,并检查重开后的关联数据。 ## 预期与实际 - 预期:明确以已有画布节点为来源加入时间线时,片段和来源关联一起保存,画布可显示对应输入连线,重开后保持一致。 - 实际:`editor.create`成功保存片段,但`inputConnections=[]`,画布投影无法生成对应的`assembly_input`连线。已核验的创建记录中,该字段从初始版本即为空,并非后续刷新才丢失。 ## 定位与证据 核对版本:`6c83d43f32b335c63a0a1bb314967d6da91ec7d3`。 - [编辑文档契约](https://github.com/ThinkFlowLab/OpenDirector/blob/6c83d43f32b335c63a0a1bb314967d6da91ec7d3/packages/core/src/opendirector/domain/creation/editors.py#L417-L449)允许`inputConnections`默认为空;片段的`asset`引用本身不记录来源画布节点身份。 - [画布投影](https://github.com/ThinkFlowLab/OpenDirector/blob/6c83d43f32b335c63a0a1bb314967d6da91ec7d3/src/backend/creationProjection.ts#L749-L770)根据`inputConnections`生成`assembly_input`边;该字段为空时,即使来源节点可见、片段素材正确,也不会生成输入连线。 - 因此当前已确认的问题发生在节点来源关联的创建/保存路径。绘制端已有输入连线支持,不能仅在绘制组件中临时补边。 新增隔离复现覆盖正式应用服务命令与持久化重开,使用本地FFmpeg生成的最小视频文件,未调用付费模型,未改动用户工程: | 对照 | 保存结果 | 可见来源视频节点 | 时间线片段 | 持久化输入关联 | | --- | --- | --- | --- | --- | | 通过Agent来源的正式命令创建时间线,仅写入片段素材 | `applied` | 2 | 2 | 0 | | 用正式`editor.save`显式补齐来源关联后重读 | `applied` | 2 | 2 | 2 | 隔离验证未重新运行完整浏览器创作流程;画布缺线的判断结合用户观察、持久化状态及上述投影代码确认。 ## 验收标准 - [ ] Agent将明确指定的已有画布节点加入时间线时,同时保留对应片段与输入关联;画布显示输入连线,刷新、重开后仍正确。 - [ ] UI与Agent对相同节点来源执行加入操作时,遵循一致的关联规则。 - [ ] 关联正确指向来源节点、时间线片段及固定素材版本;同一素材对应多个画布节点时,不通过素材ID相同而猜测来源。 - [ ] 直接导入无画布节点来源的外部素材仍可使用,不强制生成虚假的节点连线。 - [ ] 补齐来源关系不改变现有片段顺序、裁剪、媒体引用或可编辑性。
Activity