624e14c
v0.9.3
Christian Rocha created
624e14c
v0.9.3
Christian Rocha created
ef6a324
chore: add metrics and error tracking
Andrey Nering created
9654218
feat(permissions): pretty-print MCP JSON
Add pretty-printed JSON parameters to MCP tool permission dialogs so users can read more of the content. Co-Authored-By: Crush <crush@charm.land>
Amolith and Crush created
6b161d2
feat(config): allow custom providers of type gemini (#585)
This change extends the provider configuration to allow users to define custom providers with `type: "gemini"`. This enables connecting to any Gemini-compatible API by specifying its `base_url` and `api_key` within the `providers` section of `crush.json`. It supports complex setups, such as using a local proxy or a model-balancing service.
kslamph created
3b6a375
feat: add alt/option+esc binding to current esc key behavior
This mimics the behavior of Claude Code and allows folks who use Crush from within a terminal emulator that captures the escape key (like Nvim's built in terminal emulator) to use it.
Max Justus Spransy created
ab96589
fix: disable providers (#1087)
* fix: disable providers if we remove then from the list, they'll still show up because they won't get merged with catwalk providers later on. closes #1037 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
4dd2b17
fix(lsp): improve error messages
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
4926722
fix(lsp): command
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
2fd3b43
fix(mcp): improve timeout errors (#1108)
* fix(mcp): improve timeout errors refs #970 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: improve Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
0da5e6b
feat(lsp): load defaults by either name or command (#1109)
* fix(lsp): load defaults by name or command name Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix(lsp): simplify Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
1f46a69
fix(grep): resolve Windows path parsing with null separation (#1095)
Rory de Zoete created
c2d85d1
docs: add huggingface inference
kujtimiihoxha created
56d6486
test: verify tools are taken from agent when disabled (#1103)
Adam Stringer created
d0edf44
chore: home pkg godoc
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
ee860b9
docs: document more mcp options
refs #970 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
3ba15bf
docs: aws profile/region envs (#1104)
closes #382 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
1f35d54
fix: lsp/mcp command expand ~ (#1105)
* fix(lsp): powernap load by name Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix(mcp): expand command Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix(lsp): expand command Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
701e550
feat(config): search`crush.json` recursively up from the working directory (#898)
bbrodriges created
f77371b
ci: -trimpath, remove broken target
- windows/arm/v7 was marked broken by the Go team - add `-trimpath` to trim the `/home/etc` from logs Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
feb184d
chore: task fmt (#1098)
Amolith created
3694768
fix: remove <think></think> from title
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
36b053b
chore(legal): @zoete has signed the CLA
Charm created
5637bcd
test: fix
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
3071026
chore(deps): update dependencies
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
976425c
docs(readme): add mini Chinese description (thanks @ohjia)
Christian Rocha created
38bde49
fix(tui): yes/no init selection (#1074)
This commit ensures that the "Yes" and "No" options in the init screen get properly selected when navigating with the keyboard. Related: https://github.com/charmbracelet/crush/issues/1048
Ayman Bagabas created
d55f807
docs: add bit about nixos module (#606)
Kieran Klukas created
47a6d02
fix: session summarization dialog hanging indefinitely (#528)
The summarization dialog was getting stuck in "Generating..." state due to two issues: - Agent was formatting nil error values instead of actual response errors - Dialog only handled summarize events but not error events, leaving it in loading state 💖 Generated with Crush Co-authored-by: Crush <crush@charm.land>
Benjamin Oldenburg and Crush created
831a95a
fix(deps): update powernap for zig
improved zig support into https://github.com/charmbracelet/x/pull/567 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
00072cd
fix: Fix a typo in README.md (#1084)
The environment variable indicated to configure the Azure AI endpoint did not match the value in [Catwalk][]. [Catwalk]: https://github.com/charmbracelet/catwalk/blob/9d9a86e3a4aec20b8874175c115a3533d5083b54/internal/providers/configs/azure.json#L6
Mike Steinert created
f982965
chore(legal): @msteinert has signed the CLA
Charm created
6c990b2
refactor: remove unused prompt (#1083)
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
fa34edc
refactor: put tool descriptions in markdown files (#1077)
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
91b6b31
fix(mcp): pass down mcp name to logger (#1078)
This will make the logs more useful. Right now it would simply print the MCP's library logs without any additional context, so you wouldn't know which MCP is causing issues. Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
96af782
Revert "refactor(tidy): remove nested if and else block"
This reverts commit a6e99fff52b4ab105df91f595a6e94ff3e8bd2cb.
kujtimiihoxha created
5811c4a
refactor(tidy): remove nested if and else block
tauraamui created
58eda7c
fix: handle z.ai key validation differently
kujtimiihoxha created
f794eca
v0.9.1
Christian Rocha created
d66dfa2
fix(lsp): use csync for lsp clients (#1073)
The map was being passed down everywhere, but the locking mechanism only ever lived in `app.go`, which might cause concurrent access issues. This changes it to a `*csync.Map`. Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
016b3b6
feat(lsp): remove internal watcher (#1062)
* feat(lsp): remove internal watcher It was only ever useful if the user edits files through their editor, but we don't really need it assuming we only care about edits done by Crush itself. Basically, we lose that functionality, but save a bunch of file descriptors and have improved perf. Damn good deal if you ask me. Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: remove rlimit Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: more cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
f02ce4b
v0.9.0
Christian Rocha created
38468a3
docs(readme): tidy attribution section
Christian Rocha created
348fa94
Update README.md
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
Raphael Amorim and Andrey Nering created
3445769
chore: various attention to detail edits via @andreynering
Christian Rocha created
13735c7
docs: add missing anchor
Andrey Nering created
2f73e6c
docs(readme): mention contributing guide (#1067)
Closes #1064
Andrey Nering created
6c380d4
feat: add attribution settings to config and bash tool (#1025)
* feat: add attribution settings to config and bash tool * fix(readme): move ephemeral data block back to cfg section Closes: #445
Amolith created
b00ffcc
feat: LSP implementation using x/powernap (#1011)
* feat: LSP implementation using x/powernap Replace custom LSP client implementation with the `charmbracelet/x/powernap` library, significantly reducing codebase complexity by removing ~12,000 lines of custom LSP protocol handling code. This migration introduces: - **Simplified client architecture**: Replace custom LSP transport, protocol, and method handling with powernap's battle-tested implementation - **Enhanced workspace support**: Add workspace markers and inactive LSP server detection capabilities from powernap - **Improved configuration**: Integrate powernap's default LSP server configurations and settings - **Reduced maintenance burden**: Remove custom protocol definitions, JSON marshaling, and transport layer code - **More features**: e.g. workspace root markers, starting LSP servers only where these files exist The refactor maintains existing functionality while leveraging powernap's robust LSP client foundation, making the codebase more maintainable and feature-rich. Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> chore: updates Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: code review Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * revert: unwanted change Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: improve code Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: schema Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: improve merge Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: unneeded changes Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: several fixes Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: more cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: use csync Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: did close Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: remove unused code Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: clean Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: cleanup Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * test: fix Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * refactor: improve func Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> * fix: http client debug Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> --------- Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com> Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
Carlos Alexandro Becker and Andrey Nering created
898f1ee
fix(config): look for more than just crush.md
Crush used to show the initialization popup even when the project uses something other than `CRUSH.md`. Crush already has support for loading those other context files, like `CLAUDE.md` or `AGENTS.md`, so this just changes the popup check logic to look for the same set it loads Co-Authored-By: Crush <crush@charm.land>
Amolith and Crush created
382f1ca
chore: fix labeler script
Andrey Nering created