Guides M3 made reactivity bidirectional: generateReactive max-merges an incoming explicit mask with the auto-generated one, and effects can write into guides.reactive mid-frame. The aliasing hazard (passing guides.reactive back while reactiveOpaqueColor is set, i.e. handing the generator its own output) throws rather than silently corrupting.
Verification today is examples/05-transparency, GPU-verified across manual/auto/off modes — but that is a manual demo, not a recorded scenario. The bench capture scenario was deferred at M3 on the reasoning that the consumer lab would exercise the merge for real. It has, but that evidence lives in another repo and doesn't guard our regressions.
Wanted: a bench scenario (next free Q<n>) that drives an explicit mask and the auto-generator simultaneously on content where they disagree — an area only the explicit mask flags, an area only the diff detects, and an overlap — so the per-pixel max is visible in the captured reactivity debug view and a regression in the merge shows up as a capture difference.
Pattern to follow: bench/src/benchmark/scenarios.ts (Q11 is the closest analogue — it drives an extra input alongside the scene), plus the registry entries in bench/src/benchmark/config.ts and bench/src/types/benchmark.d.ts.
Guides M3 made reactivity bidirectional:
generateReactivemax-merges an incoming explicit mask with the auto-generated one, and effects can write intoguides.reactivemid-frame. The aliasing hazard (passingguides.reactiveback whilereactiveOpaqueColoris set, i.e. handing the generator its own output) throws rather than silently corrupting.Verification today is
examples/05-transparency, GPU-verified across manual/auto/off modes — but that is a manual demo, not a recorded scenario. The bench capture scenario was deferred at M3 on the reasoning that the consumer lab would exercise the merge for real. It has, but that evidence lives in another repo and doesn't guard our regressions.Wanted: a bench scenario (next free
Q<n>) that drives an explicit mask and the auto-generator simultaneously on content where they disagree — an area only the explicit mask flags, an area only the diff detects, and an overlap — so the per-pixelmaxis visible in the captured reactivity debug view and a regression in the merge shows up as a capture difference.Pattern to follow:
bench/src/benchmark/scenarios.ts(Q11 is the closest analogue — it drives an extra input alongside the scene), plus the registry entries inbench/src/benchmark/config.tsandbench/src/types/benchmark.d.ts.