v2026.4.24

jdx/misev2026.4.24Apr 27, 2026by mise-en-dev

AI Summary

Introduces resilient HTTP downloads with retry logic and a global `prereleases` setting to surface pre-release versions.

Key Highlights

  • Global `MISE_PRERELEASES=1` setting to opt-in to pre-release versions across all tools.
  • HTTP requests now retry transient failures with a jittered backoff schedule.
  • Docs site tagline updated to 'Dev tools, env vars, and tasks in one CLI'.

New Features

  • Global pre-release opt-in
  • Resilient HTTP downloads with retries

Full Release Notes

A small release that hardens HTTP downloads against flaky networks and adds a global way to surface pre-release versions, plus refreshed intro messaging.

## Added

- **(ls-remote)** New global `prereleases` setting (`MISE_PRERELEASES=1`) and a `--prerelease` flag for `mise ls-remote` ([#9415](https://github.com/jdx/mise/pull/9415)) by @jdx. Acts as `prerelease = true` applied to every tool, so GitHub releases flagged `prerelease: true` show up in `ls-remote`, `latest` resolves against the full list, and fuzzy queries like `1.2` can match pre-release tags. Currently honored by the `github:` and `aqua:` backends; draft releases are still excluded.

  ```sh
  mise ls-remote github:cli/cli --prerelease
  # or, persistently:
  export MISE_PRERELEASES=1
  ```

## Fixed

- **(http)** HTTP requests now retry transient failures with a jittered backoff schedule (~200ms / 1s / 4s / 15s, then capped at 15s) and the default `http_retries` is bumped from `0` to `3` ([#9414](https://github.com/jdx/mise/pull/9414)) by @jdx. Retries fire on 5xx, 408, 429, and network-layer errors (connect refused, timeout, mid-stream body drops); deterministic 4xx responses like 404 fail fast without retry. Downloads wrap the full request + body so a chunk failure mid-stream restarts from byte 0 instead of failing the install. Each retry logs a `warn!` immediately so flaky infrastructure surfaces in real time, and the same logic now powers vfox plugin downloads (which honor `MISE_HTTP_RETRIES` too). Set `MISE_HTTP_RETRIES=0` to opt out. The `http`→`https` fallback now only triggers on connection-level errors, not on HTTP status errors.

- **(release)** `scripts/publish-s3.sh` now purges the `mise.en.dev` Cloudflare zone (alongside `jdx.dev` and `mise.run`) after each S3 publish ([#9416](https://github.com/jdx/mise/pull/9416)) by @jdx. Because `install.sh` is uploaded with `immutable` cache-control, missing the purge could leave one zone serving the previous release's `install.sh` next to a new release's `install.sh.minisig`.

## Documentation

- Refreshed the project tagline and intro across the README, docs site, landing page, man page, snapcraft/RPM/DEB/npm packaging metadata, and CLI help text to "Dev tools, env vars, and tasks in one CLI" with a clearer "what is it?" pitch focused on what mise does rather than what it replaces ([#9418](https://github.com/jdx/mise/pull/9418)) by @jdx.
- The docs site's GitHub star count is now prefixed with a ★ glyph for clarity ([#9417](https://github.com/jdx/mise/pull/9417)) by @jdx.

**Full Changelog**: https://github.com/jdx/mise/compare/v2026.4.23...v2026.4.24