Part of #195
Related: #131, #6
背景
当前 Workbench 已支持设置起始点、断点和静态禁用节点。Planner 可以把起始点之前、禁用或本次不可达的节点排除出 ExecutionPlan,但被排除节点原本产生的普通变量、ResourceSlot/Material 值不会因此自动存在。
在线性主线中从中间启动、在支路中间启动、禁用支路生产者或禁用主线中间节点时,下游可能仍引用这些输出。若直接运行,系统只能在任务输入绑定或节点 admission 时失败;更危险的实现会静默伪造值或错误沿用历史库存。
目标合同
在 Debug 启动前提供统一的“缺失绑定分析与引导补参”流程:
- OS 基于冻结 Workflow snapshot、start frontier、disabled 集合与本次 active scope 计算缺失输入,而不是由前端遍历 DAG 猜测。
- 每个缺失输入返回生产者、消费者、handle/data key、schema、是否物料、AllowedResourceTemplate/约束及缺失原因(起始点裁剪、静态禁用、支路 out-of-scope)。
- Workbench 分步引导:
- 普通值按 schema 填写并校验;
- 物料值只允许从当前实验室 Inventory Authority 中选择满足 AllowedResourceTemplate/约束的稳定 Material UUID;
- 可选输入允许显式使用 default/None;必填输入不得跳过。
- 补充值作为 immutable Debug launch input overrides 随 Task 一次性冻结并审计;不写回作者源码,不修改当前库存归属,不复用前一次 Task 的隐式值。
- 断点本身不改变数据依赖;仅 start/out-of-scope/disabled 触发缺失绑定分析。
- 若删除/禁用导致控制流或数据流无法证明可执行,启动必须失败关闭并给出节点级中文诊断。
支路语义
- 从某支路内部启动时,只补该 active scope 需要且上游已被裁剪的边界输入。
- 禁用某支路生产者但 join/主线仍消费其输出时,必须要求补值或拒绝启动,不能把该支路简单视为“无影响”。
- 多个下游消费同一缺失输出时,默认共享一个冻结补充值;除非 schema 明确要求独立实例。
- 组合工作流边界必须按 published input/output contract 分析,不能依赖展开后的 UI 节点位置。
验收
- 线性图:从中间节点启动,补普通值后可运行。
- 物料主线:从中间节点启动,只展示满足 AllowedResourceTemplate 的当前实验室物料。
- 支路:起始点位于支路内部,准确识别 branch-local 缺失输入且不要求无关主线值。
- 禁用支路生产者:join 消费其输出时启动前阻止并引导补值。
- 禁用中间节点:其输出无人消费时无需补值;仍被消费时必须补值。
- 断点:不产生额外补参要求。
- Task/重启:补充值冻结、可审计、重启恢复且不会污染下一次 Debug Task。
- 浏览器 E2E 使用真实 OS、真实 Inventory Authority 与至少一个含支路 Workflow。
当前排期
按 2026-08-11 用户决策,本功能不阻塞 0.1.0 最终离线安装包;Constructor 与嵌入式 OS 安装完成后再进入实施。
Part of #195
Related: #131, #6
背景
当前 Workbench 已支持设置起始点、断点和静态禁用节点。Planner 可以把起始点之前、禁用或本次不可达的节点排除出 ExecutionPlan,但被排除节点原本产生的普通变量、ResourceSlot/Material 值不会因此自动存在。
在线性主线中从中间启动、在支路中间启动、禁用支路生产者或禁用主线中间节点时,下游可能仍引用这些输出。若直接运行,系统只能在任务输入绑定或节点 admission 时失败;更危险的实现会静默伪造值或错误沿用历史库存。
目标合同
在 Debug 启动前提供统一的“缺失绑定分析与引导补参”流程:
支路语义
验收
当前排期
按 2026-08-11 用户决策,本功能不阻塞 0.1.0 最终离线安装包;Constructor 与嵌入式 OS 安装完成后再进入实施。