Alibaba, Better Retries, and Client-Server
We're starting the week with some good stuff. Let's check them out!
New Provider: Alibaba
A new provider is available: Alibaba! Just open the model picker with ctrl+m, search for Alibaba and paste your API key. Alternatively, you can set $ALIBABA_SINGAPORE_API_KEY.
Alibaba has a few regions, but we're starting with the main one: Singapore as the hot new models are available there, like the newer Qwens.
Better Retries
Thanks to @processtrader, Crush is now a bit smarter on retries. Instead of just retrying on specific error codes (400, 500, etc), Crush will now also retry on network errors (in case you're offline for a second, or a DNS query failed, etc).
Hardening Client-Server Mode
Crush has an experimental/client server mode which can be used to extend Crush, operate more effectively with multiple sessions, and connect to remote Crush instances.
We’re using client/server more and more internally, so it's time to harden it. This release fixes some bugs that were blocking us from using it day to day.
If you want to try out client/server mode, Crush has an experimental client-server architecture refactor happening, currently available via:
export CRUSH_CLIENT_SERVER=1That's it for today. Stay tuned for more soon!
Charm 💘
Changelog
New!
- 4882cbc: feat: add aliababa (singapore) provider (#2949) (@andreynering)
Fixed
- 0c99e77: fix(auth): support oauth in client-server mode (@meowgorithm)
- 9c35ee0: fix(server): recover from handler panics + return 500 (@meowgorithm)
- 0bbc8a8: fix(ui): restore pills to-do in client/server mode (@meowgorithm)
- a4befc2: fix: retry on network errors (#2945) (@andreynering)
Other stuff
- 45b1e63: chore: gofumpt project (@meowgorithm)
- c433fd6: perf: remove hot-path slog.Info from SSE event delivery (#2929) (@taigrr)
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.70.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.70.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.