Advance M8-M11 parity workflows
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-08-17 04:37:07 -04:00
parent 7c16b279ae
commit 0fe8d2bb56
324 changed files with 31920 additions and 863 deletions

View File

@@ -7,14 +7,46 @@
本轮已交付版本化 `GeometryNodeGraphIR`、node/socket/link/domain 校验、支持节点白名单、
循环依赖和自递归 group 检测。Object/Collection/Image Info 资源现在按 SceneIR stable ID、
资源类型、owner cycle 和 linked/missing/corrupt 沙箱校验。合法图仍只通过协议门native
lazy-function evaluator 未启用时返回 `CAPABILITY_MISSING`
资源类型、owner cycle 和 linked/missing/corrupt 沙箱校验。保存于 Blender Main 的 allowlist
图已启用有界 native evaluator;任意图写回仍返回 `CAPABILITY_MISSING`
`SimulationCacheManifestIR` 已绑定 graph/source blend/input hash、Blender 5.2、完整帧范围、
连续 byte range、总 payload 和逐帧 SHA-256。StorageWorker schema 6 使用 OPFS 内容寻址资产
`simulation_manifest` 索引,写入前核对当前 committed blendWorker 重启后重新逐帧验证;
缺失、版本不符和损坏均结构化阻断。
M10-01 已把真实 Blender Main 图拓扑、socket 默认值、link 和稳定 node/socket ID 发布到
SceneIRM10-02 将 16 项 allowlist 固定为 schema 1。M10-03 用 11 个 Blender 5.2 desktop
fixture 覆盖全部 16 项节点,并在 Node full-Main WASM 与 Chromium Worker 打开、求值、保存、
重开路径逐项比较 topology、position、bounds 和 point float attribute。当前误差为 0门限为
position max `1e-5`/RMS `1e-6`、attribute `1e-6`、bounds `1e-5`。真实 Simulation Zone 节点
仍返回 `GN_NODE_UNSUPPORTED` 并保留原图、graph hash 和 Main revision。
仍未声明:浏览器生成 bake、WASM Simulation Zone 求值、cache frame seek 接入 GN modifier、
任意 lazy-function/field/instance graph。验收`npm --prefix web run test:simulation-cache`
`npm --prefix web run test:capability-gates`
M10-04 已冻结 field materialization schema 1POINT/EDGE/FACE/CORNER/CURVE/INSTANCE/LAYER
分别具有元素上限,单批最多 64 fields、32 次 domain conversion、4,000,000 个目标元素和
64 MiB单 field 超过 65,536 scalar 时禁止 JSON transport。Depsgraph 的真实 point Float
attribute 回执携带 schema、domain cardinality、元素/scalar/byte 数并与 payload 交叉校验;
基数漂移、字节漂移、隐藏 JSON 数组和未知 domain 均 fail-closed。
M10-05 将 `SimulationCacheManifestIR` 升为 schema 2加入 committed `sourceRevision` 和可由
graph ID/hash、source blend hash、source revision、input hash、Blender 版本及 frame range
复算的完整 `revisionHash`。cache key 不再截取 hash 前缀,而是 `sim2-` 加完整 revision hash
Storage Worker 的 put/read/frame/list 均在 project lock 内核对当前 committed revision/hash
revision 只保留在存储中、不进入当前列表且显式读取返回 `SIMULATION_CACHE_REVISION_MISMATCH`
manifest/frame 未声明字段、legacy schema、graph/source/input/range 漂移均 fail-closed。
`SimulationCacheManifestIR` 已绑定 graph/source blend/input/revision hash、Blender 5.2、完整帧范围、
连续 byte range、总 payload 和逐帧 SHA-256。StorageWorker schema 7 使用 OPFS 内容寻址资产、
`simulation_manifest` 索引和 `simulation_quarantine` 隔离 store写入前核对当前 committed blend。
每个 Worker 生命周期必须先完整复验 cache 才允许逐帧播放;播放/写入支持 AbortSignal取消不发布
manifestLRU 按 `lastAccessAt/createdAt/cacheKey` 确定性淘汰并保护 active playbackWorker 重启
重新验证manifest 或 payload 损坏会从可播放索引移入 quarantine列表仍返回其他有效 cache。
M10-15 为 GN 和 Simulation 分别增加隔离 Chromium Worker 门GN 以 10 次 512-node
parse/validate、超 node budget 和 dependency cycle 覆盖性能/OOM-prevention/恶意输入Simulation
以 64 帧逐帧 hash、16 GiB+1 manifest 和未声明字段覆盖同三类门。两域均在失败后由同 Worker
完成小输入恢复。
仍未声明:任意 field/domain 实际求值、完整 lazy-function runtime、图写回、浏览器生成 bake、
WASM Simulation Zone 求值、cache frame seek 接入 GN modifier 和任意实例图。验收:
`npm --prefix web run test:geometry-node-evaluator-golden`
`npm --prefix web run test:geometry-node-field-budget``npm --prefix web run
test:simulation-cache-identity``npm --prefix web run test:simulation-cache`
`npm --prefix web run test:simulation-cache-performance``npm --prefix web run
test:simulation-cache-lifecycle``npm --prefix web run test:capability-gates`
`npm --prefix web run test:m10-domain-gates`