Disable mouse support + more
Hey, how's your week going? We have a few changes today, including mostly fixes but also a few nice additions.
Disable mouse support
Want to disable mouse support in Crush? Feel lucky because our favorite contributor @timotheosh added just that.
With the config below you can achieve that. It's also possible to toggle it via the command palette dialog.
crushrc:
option ui mouse false
crush.json:
{ "options": { "tui": { "mouse": false } } }
Fixed UX for non-vision models
In some cases, Crush were allowing you to attach an image even when the selected model was not vision-capable. The attachment was then being silent dropped in the request.
Now, we're properly validating it and showing a message so you know when it's not supported.
Fixed some models on GitHub Copilot
On Copilot some models only works on the /responses endpoint: named GPT-6 Astra and the Grok models.
Fixed some models on OpenCode Zen & Go
OpenCode also require some models to use specific endpoints. Not every model support the /chat/completions endpoint; some require /responses or /messages.
We fixed this issue for the models OpenCode currently supports.
Fixed Sentry MCP + others
A misconfiguration made it impossible to authenticate with OAuth2 with a few the MCPs, including the Sentry MCP. This is now fixed!
Fixed potential memory leak
@caniko discovered a memory leak, specifically when discover_models: true is set. This issue was fixed!
To read the technical explanation, see #3162 and #3683.
See you in the next release! The Charm Team :tm:
Changelog
- fix(clipboard): only report copy success if it happens by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3682
- fix: stop long reasoning traces from running away with the heap by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3683
- fix(config): honor providers.json when auto-update is disabled by @kvnloo in https://github.com/charmbracelet/crush/pull/3693
- fix: inline code copying by @andrinoff in https://github.com/charmbracelet/crush/pull/3678
- fix: flickering screen when inline code was present by @andrinoff in https://github.com/charmbracelet/crush/pull/3708
- fix(copilot): route grok models through responses api by @DaVinci42 in https://github.com/charmbracelet/crush/pull/3705
- fix(discover): keep a user-set supports_attachments in the LM Studio enricher by @devYRPauli in https://github.com/charmbracelet/crush/pull/3703
- fix: assign models from opencode zen by @andrinoff in https://github.com/charmbracelet/crush/pull/3718
- fix(list): keep AtBottom honest when the top item is taller than the viewport by @taciturnaxolotl in https://github.com/charmbracelet/crush/pull/3720
- fix: make timeout configurable by @andrinoff in https://github.com/charmbracelet/crush/pull/3677
- feat(hyper): show the routed model that served each turn by @andreynering in https://github.com/charmbracelet/crush/pull/3713
- fix(copilot): route GPT-6 Astra through Responses API by @DaVinci42 in https://github.com/charmbracelet/crush/pull/3724
- docs(db): fix timestamp unit comments in initial migration by @LarsArtmann in https://github.com/charmbracelet/crush/pull/3576
- fix(config): resolve the provider cache through the global data dir by @devYRPauli in https://github.com/charmbracelet/crush/pull/3738
- feat(tui): add option to disable mouse support by @timotheosh in https://github.com/charmbracelet/crush/pull/3542
- fix: keep
top_kfor known custom providers by @jackgene in https://github.com/charmbracelet/crush/pull/3736 - chore: add CC-BY-4.0 to allowed licenses by @andrinoff in https://github.com/charmbracelet/crush/pull/3755
- fix: do not upload images if vision is not supported by @andrinoff in https://github.com/charmbracelet/crush/pull/3754
- fix: bump mcp sdk by @andrinoff in https://github.com/charmbracelet/crush/pull/3716
- fix(alibaba): do not send
enable_thinkingwhen we have an effort by @andreynering in https://github.com/charmbracelet/crush/pull/3758 - chore(deps): migrate
mvdan.cc/sh/moreinterptomvdan.cc/sh/xby @andreynering in https://github.com/charmbracelet/crush/pull/3761
<details> <summary>Verifying the artifacts</summary>
First, download the checksums.txt file and the checksums.txt.sigstore.json file files, for example, with wget:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.93.1/checksums.txt.sigstore.json'
Then, verify it using cosign:
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:
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, Discord, Slack, [The