Backport from monorepo PR #310 (fix/april-pass): 1. WebGPU renderer race on Canvas remount Cache the in-flight WebGPURenderer promise per canvas element so concurrent configure() calls from R3F's useLayoutEffect await the same init() instead of creating duplicate renderers. Fixes intermittent 'resolve target size does not match' errors when navigating between projects and home. 2. Duplicate item loses its scale Add scale to the field set in useDraftNode.commit() so duplicated items preserve their original scale instead of falling back to [1,1,1]. Co-authored-by: Pascal <open@pascal.app>