66e6ce4bfb
Oh hey, it's that piece of complexity I was worried about. The problem was that the position calculation for new appended right_data depended on left_overlap, which fell out of sync when transitioning from sprout->shrub. The fix here is to keep left_overlap/right_overlap up to date with the model that the sprout->shrub transition is effectively doing a shrub-wide rm first. Hacky, but hopefully avoids bugs in the future by keeping all of these variables in a reasonable state... There may be a simpler way to think about how this code should function, but I just can't see it. This may deserve a rewrite in the future.