Commit log

6b161d2 feat(config): allow custom providers of type gemini (#585)

Click to expand commit body
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

Click to expand commit body
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)

Click to expand commit body
* 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

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

4926722 fix(lsp): command

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

2fd3b43 fix(mcp): improve timeout errors (#1108)

Click to expand commit body
* 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)

Click to expand commit body
* 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

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

ee860b9 docs: document more mcp options

Click to expand commit body
refs #970

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

3ba15bf docs: aws profile/region envs (#1104)

Click to expand commit body
closes #382

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

1f35d54 fix: lsp/mcp command expand ~ (#1105)

Click to expand commit body
* 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

Click to expand commit body
- 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

Click to expand commit body
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

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

3071026 chore(deps): update dependencies

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

fa34edc refactor: put tool descriptions in markdown files (#1077)

Click to expand commit body
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)

Click to expand commit body
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"

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
* 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

Click to expand commit body
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)

Click to expand commit body
Closes #1064

Andrey Nering created

6c380d4 feat: add attribution settings to config and bash tool (#1025)

Click to expand commit body
* 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)

Click to expand commit body
* 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

Click to expand commit body
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

11c6e4f ci(issue-labeler): add azure

Andrey Nering created

073b5b3 chore(legal): @khushveer007 has signed the CLA

Charm created

0bba5af chore: task run

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created