More client-server, better notifications, and more
Bringing you a few enhancements and bug fixes. Let's check them out!
Client-server
The experiment client-server architecture got even more fixes.
Want to test? Set CRUSH_CLIENT_SERVER=1.
Better notifications
We updated our notifications to be smarter. They will now work when using Crush over SSH, and support for more platforms were improved as well.
Copilot fixes
A couple more models that require the Responses API will now use them and work again. This includes GPT 5.4 and GPT 5.5.
Bedrock fixes
A couple more improvements were made to AWS Bedrock, in particular regarding Bedrock Europe and the support for authentication via aws login.
See you in the next release!
Charm
Changelog
New!
- e764240: feat(api): expose in progress flag on session responses (@meowgorithm)
- ec85e9e: feat(api): report how many clients are watching each session (@meowgorithm)
- 6923820: feat(db): refuse to open a data directory in use by another crush (@meowgorithm)
- e7f5c68: feat(notifications): add configurable backend and bell support (@taciturnaxolotl)
- 3fa7d3f: feat(notifications): migrate disabled and add picker (@taciturnaxolotl)
- d9acf86: feat(server): broadcast config changes to all connected clients (@meowgorithm)
- 1ce40df: feat(server): share one workspace per directory across clients (@meowgorithm)
- 178cd11: feat(server): track which session each client is currently viewing (@meowgorithm)
- d14f3b1: feat(tools): add diff view for denied tools (@taciturnaxolotl)
- 8f9a697: feat(tui): auto close permission prompt when another client responds (@meowgorithm)
- 6da5c95: feat: support notifications for ssh terminal (@nghiant03)
Fixed
- 179a6f3: chore: fix(bedrock): apply region if given for aws config as well (@andreynering)
- a1e4a7c: fix(backend): fix data race in tests using captureDebugLogs (@meowgorithm)
- 57ae2b4: fix(bedrock): improve detection of pre-existing aws credentials (@andreynering)
- 36f0976: fix(bedrock): load aws credentials for bedrock europe (@andreynering)
- ed870ec: fix(client): prevent event subscription panic on cancellation (@meowgorithm)
- 82d57e5: fix(copilot): add additional responses models (@taciturnaxolotl)
- c986a35: fix(db): only enforce the data directory lock in client server mode (@meowgorithm)
- 86568da: fix(permissions): make permission resolution idempotent across clients (@meowgorithm)
- 7d92731: fix(server): one client's cancel should not send a 500 to others (@meowgorithm)
- 2bb5256: fix(server): release pooled DB on test shutdown so Windows can clean temp dir (@meowgorithm)
- c8d0244: fix(ui): properly render model name in summarize (@taciturnaxolotl)
Docs
- f9676eb: docs: describe how Crush shares a workspace across clients (@meowgorithm)
Other stuff
- 3c981c1: chore(db): log lock metadata write failures and explain lock file lifetime (@meowgorithm)
- 3f9bb5e: chore: auto-update files (@charmcli)
- 3780279: chore: auto-update files (@charmcli)
- b20b232: chore: gofumpt (@meowgorithm)
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.74.0/checksums.txt'
wget 'https://github.com/charmbracelet/crush/releases/download/v0.74.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.