Blocked-by: #14161
实现 ADR-0130 D5 + D7,epic #14122 实现面第 2+7 行。依赖 #14161 的 packages[] schema 先落地。
要求(单源在 ADR-0130 D5/D7)
packages/objectql/src/plugin.ts:405 的 ql.registerApp(manifest) 改为对物内 N 包的遍历,按依赖拓扑序注册。- ⛔ 复用
resolvePluginOrder(packages/core/src/plugin-order.ts:66,ADR-0116 单一排序器),不写第二排序机制;缺硬依赖与环的抛错行为继承,不重新裁。 - D5 行为性 pin(⛔ 不是排列断言):一个
packages[] 刻意排成"扩展在前、被扩在后"的物,装载成功且扩展在被扩对象上生效——只断言排序返回值的测试在"算了序没用上"的实现上也绿,恰是要抓的静默失效。 - D7 逐位相同测试:存量单
manifest 产物经新装载路径后,注册状态(包记录、每个对象 FQN、每个 _packageId 戳、命名空间所有者集合)与今日逐位相同——比对 registry 状态,不比对装载返回值。
Clause-②
预期 no(装载内部重构 + 测试;spec 面不动)。如实从 diff 自报。
验收
D5 行为性 pin 红→绿证据(消融:直接 for 数组时 pin 必红);D7 测试独立可跑;全部既有装载测试绿。
Blocked-by: #14161
实现 ADR-0130 D5 + D7,epic #14122 实现面第 2+7 行。依赖 #14161 的
packages[]schema 先落地。要求(单源在 ADR-0130 D5/D7)
packages/objectql/src/plugin.ts:405的ql.registerApp(manifest)改为对物内 N 包的遍历,按依赖拓扑序注册。resolvePluginOrder(packages/core/src/plugin-order.ts:66,ADR-0116 单一排序器),不写第二排序机制;缺硬依赖与环的抛错行为继承,不重新裁。packages[]刻意排成"扩展在前、被扩在后"的物,装载成功且扩展在被扩对象上生效——只断言排序返回值的测试在"算了序没用上"的实现上也绿,恰是要抓的静默失效。manifest产物经新装载路径后,注册状态(包记录、每个对象 FQN、每个_packageId戳、命名空间所有者集合)与今日逐位相同——比对 registry 状态,不比对装载返回值。Clause-②
预期 no(装载内部重构 + 测试;spec 面不动)。如实从 diff 自报。
验收
D5 行为性 pin 红→绿证据(消融:直接 for 数组时 pin 必红);D7 测试独立可跑;全部既有装载测试绿。