Found reviewing #671: copyIn does not filter data/auto-export/raw*, so a pre-#546 or hand-built archive lands those directories on the target, where every future wipe spares them (#671) and every future export excludes them. The wipe rationale ("left behind, they read as the new owner's") now has a permanent exception an archive can create: previous-owner state that survives every subsequent import and never appears in any archive again.
No exporter has produced archives carrying raw* since #546, so this needs a hand-built or ancient tree. Fix shape: either refuse/warn at validation when a tree carries data/auto-export/raw* paths, or filter them at copyIn (the copy already skips strays); refusing at validation is more honest since silently dropping paths from an archive is its own surprise.
Found reviewing #671:
copyIndoes not filterdata/auto-export/raw*, so a pre-#546 or hand-built archive lands those directories on the target, where every future wipe spares them (#671) and every future export excludes them. The wipe rationale ("left behind, they read as the new owner's") now has a permanent exception an archive can create: previous-owner state that survives every subsequent import and never appears in any archive again.No exporter has produced archives carrying
raw*since #546, so this needs a hand-built or ancient tree. Fix shape: either refuse/warn at validation when a tree carriesdata/auto-export/raw*paths, or filter them atcopyIn(the copy already skips strays); refusing at validation is more honest since silently dropping paths from an archive is its own surprise.