Session Hardening, Token Savings and More
There are a bunch of solid housekeeping improvements in this release, including opt-in token savings and some serious work on session integrity and guarding against session corruptions.
Fewer Tokens (Preview)
In this release we're introducing a new flag that reduces the size of tool call descriptions by about 98%, which we're estimating will save about 120K tokens/session! The tl;dr is that LLMs are a lot better nowadays at tool descriptions and shorter descriptions will do.
We're just keeping this behind a flag a bit to test more models with it, but find it generally works well for most models. If you want to opt-in, just do:
export CRUSH_SHORT_TOOL_DESCRIPTIONS=1Session Hardening
When a session becomes corrupted, things really suck. This release contains two fixes to prevent that:
- Crush will now detect malformed image data and gracefully handle it so the session doesn't break. This is a common situation when doing frontend web development, including using MCPs, like Figma's MCP.
- Prior to this fix, tool calls could fire off while streaming, which could result in tool results without tool calls. This would in turn result in a corrupted sessions. Not anymore!
Better skill discovery
@huaiyuWangh came in hot with another solid patch, this time improving how Crush discovers and parses your skills, particularly in non-latin contexts (e.g. Chinese, Japanese, Korean, Arabic, and so on).
Crush Info Improvements
The crush_info tool also got a little bit smarter, and now show your attribution settings.
If you don't yet know, crush_info is a tool available for the model that shows your current Crush configuration. It's one of the things that helps Crush to debug and configure itself. Pair it with crush_logs and the crush-config skill and you'll find Crush is quite self aware!
That's all for today! Keep Crushing and see you in the next release.
Charm™
Changelog
New!
- a2081e1: feat(config): support
HYPER_API_KEYfor hyper auth (#2583) (@andreynering)
Fixed
- 7a6a179: refactor: simplify skills parsing and improve discovery visibility (#2350) (@huaiyuWangh)
- 4a1298e: chore: bump bubbletea and ultraviolet to v2.03 and 73592393e1ad and fix (@aymanbagabas)
- 4d62229: fix(tools/bash): restore cross-platform instructions in bash tool (@meowgorithm)
- efe42e8: fix(agent): prevent session corruption due to malformed image data (#2597) (@meowgorithm)
- c41a1a0: fix(agent): validate tool call/results + strip tags from titles (@meowgorithm)
- e5712f0: fix(ci): use stable Go version in security workflow (@aymanbagabas)
- d9f857f: fix(events): prevent early events from being dropped before init (#2611) (@meowgorithm)
- d96d044: fix(tools): add missing strconv import (@meowgorithm)
- f78baed: fix(tools): drastically reduce tool call description lengths (@meowgorithm)
- 2e8767d: fix(tools): modernize string split (@meowgorithm)
- 40b7cdd: fix(ui): format code in ui.go (@aymanbagabas)
- 95fcd88: fix: show attribution setting on
crush_infotool (#2594) (@andreynering) - b680a4a: fix: use proper bool check (@meowgorithm)
Other stuff
- 3e8c148: chore(agent): move filter logic into a function (@meowgorithm)
- ff003b4: chore(tests): re-record vcr cassettes (@meowgorithm)
- a02ce4a: chore(tools): gate short descs with CRUSH_SHORT_TOOL_DESCRIPTIONS (@meowgorithm)
Verifying the artifacts
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.57.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.57.0/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.txtIf 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.txtDone! You artifacts are now verified!
Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.