Files
workinf_Blender_Wasm/docs/status/M10-02.md
mes123456 0fe8d2bb56
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
Advance M8-M11 parity workflows
2026-08-17 04:37:07 -04:00

57 lines
2.7 KiB
Markdown

# M10-02 Status
status: done
task: Geometry Nodes allowlist 与未支持节点无损阻断
updated: 2026-08-16 America/New_York
## Scope
`GEOMETRY_NODE_ALLOWLIST_SCHEMA` and `GEOMETRY_NODE_ALLOWLIST` freeze the only node
types that may proceed past the Geometry Nodes protocol gate. The gate validates the
complete graph before any Main writer call. A node outside the list returns
`GN_NODE_UNSUPPORTED`; a structurally valid allowlisted graph still returns
`CAPABILITY_MISSING` from the production Worker until its evaluator and desktop/WASM
golden are completed by M10-03. Neither failure mutates Main or replaces the graph
read by M10-01.
## Allowlist
Schema 1 contains 16 node types: Group Input/Output, Transform Geometry, Set
Position, Join/Separate Geometry, Realize Instances, Store Named Attribute, integer/
vector input, Value, Compare, Math, and Object/Collection/Image Info. External resource
nodes remain subject to stable-ID, missing-resource, linked-resource and owner-cycle
checks.
## Evidence
- Golden: `tests/golden/M10-02/geometry-node-allowlist.json`.
- Fixture: `tests/files/web/modifier_geometry_nodes_scene.blend`, SHA-256
`f3820511f791769837d75be092934130c397cf46ee0acf79db28efca9a7948c9`.
- `WEB_TEST_PORT=5441 npm --prefix web run test:geometry-node-allowlist`: unit 4/4
and Chromium 1/1 passed.
- The real Main graph `WebGeometryNodesSimulation` preserved
`GeometryNodeSimulationInput` and `GeometryNodeSimulationOutput`; an attempted
graph transaction returned `GN_NODE_UNSUPPORTED` and retained the graph JSON,
graph SHA-256 and Main revision.
- The allowlisted `WebGeometryNodes` graph returned `CAPABILITY_MISSING` while the
evaluator is still closed; it also retained graph identity and Main revision.
- M10-01 regression: `WEB_TEST_PORT=5442 npm --prefix web run
test:geometry-node-main-reader` passed (unit 4/4, reader 1/1, Chromium 1/1).
- Full unit suite: 131/131 passed.
- `npm --prefix web run typecheck`, `npm --prefix web run lint`,
`npm --prefix web run build` (73 modules), and `git diff --check`: passed.
## Implementation Hashes
- Protocol: `23c2289ec2acbdce0beba47c0b6539bc3f14f5a71ce29927df86cf6c705d6ec3`.
- Unit: `e60933ed0f946bdaa96f5322ba8d80b26c8425c623dd6e87da33016a1592c299`.
- Chromium: `ff2c838b5c16d86eff13699586a0cd1121ee1a86d5ea52d7b89c01d35632bb77`.
- Golden: `471fec9c5382ab7522b6c18ab580a6926eaa59eb5a8b72d23968670b9b9ab37a`.
- Production Worker: `4a65547e6b1fea16a120b4e72eb37d4d9f7c7ced4342f535796535262ff65fcc`.
## Rollback
Remove the exported allowlist schema/list, M10-02 unit/E2E assertions, golden,
package script and this status file together. The older private allowlist behavior is
otherwise unchanged; no persisted schema migration is required.