Codex review of the web twin flagged a Ref-anchor mismatch: set_selected_color
is a no-op on a Ref (it carries no fill/stroke slot), so the doc write does not
land — yet the scene patch would still mutate the Ref's scene node, briefly
showing a colour the document never received (snapping back on release). Native
caught the common case via its instance-write redirect, but a non-redirected
Ref (and any gradient-only / slotless node) slipped through on both paths.
Gate both try_patch_color_drag paths on the freshly-written hex actually being
present (first_solid_fill_hex / first_solid_stroke_hex); absent → the write did
not land → fall back to the full rebuild. Same conservative guard on native +
web.