Migrators that talk to a user-supplied host need a client with a redirect policy, a cap on response bodies and no retries on permanent errors (utils.ErrDoNotRetry). Diagnostic body reads in the shared helpers are capped.