5dacf9e
docs(hooks): document new embedded shell model
Click to expand commit body
Specifically, we describe the embedded-shell contract, Windows behavior,
permissive shebang fallback, guaranteed CRUSH/AGENT env markers, and
timeout hard-return semantics.
Christian Rocha
created
3b3f992
feat(hooks): propagate CRUSH/AGENT env vars to builtin shell
Click to expand commit body
Share CRUSH=1/AGENT=crush/AI_AGENT=crush between the bash tool's Shell
and the hook runner so the two surfaces can't drift.
Christian Rocha
created
22d6f44
feat(hooks): run via shell.Run instead of sh -c
e5d95aa
fix(hyper): fix re-authorization flow not triggering on certain conditions (#2703)
Click to expand commit body
We attempt to refresh tokens in two scenarios:
* Pro-actively, when we expiration date passed before a request
* Reactively, when we try a request but a 401 was returned
The error / event handling that shows a dialog asking the user to
re-authenticate is dependent on code that runs for the second scenario.
This means that the dialog might not show on the first scenario, if
refreshing the token fails.
If refreshing a token fails, continue with the previous token. Let it
fail and the 401 will trigger a re-authorization dialog.
I caught this because I was switching between local vs. prod Hyper a lot.
Andrey Nering
created
e5b5a40
Merge pull request #2692 from charmbracelet/hypercrush
Click to expand commit body
chore(styles): overhaul style definitions
Christian Rocha
created
81daa26
fix(styles): use semantic names in styles + drop deadcode
Christian Rocha
created
4f3a308
chore(ui): formal hypercrush type treatment
Christian Rocha
created
511916a
fix(ui): logo and grad arguments from earlier refactor
15f20e6
chore(ui): add new letterforms: h, y, p, e, with alts
Christian Rocha
created
549f717
fix(agent): implement OnRetry logging with structured retry fields (#2700)
iceymoss
created
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.