v0.46.1
charmbracelet/crushv0.46.1Feb 27, 2026by github-actions[bot]
AI Summary
This release fixes performance issues with file tools (view and edit) that were slow due to LSP server notifications. A 300ms timeout was added so operations proceed even if LSP servers are slow, and the find_references functionality was also fixed.
Key Highlights
- Fixed slow file tool performance - view and edit were slow because they waited for LSP responses
- Added 300ms timeout for LSP diagnostics so operations proceed even if LSP is slow
- Fixed find_references functionality to properly query LSPs for references
- Performance optimizations: avoid file watching when reading, shared timeout for parallel diagnostics, avoid scanning entire file to count lines
- Fixed view tool paging and UTF-8 validity check edge cases
New Features
- 300ms timeout for LSP diagnostics to prevent slow operations
- find_references now properly queries LSPs for type/function references
Full Release Notes
# File tools performance fixed ✅ A few of you told us that some tools call like `view` and `edit` were sometimes taking a few seconds to complete, making your sessions slow to proceed. Well, that happened because Crush notifies LSP servers about the files you're viewing or touching, and waits for a response. Some LSPs are slow, and it things took some time to happen. In this release we not only made a good number of fixes to file tools + LSPs, but we also added a 300ms timeout so if something got stuck Crush will proceed anyway. The `find_references` also got fixes. It allows the model to query for your LSPs to find refences for a given type/function/etc. Special thanks to our favorite contributors @huaiyuWangh and @taigrr to helping and testing these improvements! ✨ Enjoy your weekend! Charm ™️ ## Changelog ### Fixed * 02ec5db4742886c1e81339c6fc18fa234a49c7c8: bugfix: find references, double timeout (@taigrr) * 41a931ebc9b3a4a96f7ec799142569fc1022f47d: fix(mcp): restore handling for unsupported resources/list method (@meowgorithm) * 6e5bbef78da317dcde97bec412542fcb5a37891e: fix: use typed context keys in tests to satisfy staticcheck (@huaiyuWangh) ### Other stuff * ded666aa641e7b9cabb750fcb68441b9edff6a45: chore(lint): don't shadow err vars (@meowgorithm) * 058322169d3c1b3e1ffad43da8bb7c00c94e706d: fix(tools/view): fix view paging, test for edge cases (@meowgorithm) * 773efbf84f5bc426633cf7221621ce7af2120f3b: fix(tools/view): perform UTF-8 validity check only if read succeeds (@meowgorithm) * 6604dd0e38440369e98c7462e977bc2e015f292a: perf(lsp): don't watch for changes when simply reading files (@meowgorithm) * d98c854a148e5dce070c9d1d0a9b07749fbebaf5: perf(lsp): use shared timeout for parallel diagnostics collection (@meowgorithm) * 12f0d9f512e01bde5d08d2c88e60fd0eb38eb891: perf(tools/view): avoid scanning entire file to count lines (@meowgorithm) * 3c5fcff3855762e6d24cf19fd45d8d69253ee594: perf(tools/view): pause briefly for LSP diagnostics when viewing a file (@meowgorithm) * e0d545486846749445745269aabb30c73bba628f: refactor: extract common sub-agent execution logic (@huaiyuWangh) * 07d065d780610a4a37e516733da951888293bf4b: refactor: simplify context value retrieval using generics (@huaiyuWangh) * 42aee6d2bde0d48d0d752629f5c3e9791c2f2a7c: refactor: use params struct for runSubAgent and add unit tests (@huaiyuWangh) * d3682ac4719bd5892ceb21c15c66009c1e0b9b54: use new wg pattern (@taigrr) --- <details> <summary>Verifying the artifacts</summary> First, download the [`checksums.txt` file](https://github.com/charmbracelet/crush/releases/download/v0.46.1/checksums.txt) and the [`checksums.txt.sigstore.json` file](https://github.com/charmbracelet/crush/releases/download/v0.46.1/checksums.txt.sigstore.json) files, for example, with `wget`: ```bash wget 'https://github.com/charmbracelet/crush/releases/download/v0.46.1/checksums.txt' wget 'https://github.com/charmbracelet/crush/releases/download/v0.46.1/checksums.txt.sigstore.json' ``` Then, verify it using [`cosign`](https://github.com/sigstore/cosign): ```bash 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`: ```bash sha256sum --ignore-missing -c checksums.txt ``` Done! You artifacts are now verified! </details> <a href="https://charm.land/"><img alt="The Charm logo" src="https://stuff.charm.sh/charm-banner-next.jpg" width="400"></a> Thoughts? Questions? We love hearing from you. Feel free to reach out on [X](https://x.com/charmcli), [Discord](https://charm.land/discord), [Slack](https://charm.land/slack), [The Fediverse](https://mastodon.social/@charmcli), [Bluesky](https://bsky.app/profile/charm.land).