9de745c
chore(legal): @gurnben has signed the CLA
Charm created
9de745c
chore(legal): @gurnben has signed the CLA
Charm created
a2081e1
feat(config): support `HYPER_API_KEY` for hyper auth (#2583)
Use `HYPER_API_KEY` to configure Hyper for non-interactive workflows and bypass OAuth-driven setup when the environment variable is present. 💘 Generated with Crush Assisted-by: Kimi K2.5 via Crush <crush@charm.land>
Andrey Nering created
56e2ff6
v0.56.0
Andrey Nering created
baae1b6
fix(lsp): clone slice to avoid mutation
Andrey Nering created
6f7762f
feat(tools/crush_info): add skill status
Christian Rocha created
816453b
feat(tools/crush_info): staleness detection and auto-reload
Ensures crush_info reflects fresh config after edits and detects external/manual config file modifications.
Christian Rocha created
269bc30
feat(tools/crush_info): handle config staleness
Track config file staleness and expose dirty/changed/missing state so crush_info can warn when in-memory config is outdated after on-disk edits. This also makes reload use freshly swapped config state before model/agent setup to avoid stale runtime wiring. 💘 Generated with Crush Assisted-by: Kimi-K2.5 via Crush <crush@charm.land>
Christian Rocha created
77fcc76
feat(tools): add crush_logs tool for reading application logs
Implements a tool that reads Crush's own log files and returns formatted entries in compact text format. Supports: - Tail-style reading (last N entries, default 50, max 100) - Sensitive value redaction (token, secret, api_key, etc.) - JSON value formatting with proper escaping - Chronological ordering (oldest first) - Graceful handling of missing/empty files and malformed lines Approximate overhead: • Tool definition cost (always in prompt): ~1,000 bytes ≈ 250 tokens • Per invocation response (50 lines): ~4,000 bytes ≈ 1,000 tokens • Per invocation response (100 lines): ~8,000 bytes ≈ 2,000 tokens 💖 Generated with Crush Assisted-by: Kimi-K2.5 via Crush <crush@charm.land>
Christian Rocha created
df39b64
feat(tools): add crush_info tool implementation files
Approximate overhead: • Tool definition cost (always in prompt): ~500 bytes ≈ 130 tokens • Per invocation response (typical): ~1,500 bytes ≈ 375 tokens • Per invocation response (worst-case): ~3,000 bytes ≈ 750 tokens 💘 Generated with Crush Assisted-by: Kimi-K2.5 via Crush <crush@charm.land>
Christian Rocha created
2772734
feat(tools): crush_info tool for readling live config
Christian Rocha created
18823f3
docs(readme): mention `AVIAN_API_KEY` (#2557)
avianion created
5361da0
chore(deps): update catwalk
Andrey Nering created
cabcc0e
chore(deps): bump the all group with 3 updates (#2564)
Bumps the all group with 3 updates: [charm.land/catwalk](https://github.com/charmbracelet/catwalk), [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) and [modernc.org/sqlite](https://gitlab.com/cznic/sqlite). Updates `charm.land/catwalk` from 0.33.2 to 0.34.3 - [Release notes](https://github.com/charmbracelet/catwalk/releases) - [Commits](https://github.com/charmbracelet/catwalk/compare/v0.33.2...v0.34.3) Updates `github.com/go-git/go-git/v5` from 5.17.1 to 5.17.2 - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.17.2) Updates `modernc.org/sqlite` from 1.48.0 to 1.48.1 - [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.48.0...v1.48.1) --- updated-dependencies: - dependency-name: charm.land/catwalk dependency-version: 0.34.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all - dependency-name: github.com/go-git/go-git/v5 dependency-version: 5.17.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all - dependency-name: modernc.org/sqlite dependency-version: 1.48.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] and dependabot[bot] created
fccf061
fix(app): derive shutdown context from `context.Background()` instead of cancelled `globalCtx` (#2242)
M1xA created
85445d7
fix(ui): subscribe to `app.LSPEvent` instead of `workspace.LSPEvent` (#2565)
Fix LSP UI display broken in v0.55.0. The UI was still subscribing to workspace.LSPEvent after the event type was moved to the app package, causing LSP status to never update in the UI. Changes: - internal/ui/model/ui.go: Subscribe to app.LSPEvent; use app.GetLSPStates() - internal/ui/model/lsp.go: Use app.LSPClientInfo type for LSPInfo embedding and sorting (fields are identical to workspace.LSPClientInfo) Fixes charmbracelet/crush#2560
Chris Chen created
2e07c0d
style: standardize log capitalization
Andrey Nering created
fa15658
fix(schema): fix `crush.json` schema generation (#2574)
Bruno Krugel created
6e854b4
chore: update unauthorize message
Andrey Nering created
59943a8
feat: open Hyper auth dialog automatically on unauthorized error
When Hyper returns a 401, publish a TypeReAuthenticate notification so the UI opens the OAuth dialog. Also fix coordinator.isUnauthorized to recognize hyper.ErrUnauthorized for auto-refresh. 💘 Generated with Crush Assisted-by: Z.ai: GLM 5.1 via Crush <crush@charm.land>
Andrey Nering created
85b66c3
chore: auto-update files
Charm created
1b7a457
chore: add custom error and message for hyper unauthorized (#2577)
Andrey Nering created
f1c7fe4
chore(legal): @smlx has signed the CLA
Charm created
1bb4627
chore(skills/crush-config): improve crush config skill (#2556)
Christian Rocha created
d645f98
v0.55.1
Andrey Nering created
741c18a
fix: support local models with unknown max_tokens and context window (#2554)
Two fixes for local/custom model compatibility (LM Studio, Ollama, llama.cpp): 1. Don't send MaxOutputTokens when it's 0. Custom models not in the catwalk providers list have DefaultMaxTokens=0, which gets sent as max_tokens:0 in the API request. LM Studio rejects this with "maxPredictedTokens does not satisfy the schema". Fix: only send the field when the value is positive. 2. Skip auto-summarize when ContextWindow is 0. Custom models have ContextWindow=0, making remaining tokens negative, which immediately triggers summarize after the first response. The session resets with "previous session was interrupted because it got too long" even for short conversations. Fix: skip the check when context window is unknown. Fixes #1218 (regression), relates to #1583, #1591
Kartik33 created
6d046c2
chore(legal): @shahidshabbir-se has signed the CLA
Charm created
d10e765
chore(legal): @avianion has signed the CLA
Charm created
c87fefb
chore(legal): @talha7k has signed the CLA
Charm created
71b11bb
chore(legal): @Kartik33 has signed the CLA
Charm created
3befaaa
v0.55.0
Andrey Nering created
7572ce1
chore: auto-update files
Charm created
2832d52
feat(skills): builtin skills + skill disabling + crush-config builtin (#2466)
Christian Rocha created
28f2087
Merge pull request #2455 from charmbracelet/server-client-2
Feat/Refactor: Server Client architecture and API
Ayman Bagabas created
e3df84e
refactor: modernize (#2548)
Bruno Krugel created
ed71633
ci(lint): fix yet another lint issue
Andrey Nering created
c88c941
ci: make lint green
Andrey Nering created
2182fc4
fix: update UI tests to use test workspace
Ayman Bagabas created
f3fe760
Merge branch 'main' into server-client-2
Ayman Bagabas created
de04fc2
chore: auto-update files
Charm created
206aecf
refactor: centralize user config path in a single func `home.Config()` (#2542)
Andrey Nering created
782d4dc
chore(legal): @MrRolie has signed the CLA
Charm created
6054a93
v0.54.0
Andrey Nering created
b68823b
feat(cli/session): show skill metadata (#2541)
Christian Rocha created
480e0f1
chore(deps): update catwalk
Andrey Nering created
3412194
fix(ls): respect git's `core.excludesfile` config if set (#2314)
See: https://git-scm.com/docs/gitignore Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
Martin and Andrey Nering created
bf21a59
feat(init): elicit control/data flow, arch descs (#1790)
Amolith created
d161cbc
feat(init-cmd): mention progressive disclosure (#1786)
I found Crush was often both too verbose and too terse than I'd like in different ways when generating the AGENTS.md. This is an attempt to improve the relevancy of the information it mentions. As just one example, tabs vs spaces is obvious from the first file read, so mentioning that style preference in AGENTS.md just wastes tokens. Since adding this line, I haven't noticed it including trivial details like that! Though I've been using this since Dec 20 and liking it, I've mostly used it and had good results with Claude models. I've not tried it with GPT or GLM or others yet.
Amolith created
cda2719
fix(commands): add timeout context for MCP prompt retrieval (#2517)
The GetMCPPrompt function was using context.Background() without any timeout, which could cause the request to hang indefinitely. Since tea.Cmd doesn't support context passing, we add a 30-second timeout as a safeguard, consistent with the pattern used in OAuth modules. Assisted-by: GLM-5 via Crush <crush@charm.land>
iceymoss created
97c9f4b
refactor(ui): replace hardcoded cursor offset with style-based calculation (#2530)
Remove FIXME workaround in onboarding dialogs that used hardcoded cur.Y -= 1 / cur.X -= 1 to adjust cursor position. Extract a new AdjustOnboardingInputCursor helper that computes the correct offset from Dialog.View border/padding/margin, eliminating code duplication between api_key_input.go and models.go.
huaiyuWangh created
f416931
fix: conditionally show image keybindings based on model support (#2522)
huaiyuWangh created