Performance, QoL improvements and lots of bug fixes!
This release enhances performance, fixes many bugs, improves security, add some Quality of Life™ features.
Highlights:
- The security was enhanced in the matter of which commands the model is allowed to run.
- Crush is now compiled using the brand new Go's GreenTea Garbage Collection. This means a lower memory footprint, smaller CPU usage, and fewer freezes.
- The
.crush
directory created in your workspace will now by ignored by Git by default (no more manual.gitignore
inclusions). - It's now possible to set custom environment variables to be passed by LSP servers.
- Some possible
panic
s and other small bugs were fixed!
Changelog
New Features
- 82c0aff: feat(lsp): allow to set custom env to lsp servers via config (#778) (@bbrodriges)
- c5c8bfd: feat: create
.crush/.gitignore
automatically (@andreynering)
Security updates
- 74bcdaf: sec: remove
go
from safe programs (#820) (@caarlos0) - b449229: fix(shell): block
go test -exec
and ensure it works using equals (@andreynering) - cbdd2e5: fix(shell): refactor arguments blocker to check for flags in any position (@andreynering)
Bug fixes and improvements
- 2437feb: fix(llm): log error when retrying (#781) (@caarlos0)
- e2dc8e1: fix(tui): fix model filter placeholder text (#790) (@lpmitchell)
- 63e53f1: fix(tui): prevent dialog keymaps from being swallowed (#782) (@uri)
- a02bd99: fix: Expose Required params to Anthropic API (#752) (@neomantra)
- 117c6b6: fix: Update erro msg for bash tool (#803) (@sainadh-d)
- d86f739: fix: fix panic that can happen on sending a message (#817) (@andreynering)
- 2d2ee7f: refactor: have shorter argument name (@andreynering)
- 9eb207f: refactor: migrate bool to empty struct for lower memory usage (@andreynering)
- 532b473: refactor: remove duplicated
emerge
entry (@andreynering)
Other work
- 6a4398e: chore(go): upgrade to go 1.25 and enable
GOEXPERIMENT=greenteagc
(@andreynering) - 915fda5: chore(taskfile): set
CGO_ENABLED=0
by default (@andreynering) - 5a99685: chore: fix
golangci-lint
locally (#815) (@andreynering) - fd4baa4: chore: set commit authors to @charmcli (#614) (@caarlos0)
- 5be56ec: feat: add
IsSubset
helper (@andreynering)
Verifying the artifacts
First, download the checksums.txt
file, for example, with wget
:
wget 'https://github.com/charmbracelet/crush/releases/download/v0.6.3/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.6.3/checksums.txt.pem' \
--signature 'https://github.com/charmbracelet/crush/releases/download/v0.6.3/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.