Skip to content
C

Crush v0.86.0

Released · Charm

What the release notes say

LSP tools, scrollable sidebar, removable attachments + more

Hey all. We're starting the week in style by shipping some LSP stuff and more goodies.

Brand new LSP tools

These new LSP tools will allow the model to more accurately do some refactors:

  • lsp_rename - Rename a symbol and all its references in the project
  • lsp_replace_symbol - Replace, insert before/after, or delete an entire function/method/class by name

If something doesn't work as expected by the LSP, don't worry. We'll report an error to the model so it can fallback to using the edit tool.

Scrollable sidebar

This one is pretty cool. Got out-of-space in your sidebar? Don't worry, you can scroll its content now!

<p><img width="600" src="https://github.com/user-attachments/assets/dfceb292-45e5-4946-8f75-fc6659b75c46" /></p>

Keyboard:

  • When focused on the chat view: <kbd>l</kbd> or <kbd>right arrow</kbd> focuses on the sidebar
  • <kbd>j/k</kbd> or <kbd>up/down arrow</kbd> scrolls up and down
  • <kbd>g</kbd> scrolls to top <kbd>shift+g</kbd> scrolls to the bottom
  • <kbd>h</kbd> or <kbd>left arrow</kbd> focuses back on the chat view
  • <kbd>tab</kbd> always returns focus to the editor

Removable attachments

It's now possible to remove attachments with your mouse! Just click on the X button:

<img width="618" height="174" alt="Screenshot 2026-07-20 at 17 26 51" src="https://github.com/user-attachments/assets/d2dc816e-e273-4252-8efc-48543b06466b" />

Better Hyper OAuth

When authentication on Charm Hyper ™️ or GitHub Copilot you can now press <kbd>u</kbd> to copy the URL. This is needed for certain scenarios, like when using Crush over SSH, where it might not be possible to open the browser automatically.

<img width="574" height="413" alt="Screenshot 2026-07-20 at 17 33 21" src="https://github.com/user-attachments/assets/56ef14e5-276d-4106-b375-907bbaa5e534" />

Quit dialog hint

When rendering the quit dialog, we're now showing an hint that it's possible to skip the confirmation completely by simple pressing <kbd>ctrl+c</kbd> twice.

<img width="339" height="207" alt="Screenshot 2026-07-17 at 17 20 12" src="https://github.com/user-attachments/assets/886f1f59-3d00-42de-82d3-28ae44096d5f" />

Agent fixes

  • Reasoning effort level none is now working for Baseten models
  • Thinking blocks are now rendering for MiniMax M3 via OpenCode (thanks @marifcelik)

That's all for today. Keep crushing! Charm

Changelog

New!

  • cd8c06ceb10f6cc90cc7989575e49d0c4c27b476: feat(lsp): add 4 new lsp tools (@taciturnaxolotl)

  • 17ad5c7ffb7fa3021681528e68180d708d3b42e5: feat(lsp): add LSP superpowers tools (@taciturnaxolotl)

  • 7eca7a04b1a7165b7088642612edf4ddc1cba171: feat(lsp): fancy diff view renders (@taciturnaxolotl)

  • 8ad59d226c3e10eaa6c4c527a273d29b09ef92f9: feat(lsp): update system prompt to recommend lsp tools (@taciturnaxolotl)

  • f8d855d5fe0808d83684611a820704e2789b654b: feat(ui): add scrollable sidebar with focus-based navigation (@meowgorithm)

  • f413c9a9b24650e0c72fc4b77df219f3f8436045: feat(ui): auto expand reasoning dialog based on count (#3332) (@taciturnaxolotl)

  • f604d989311458ab8063a5aa916588f1d84c8bc0: feat(ui): clickable ✕ remove button on attachment chips (@joestump)

  • 4244f520330ce338045425899a2598cdf8858972: feat(ui): scroll sidebar with mouse wheel when focused (@meowgorithm)

  • 047998766524393119b534b4ae5996a91ad93cd4: feat(ui): scroll sidebar with mouse wheel when focused (@meowgorithm)

  • 79eedf79f9c12d23e3580339b7520e8f1384f286: feat(ui): show g/G shortcuts in sidebar full help (@meowgorithm)

  • d50076469d7509345936d54853e98cd9a041a3d4: feat(ui): widen sidebar to 32 cells and reserve scrollbar column (@meowgorithm)

  • 3446255daa028ba22505539dee6f6544f0faecbb: feat: add --all and --crawl-dir modes to stats subcommand (#2811) (@taciturnaxolotl)

  • 12e96776a4a5d47146981f18c4fec3383128d151: feat: add keybinding and logic to copy verification URL in OAuth dialog #3323 (#3324) (@biisal)

  • a02a9809a1420843ad14c6bc72f6523cf002013a: feat: on quit dialog, add hint on how to skip confirmation (#3356) (@andreynering)

  • 8db57337ad5f0353154f0d61747b3624a84da290: feat: recover cleanly from mid-stream provider connection resets (@taciturnaxolotl)

Fixed

  • 1be8408601d4da2d61469ff96217d98e714ab6bc: Review fixes: attachment remove button (hidden clicks, mouse button, chip spacing) (#158) (@meowgorithm)

  • 001a2f8542ebcbf56c2dfc95848b45f2ea378f97: fix(agent): preserve attachment chips in user messages after sending (@joestump)

  • aca40878e2bb13d63ca8d89ce3b09993347090bd: fix(baseten): fix "none" reasoning level (#3386) (@andreynering)

  • 461976d035ef984ce00145fed83f4454fb533228: fix(commands): scope logout command to oauth providers (@taciturnaxolotl)

  • 55b2f0d1afbbf698fecef488e36baab080522e4f: fix(config): prevent data race when reading config during reload (#3362) (@taciturnaxolotl)

  • b9a1182b8b4345150463be258297d9209108eccc: fix(lsp): add word boundaries to symbol grep and validate against LSP (@taciturnaxolotl)

  • 07044a9b6a21d6e85bb5a38aa0c35d3a41a81956: fix(lsp): fix TrackConfigured startup race and relative path resolution (@taciturnaxolotl)

  • 70cd684a71df6c571c1fb4b09b9a178aa1d1be9c: fix(lsp): lsp restart failing (@taciturnaxolotl)

  • 132a8c89d84726c3e8e60ec9e104d684f3a7df85: fix(mcp): clear tools and close the session on MCP error; reap stdio process groups (@claude)

  • 009ce621814d35d726f3f1c52d40e2d84dba92d6: fix(mcp): serialize renewals, restore all registries, arm init gate (@meowgorithm)

  • 8246dff514e91e8a0a564b8bb467b7f799715e93: fix(mcp): wait for MCP init before building the tool list (@claude)

  • 1ef42ef8688a325f955af89f4a119a6680ccff4c: fix(queue): fix pill border on queued messages (#3333) (@taciturnaxolotl)

  • 4f4b84695dbb3b232a2df582383bdf62ab6c2d14: fix(refactor): refactor the edit tool to not duplicate find and replace (@taciturnaxolotl)