1.8 KiB
M11-08 Status
status: done task: preserve unsupported compositor graphs and block execution updated: 2026-08-17 America/New_York
Scope
The CPU compositor and cached execution entry points now preflight the complete parsed
graph before evaluation or cache lookup. Any UNSUPPORTED node blocks with
COMPOSITOR_NODE_UNSUPPORTED, including a disconnected node that does not contribute
to the Composite output. Unsupported Blender type names are sorted and deduplicated so
the failure is deterministic.
The gate is pure: it does not remove nodes, rewrite links, advance Main revision, run a
cancellation callback, allocate an output, or accept a previously cached result. The
existing Blender 5.2 fixture preserves its Glare node name, UNSUPPORTED IR type, and
CompositorNodeGlare source type before and after the failed attempt.
Evidence
WEB_TEST_PORT=5565 npm --prefix web run test:compositor-unsupported-gate: unit 2/2, native Main reader, and Chromium 1/1 passed.WEB_TEST_PORT=5566 npm --prefix web run test:e2e -- --grep "N-020": 2/2 passed; the supported synthetic CPU graph still executes, while the real graph containing a disconnected Glare node now fails closed.- The first new unit run was 172/173 because an async rejection used
assert.throws. It was corrected toawait assert.rejects; no implementation failure was counted as evidence. The complete Node suite then passed 173/173. - Full regression passed: typecheck, lint, production build, status consistency,
release evidence validation, and
git diff --check.
Rollback
Remove the complete-graph preflight from CPU/cached execution and the M11-08 tests and golden, restore the old N-020 smoke expectation, restore M11 to 7/14, and remove the N-020 completed slice. Keep M11-07 CPU/WebGPU goldens unchanged.