v0.75.0

hkchengrex/MMAudiov0.75.0Jun 2, 2026by github-actions[bot]

AI Summary

A maintenance release addressing a Hyper OAuth timing bug and a rare startup crash caused by missing default models.

Key Highlights

  • Fixed Hyper OAuth dialog appearing mid-session
  • Fixed rare startup crash on missing default models

Full Release Notes

# Bug fixin'

This is a maintenance release which fixes a couple small bugs.

## Hyper OAuth fix

We fixed a bug where the Hyper OAuth dialog could appear mid-session, in case you had multiple Crush sessions that attempted to refresh the access token at the very same time.

## Fixed rare startup bug

This is a rare edge-case, but we fixed a bug that could prevent Crush from starting in case it can't find a default large or small model for a provider, due to it being removed.

That's all for today. Stay tuned! 📺 

## Changelog
### New!
* f6b8592a5acaffa144dd35c2cd78f24fa270b77e: feat: prepare alibaba migration to `/messages` (#3067) (@andreynering)
### Fixed
* 3cd88ac8902c1ce421d9a2b32ae0ef7b9578d35e: fix(agent): add 401 retry and reauth notification to sub-agent runs (@taciturnaxolotl)
* 90197756b670d743ad3c84528e4d69d2884a057a: fix(agent): centralize 401 retry logic and fix notify-on-success bug (@taciturnaxolotl)
* 23157b6a1dbbca77b4ce482f12ff98ea5e19d9e4: fix(agent): move reauth notification from agent to coordinator (@taciturnaxolotl)
* 5b5f7b687d324b8835e90d064e6e16970ebc92ea: fix(config): sort SetConfigFields keys, remove redundant MkdirAll, rename test (@taciturnaxolotl)
* d87a632af1cd528b8ed76adbc3f45041acd2b128: fix(oauth): harden IsExpired with minimum buffer and ExpiresIn guard (@taciturnaxolotl)
* c83418d10ba6c166419d1ff781380c3a0b0b0ca1: fix(oauth): stop fabricating token lifetime when expires_in is missing (@taciturnaxolotl)
* ffaeec192ff121408b9a115b14e3be9965ca138e: fix: avoid startup crash if unable to find default models (#3066) (@andreynering)
### Other stuff
* 3570ea632225c2a6ad92d2457119904896960802: chore: auto-update files (@charmcli)
* 81170ce5d33280947e889ba8afb93a057d26b801: refactor(config): replace reload booleans with reloadMu mutex (@taciturnaxolotl)
* 7ce093611c8304aaa8099bdecc9b4e36ce2ff477: refactor(lock): add canonical internal/lock package, migrate db and cmd callers (@taciturnaxolotl)

---

<details>
<summary>Verifying the artifacts</summary>

First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.75.0/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.75.0/checksums.txt.sigstore.json) files, for example, with `wget`:

```bash
wget 'https://github.com/charmbracelet/crush/releases/download/v0.75.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.75.0/checksums.txt.sigstore.json'
```

Then, verify it using [`cosign`](https://github.com/sigstore/cosign):

```bash
cosign verify-blob \
  --certificate-identity 'https://github.com/charmbracelet/meta/.github/workflows/goreleaser.yml@refs/heads/main' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  --bundle 'checksums.txt.sigstore.json' \
  ./checksums.txt
```

If the output is `Verified OK`, you can safely use it to verify the checksums of other artifacts you downloaded from the release using `sha256sum`:

```bash
sha256sum --ignore-missing -c checksums.txt
```

Done! You artifacts are now verified!

</details>

<a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@charmcli), [Bluesky](https://bsky.app/profile/charm.land).