just as a suggestion, in case it won’t complicate code too much, I would like to recommend to create snapshot on critical / risky operations that has tendency to be buggy. Maybe partial snapshots for shapes only on subtract / union / intersect / difference.
in any case thank you for the great work you do.