Thanks to visit codestin.com
Credit goes to github.com

Skip to content

v0.67.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 May 20:52
· 28 commits to main since this release
v0.67.0
a1a4806

Busy Monday

We had a busy Monday mergin' all sorts of additions and small fixes. Thanks for using Crush, thanks for your contributions, and read on for all the details.

Hooks now use the built-in shell interpreter

By default, Hooks will now use the built-in shell interpreter instead of the one from the system. This particularly improves support for Windows, where bash isn't always available. It's also great for general portability as you can ensure that Bash behaves the same across systems, including environments where Bash isn't available. Of course, if the script has a shebang, we'll still respect that and run on the specified tool.

Curious about Hooks in Crush? Check out the docs.

Bring back shell expansion in config values

Speaking of shell, we fixed a regression with shell expansion in config values. So now you can do things like:

"api_key": "$(vault kv get my/secret/token)"

The bonus here is that we're also using the embedded shell interpreter, so all the Bash-like things you expect to work here will.

Note

If you're wondering how are we do all this awesome Bash stuff, it's with mvdan/sh from @mvdan. It's an absolutely solid project.

Fixed: big file reads and updates

Crush has a size limit on certain operations to avoid the whole context window getting filled up rendering a session useless. There were some bugs around this which we fixed, tool-to-tool. So now, if your project is a single huge index.php, file Crush should be able to work it out just fine.

Special thanks to @taoeffect for working on this.

Assisted-by, now in the style of the Linux Kernel

The AI community is still figuring it out patterns and conventions, and we're adjusting as things go. We adjusted the Assisted-by trailer on Git commit messages to follow the current convention of the Linux kernel which seems to be where people are settling at the moment.

For those following along, it was:

Assisted-by: {modelName} via Crush <[email protected]>

And now it’s:

Assisted-by: Crush:{modelID}

Smaller things

  • Fixed expanding/collapsing thinking blocks with the keyboard.
  • More reliable detection of image files attachment. Misrenamed your .png as .jpg? No problem, Crush will now look for the content instead of the extension.
  • We adopted the write tool to allow the model to create empty files (thanks @vorticalbox).
  • LSPs should now work better on Windows (thanks @sven2718).

Hope you crush your week!
The Charm™ team

Changelog

New!

Fixed

Docs

Other stuff


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.67.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.67.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.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!

The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on X, Discord, Slack, The Fediverse, Bluesky.