A dataset can appear multiple times across per-rank/resumed manifests (timed out
once, then succeeded on retry). keep='last' could keep the stale ERROR row and
wrongly flag an already-migrated dataset (e.g. VoicAndrei/so100_kitchen) for
deletion. De-dup now prefers a successful attempt over an errored one.
Report datasets present in the manifest but absent from the destination repo,
grouped by their migration action (ERROR/skipped/...), to explain the src-vs-dst
count gap. Also de-duplicate manifest rows by root (resumed runs append).
Reads the run manifest(s), selects datasets that errored during migration and/or
were labelled SO but aren't a real 6-DOF SO arm, intersects with what's actually
present in the destination repo, and deletes their folders. Dry-run by default.