f669bd3
fix(lsp): replace sticky unavailable cache with retry backoff (#2498)
Click to expand commit body
Scope unavailable tracking to each Manager instance and retry missing server commands after a short backoff so temporary environment changes do not permanently block LSP startup.
cce8edf
fix: remove minimax api key validate (#2688)
Click to expand commit body
MiniMax API keys don't always follow the "sk-" prefix pattern,
so the validation was causing unnecessary errors for valid keys.
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
flynn-eye
and
Andrey Nering
created
b8eccf9
chore(legal): @flynn-eye has signed the CLA
da33883
fix: reduce token usage, use short tool descriptions by default (#2679)
Click to expand commit body
* Follow-up of #2592
We've been testing this for 2 weeks, and it's working great.
This is a very useful enhancement to reduce token usage, cost, and make
smaller models behave better.
This is particularly significant for local models. These models are tiny,
and with a long enough system prompt they have little context window left
for work.
It's still possible to have the old behavior by setting:
export CRUSH_SHORT_TOOL_DESCRIPTIONS=0
9d555a7
fix: reduce `fetch` and `view` tools truncation size to 100KB
Click to expand commit body
Some models like Kimi K2.5 and GLM 5 simply don't handle well that many
content. When a big page or JSON API is fetch, it can break Crush
sessions.
We're drastically reducing the truncation size here, to 1/10 of what we
had before. It may look too much at first look, but 100KB it's actually
very reasonable. For example, the entire Task guide, which is
significantly large, is only 61KB:
https://taskfile.dev/docs/guide.md
0a86d5f
refactor(skills): strip implementation hints from crush-owned descriptions
Click to expand commit body
Descriptions should describe when a skill applies, not how it does its
job. Leaving language like "using go doc", "the jq command-line
processor", etc. in the trigger encourages the model to guess its way
through without reading SKILL.md.
Christian Rocha
created
e64db33
feat(prompt): require loading appropriate skills before acting
Click to expand commit body
Models frequently skipped viewing a skill's SKILL.md and inferred its
behavior from the description alone; making the load mandatory in
<critical_rules> prevents LLMs from taking that shortcut.
Christian Rocha
created
2da70c1
feat(skills): log skill activation to help diagnose load failures
Christian Rocha
created
3138c8b
fix: use same chroma formatter as diffview for markdown (#2656)
Andrey Nering
created
0e9e0a6
chore(deps): bump the all group with 2 updates (#2659)
dependabot[bot]
created
f15c2d7
chore(deps): bump the all group with 6 updates (#2660)
3773b23
feat(shell): add jq as a bash builtin + a jq skill for it
Click to expand commit body
Also, two local skills now exist for Crush development:
* builtin-skills, for adding new builtin skills
* shell-builtins, for adding new shell builtins
Christian Rocha
created
b37649e
feat(ui): add skills discovery status to sidebar and landing page (#2384)
Click to expand commit body
- Display loaded/errored skills in sidebar and landing page
- Use pubsub event to carry skill states directly to UI, avoiding
global mutable state
- Subscribe to skills discovery events via broker, consistent with
MCP/LSP patterns
- Rename State to DiscoveryState for clarity
huaiyuWangh
created
e8f5e20
feat: show progress bar on rio terminal (#2624)
Andrey Nering
created
4b3dff3
test: run migration setup once to avoid race condition
4e66ada
test: simplify integration tests, run for a single provider / model
Click to expand commit body
It takes a lot of time to re-record these VCRs for so many models.
Sometimes they fail intermittently, and you need to manually re-record
again and again until it works.
Let's keep a single provider and models which should work well enough for
us.
Andrey Nering
created
53c9774
test: reduce amount of logs print on `go test -v`