d65b4b0e5d
jitpack.io and dl.google.com both return 503 on a non-trivial fraction of cold-cache fetches, and Gradle disables the whole repository for the rest of the build the moment a single 503 lands — so one bad roll aborts the entire harness before any test gets to run. Wrap the gradle invocation in a 4-attempt retry loop; each attempt resumes from Gradle's local cache so only the still-missing artifacts get re-fetched. In practice the retry completes in seconds when jitpack is the only flake, and the whole preflight still wall-clocks well under the first attempt's runtime. Existing success path is unchanged. https://claude.ai/code/session_018kSBco5VVfctkW6vAm7NzA