1315e65a52
Rollback removed the live skill directory before restoring its snapshot. When copytree then failed (disk full, locked file, path too long on Windows) the except only added a note, and the finally deleted the snapshot directory too, so nothing survived: the skill was gone with a success-shaped error payload. The broken state is now renamed aside first and deleted only after the snapshot is restored. If the restore still fails, the broken state is renamed back, so the worst outcome is the half applied batch instead of no skill at all. When rollback reports any failure the snapshots are kept on disk and their location is logged, instead of being deleted by the finally. Follow-up to #97692, same batch executor.