migrate: re-enqueue already-imported refs so a lost enqueue still pushes
Commit

The idempotency skip keyed only on "snapshot already on the ref," so a ref written by a prior run that then failed to enqueue it — an Enqueue error, or a crash between setRef and Enqueue — was skipped on every later run and never queued for push. The migrated ref then existed locally but its checkpoint data never reached the remote, silently defeating the guaranteed-enqueue contract on exactly the retry it was meant to enable.
Compute the ref name up front and enqueue on the skip path too (never in dry-run). Enqueue is idempotent — duplicates collapse on Drain and an already-pushed ref is a no-op on the next push — so re-enqueuing a skipped checkpoint is safe and closes the gap. Dry-run now accounts an already-imported checkpoint as a skip rather than reaching the old would-migrate branch, and writes/enqueues nothing.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Entire-Checkpoint: 01KWY6VAT1V2Z6NHCKZ3BNNJY2