A Fistful of Improvements
This release is a big pass on stability and UI improvements in Crush! On the stability front, we fixed a handful of potential panics and bugs. On the UI side, we have a few subtle niceties to improve the UX.
UI Stuff
Did you know that Crush has a file picker? You can open it by pressing ctrl+f and choose files (like images or others) to send as part of the prompt. It was already there for a long time, but from now on it will behave better in small terminal sizes.
Crush will now also tell you which path you are when asking if you want to initialize the current project.
Bonus: Termux
Last but definitely not least, this release includes another small fix for the .termux.deb
package for those using Crush on Termux for Android. Keep mashing Crush on your phones and tablets.
Thanks for all your contributions. See you in the next release! 💘
Changelog
New!
- a378eb0: feat: show path when asking if the user wants to initialize project (#867) (@andreynering)
- ae3a31f: feat: support Anthropic base url option (#702) (@wwwjfy)
Fixed!
- 9d93720: ci: fix termux /usr/etc instead of /etc (@caarlos0)
- 40599a0: fix(filepicker): general fixes to size and position (@andreynering)
- 3b9babb: fix(lsp): simplify init/ping, store capabilities (#713) (@caarlos0)
- 15b989c: fix(tui): further guard against type accessor and map panics (#783) (@meowgorithm)
- 4bd2cdd: fix: fix
panic
that happens oncrush run
with tool calls (@andreynering) - d01ef3e: fix: fix goroutine panic due to waiting for channel for too long (@andreynering)
- 5bdccdf: fix: fix panic with gemini via litellm (@andreynering)
- 3cd1515: fix: improve provider cache logs (#885) (@caarlos0)
- 6268f1e: fix: panic at mcp config (#860) (@khareyash05)
- 3993b8c: fix: prevent nil pointer dereference in mcp tools parameters (#850) (@linw1995)
- 2c71f23: fix: resolve the baseurl for anthropic (@kujtimiihoxha)
- 472889c: fix: return nil for empty tools slice to handle omitzero properly (#861) (@linw1995)
- a65efa5: fix: validate resolved url (@kujtimiihoxha)
- 8d735d6: refactor: home.Dir, home.Short, home.Long (#884) (@caarlos0)
Docs
- 74e6643: docs(readme): fix typo (#900) (@henrebotha)
- c761a6a: docs: update license link to point to
LICENSE.md
(#892) (@xhos)
Other stuff
- 3fab905: chore(dependabot): remove
docker
as we don't have docker for now (@andreynering) - 68adc06: chore: fix typo in constant name (@andreynering)
- 9bf5410: chore: group dependabot updates to reduce noise (@andreynering)
- e2e99af: chore: run
modernize
(#906) (@andreynering)
Verifying the artifacts
First, download the checksums.txt
file, for example, with wget
:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.7.2/checksums.txt'
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' \
--cert 'https://github.com/charmbracelet/crush/releases/download/v0.7.2/checksums.txt.pem' \
--signature 'https://github.com/charmbracelet/crush/releases/download/v0.7.2/checksums.txt.sig' \
./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!
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, Discord, Slack, The Fediverse.