SIGN IN SIGN UP

fix(launcher): retry GitHub releases download up to 3× on transient failure (#1139)

On CI environments without a `GITHUB_TOKEN`, downloading a pinned
version directly from
`github.com/releases/download/…` can fail mid-stream with a connection
reset (os error 104).
The launcher had no retry logic, so a single transient failure
immediately exhausted the
(often single) source list and terminated the job.

Add up to 3 download attempts with exponential backoff (0 s, 1 s, 2 s)
for the GitHub
direct-download path. The request is rebuilt on each attempt (reqwest
`Request` is consumed
by the first execute call). A successful attempt short-circuits the
loop; a permanent
failure after all attempts propagates as before.

---

### Changes are visible to end-users: yes

- Searched for relevant documentation and updated as needed: no
- Breaking change (forces users to change their own code or config): no
- Suggested release notes appear below: yes

**Suggested release notes:**

- `fix(launcher)`: GitHub release downloads now retry up to 3 times on
transient network
failures (connection reset, mid-stream disconnects). Fixes jobs failing
on first run
  when the pinned-version binary is not yet cached.

### Test plan

- Covered by existing test cases (all 54 launcher tests pass)
- Manual testing: reproduced the transient failure scenario via CircleCI
logs showing
`Connection reset by peer (os error 104)` mid-download; retry logic
would have recovered

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
G
Greg Magolan committed
5249202cfbf53ca54dcbc823eba89ed715108b98
Parent: ef4f693
Committed by GitHub <noreply@github.com> on 5/29/2026, 9:20:11 PM