Commit log

6efc370 chore: update catwalk

Andrey Nering created

4501438 fix(ui): always clean up external editor temp file (#2503)

iceymoss created

da39f6f docs(readme): add q&a section and note about clipboard support (#2509)

Andrey Nering created

1f9f122 test(diffview): update test fixtures

Andrey Nering created

e7a4146 fix(diffview): use `udiff.Lines` and not `udiff.Strings`

Andrey Nering created

49b6b58 chore(legal): @srivilliamsai has signed the CLA

Charm created

65b9ea5 chore(taskfile): add one more file to dependencies

Andrey Nering created

a81a652 feat(ui): variable height prompt input field (#2468)

Christian Rocha created

2928dcb fix: append error tool message when tool call is cancelled (#2492)

Click to expand commit body
When a user cancels a tool call by pressing Esc twice, the assistant
message with tool_calls was remaining in the conversation history but
no tool response followed. This caused 400 Bad Request errors from
model providers on the next message.

The fix uses the parent context (ctx) instead of the request context
(genCtx) when updating messages during tool call tracking and tool
result creation. This ensures that even if the request is cancelled
mid-stream, the message updates and creations succeed.

Additionally, the error message was updated from 'Tool execution
canceled by user' to 'Error: user cancelled assistant tool calling'
to better indicate the cancellation occurred during the assistant
tool calling phase.

Fixes #529
Fixes #1206

Chris Chen created

4a3df1e fix(dialog): use valid key binding name for OAuth success state (#2491)

Click to expand commit body
Replace invalid "finish" key name with "enter" in the OAuth success
state key binding. "finish" is not a valid key name in the key package,
while "enter" is consistent with other key bindings in the codebase
and matches the help text shown to users.

huaiyuWangh created

dd7b58d fix: enhance session title prompt to fix language issue (#2497)

Click to expand commit body
* Closes #2495

Andrey Nering created

71ddb7a chore(legal): @iceymoss has signed the CLA

Charm created

0525f01 chore(legal): @fuleinist has signed the CLA

Charm created

c233604 v0.52.0

Andrey Nering created

06cf63f fix: session titles should keep the same spoken language

Andrey Nering created

ffff334 test: re-record vcr cassettes after system prompt change

Andrey Nering created

2325de7 fix(system-prompt): tell the model to respond in the prompt spoken language

Andrey Nering created

d89120c fix(hyper): ensure it's possible to override with `HYPER_URL`

Andrey Nering created

18e1df4 chore(deps): update fantasy and catwalk (#2485)

Andrey Nering created

0f5df9b feat(bash): set `CRUSH=1`, `AGENT=crush` and `AI_AGENT=crush` (#2484)

Click to expand commit body
These ENVs can be used by tools to detect if they are being executed
by Crush, via the Bash tool.

Andrey Nering created

f67fa35 feat(ui): prioritize filename-based completion ranking

wanghuaiyu@qiniu.com created

09da90a docs(ui): add comprehensive comments to completion ranking algorithm

Click to expand commit body
Add detailed documentation to improve code review experience:
- Explain scoring weights and their rationale
- Document the ranking strategy and workflow
- Clarify path hint detection heuristics
- Add examples to helper functions
- Document test cases with their intent

wanghuaiyu@qiniu.com created

0fcf79b feat(ui): improve file completion ranking algorithm

Click to expand commit body
Implement custom ranking algorithm for file completions to provide
better matching results based on user input patterns.

Changes:
- Add intelligent path hint detection to distinguish between filename
  and filepath queries
- Implement weighted scoring system that balances fuzzy matching with
  prefix/contains bonuses
- Support both full path and basename matching with appropriate weights
- Add depth penalty adjustment based on query type
- Select match highlights based on weighted contribution
- Add comprehensive test coverage for ranking logic

wanghuaiyu@qiniu.com created

697fad9 fix: complete file picker dialog action (#2483)

Click to expand commit body
- Add DialogID field to file picker command in commands.go
- Add FilePickerID case handler in openDialog function
- Remove TODO comment and complete implementation

huaiyuWangh created

0e3d472 docs(readme): update skill docs with updates and new paths

Andrey Nering created

1a0b638 chore: update generated `.crush/.gitignore` to not ignore skills

Andrey Nering created

cd5c937 feat: load project skills automatically from `.crush/skills` and more

Andrey Nering created

db043c3 fix: on windows, also load skills from `$HOME/.config/crush/skills`

Andrey Nering created

ffc7a9d fix(log): don't conflate body drain errors with HTTP errors

Christian Rocha created

6920cf1 chore(lint): modernize interfaces in the db package

Christian Rocha created

ec48103 v0.51.3

Andrey Nering created

e7b57ef ci(cla): revert commit title change

Andrey Nering created

f9cb29f chore(legal): @malikwirin has signed the CLA in $pullRequestNo

Charm created

ec45e15 chore(legal): @UnderLotus has signed the CLA in $pullRequestNo

Charm created

96f51ca fix(tui): remove duplicate ctrl+g help binding in FullHelp (#2465)

faelis created

dfc57d4 fix: reduce max read size from 5mb to 1mb for view and fetch tools (#2447)

Click to expand commit body
5MB is way too much. Many models simply don't have the context windows
to handle that. 1MB seems to works well.

Worth noting that:

* For the view tool, the model will be instruced to read in pieces
* For the fetch tool, the content will be truncated with a note

To reproduce (I tested with Kimi K2.5), use the following prompt:

    read this: https://developers.openai.com/api/reference/resources/responses

Andrey Nering created

0c6fb42 fix: improve long text detection to account for long text in a single line (#2442)

Andrey Nering created

91bec12 chore: update ncruces/go-sqlite3 to v0.33.0 (#2461)

Click to expand commit body
This release migrates away from `wazero` in favor of `wasm2go`, which
should bring better performance, specially on startup time.

For more information, see:

* https://github.com/ncruces/go-sqlite3/releases/tag/v0.33.0
* https://github.com/ncruces/go-sqlite3/discussions/361

Andrey Nering created

cbf3e5d chore(legal): @faelis has signed the CLA in $pullRequestNo

Charm created

2bec41e ci(labeler): add avian label

Andrey Nering created

c771cf1 chore: update `google.golang.org/grpc` with security fix (#2464)

Click to expand commit body
Reported by Grype.

Andrey Nering created

127848a chore(legal): @hongquan has signed the CLA in $pullRequestNo

Charm created

06f5251 ci: update cla action and bring back pr number

Click to expand commit body
* Reverts 479ca3f1157153af58a826cdff01cb2c535f0cf6
* Ref https://github.com/contributor-assistant/github-action/pull/174

Andrey Nering created

a495a04 chore(legal): @Alex-wuhu has signed the CLA

Charm created

40c426a chore: add a workaround for slog calls in config.Load leaking to stderr

Ayman Bagabas created

9a63da5 feat: add AppWorkspace implementation of Workspace interface gated behind CRUSH_CLIENT_SERVER env var

Ayman Bagabas created

7bb3a7b refactor: simplify LSP diagnostic counts retrieval

Ayman Bagabas created

a35a2bd Merge branch 'main' into server-client-2

Ayman Bagabas created

bc383d9 fix(server): log to stderr if it's a terminal

Ayman Bagabas created

c4f0f1d chore(legal): @whatnick has signed the CLA

Charm created