I was a little surprised to see the retry handled at this level (wrapped around the entire resolution process) rather than at a lower level (like around individual network calls or calls out to git). I'm just wondering why you decided to go that way.

My concern is that this requires `resolve_remotely!` to be fully idempotent (or else bugs) and to have enough internal caching that it would avoid redoing work that completed successfully on a previous try. It's not clear to me whether that's the case right now (it looks like it could be, but there's a lot going on in there) and it would be really easy to accidentally break in the future.