Optimized LSPs + MiniMax support
Good stuff is being shipped on this Monday, so you have a better joy using Crush on the rest of your week! 🌞
On-demand LSP start-up
@caarlos0 made a great work optimizing how LSP servers are handled on this release.
- An LSP server will now only be started once the model interact with a file of that language.
- Once you start a new session, the running servers will be shutdown until needed again.
- When you switch into a different session, only the relevant servers will be kept running.
All this ensure less CPU and memory are used by Crush, specially on new or small sessions.
MiniMax support
MiniMax is now officially supported as a provider, and this includes the MiniMax Coding Plan, which start at $10/month.
Enjoy!
Changelog
New!
- 02f66a2: feat(lsp): start LSPs on demand, improve auto-start (#2103) (@caarlos0)
- b66f96e: feat(mcp): resources support (#2123) (@caarlos0)
- fc9db05: feat: add clipboard image paste support (ctrl+v) (#2148) (@caarlos0)
Fixed
- 775cf3a: fix(mcp): race condition, logs (#2145) (@caarlos0)
- c3d4ece: fix(ui):
highlighternow modifies the cell directly. (#2171) (@biisal) - fb9eb92: fix(ui): clear image cache when FilePicker closes to prevent unbounded memory growth (#2158) (@AnyCPU)
- 722093b: fix(ui): prevent nil pointer in completions size update (#2162) (@kslamph)
- 3a9d95d: fix(ui): use plain letters for lsp status (#2121) (@caarlos0)
- dc890f3: fix: build linux/386 (#2153) (@caarlos0)
- 989b0d2: fix: cap posthog shutdown timeout (#2138) (@meowgorithm)
- 63e0098: fix: improving shutdown (#2175) (@caarlos0)
- 54a6978: fix: make it possible to add api key for minimax (@andreynering)
- 3b3a3d7: fix: prevent goroutine orphaning in mcp.Close() and shell.KillAll() (#2159) (@AnyCPU)
- e9b59c4: fix: thinking sidebar (#2151) (@caarlos0)
Docs
- e54c5ae: docs(readme): add mention to minimax (@andreynering)
Other stuff
- ff212d6: chore: auto-update files (@charmcli)
- 04d05e1: chore: bump bubbletea and ultraviolet dependencies (@aymanbagabas)
- afb5be9: chore: update
charm.land/catwalkwith minimax support (@andreynering) - 74aff5d: chore: update fantasy to v0.7.1 (#2139) (@andreynering)
- 0491b67: perf: timer leak in setupSubscriber (#2147) (@caarlos0)
- 074917b: refactor(lsp): use same handle file in client and manager (#2168) (@caarlos0)
- 59887a3: refactor: cleanup the code a bit (@andreynering)
- f285804: refactor: remove empty slice declarations (#2150) (@andreynering)
- 2c9670a: refactor: remove global config (#2132) (@kujtimiihoxha)
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.40.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.40.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.