Add canvasHistory helpers that diff two node snapshots into a labeled
operation (boolean, add, delete, path edit, move, resize, style,
rename, reorder), keep the five most recent states, and truncate newer
entries when an older state is restored. Workspace wiring lands in a
follow-up commit.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>