2.7 KiB
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-256f3820511f791769837d75be092934130c397cf46ee0acf79db28efca9a7948c9. WEB_TEST_PORT=5441 npm --prefix web run test:geometry-node-allowlist: unit 4/4 and Chromium 1/1 passed.- The real Main graph
WebGeometryNodesSimulationpreservedGeometryNodeSimulationInputandGeometryNodeSimulationOutput; an attempted graph transaction returnedGN_NODE_UNSUPPORTEDand retained the graph JSON, graph SHA-256 and Main revision. - The allowlisted
WebGeometryNodesgraph returnedCAPABILITY_MISSINGwhile 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-readerpassed (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), andgit 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.