The Phase 4 random harness found F113: undo of detaching an overridden
copy restored its touched groups before shape-ref. The copy-only setter
therefore dropped those groups. Append the touched and remote-sync undo
operations after restoring the shape's attributes.
The focused regression failed first and now passes. Common JVM/JS and
all 1499 frontend tests pass. Common lint and targeted format checks pass.
The frontend test build used shadow-cljs directly because Cargo's cache
permissions blocked the wrapper's unrelated WASM rebuild.
Benchmark lower-quantile ratios against Phase 1e:
main 10/100/1000 copies: 0.46/0.52/0.53; three levels: 0.54;
chain: 0.47; library: 0.58; many shapes: 0.68; switch: 0.64.
No regression flag.
AI-assisted-by: GPT-6