Commit log

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

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

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

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

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

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

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

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

5cf6e5a fix(taskfile): fix syntax error on task `run:onboarding`

Andrey Nering created

73c2a9d fix: skip non-existent command dirs instead of creating them (#2534)

Click to expand commit body
Check if the command source directory exists before walking it.
If it doesn't exist, return early with no commands instead of
auto-creating it via MkdirAll. Remove the now-unused ensureDir
helper.

Fixes #2526

Signed-off-by: majiayu000 <1835304752@qq.com>

lif created

42c8bcc fix: do not commit `.crush/.gitignore` (#2531)

Click to expand commit body
Having a `.crush/.gitignore` showing on `git diff` just because you
started Crush on a directory is annoying.
Having the file there is enough. We don't want to commit it.

Andrey Nering created

5d86c0f chore(legal): @owldev127 has signed the CLA

Charm created

c05e1ea chore(legal): @afsuyadi has signed the CLA

Charm created

12da61f chore(legal): @majiayu000 has signed the CLA

Charm created

142aca3 chore(deps): bump the all group with 6 updates (#2529)

Click to expand commit body
Bumps the all group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [charm.land/catwalk](https://github.com/charmbracelet/catwalk) | `0.32.0` | `0.32.1` |
| [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) | `5.17.0` | `5.17.1` |
| [github.com/lucasb-eyer/go-colorful](https://github.com/lucasb-eyer/go-colorful) | `1.3.0` | `1.4.0` |
| [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3) | `0.33.0` | `0.33.2` |
| [github.com/posthog/posthog-go](https://github.com/posthog/posthog-go) | `1.11.1` | `1.11.2` |
| [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | `1.47.0` | `1.48.0` |


Updates `charm.land/catwalk` from 0.32.0 to 0.32.1
- [Release notes](https://github.com/charmbracelet/catwalk/releases)
- [Commits](https://github.com/charmbracelet/catwalk/compare/v0.32.0...v0.32.1)

Updates `github.com/go-git/go-git/v5` from 5.17.0 to 5.17.1
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.0...v5.17.1)

Updates `github.com/lucasb-eyer/go-colorful` from 1.3.0 to 1.4.0
- [Release notes](https://github.com/lucasb-eyer/go-colorful/releases)
- [Changelog](https://github.com/lucasb-eyer/go-colorful/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lucasb-eyer/go-colorful/compare/v1.3.0...v1.4.0)

Updates `github.com/ncruces/go-sqlite3` from 0.33.0 to 0.33.2
- [Release notes](https://github.com/ncruces/go-sqlite3/releases)
- [Commits](https://github.com/ncruces/go-sqlite3/compare/v0.33.0...v0.33.2)

Updates `github.com/posthog/posthog-go` from 1.11.1 to 1.11.2
- [Release notes](https://github.com/posthog/posthog-go/releases)
- [Changelog](https://github.com/PostHog/posthog-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/posthog/posthog-go/compare/v1.11.1...v1.11.2)

Updates `modernc.org/sqlite` from 1.47.0 to 1.48.0
- [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.47.0...v1.48.0)

---
updated-dependencies:
- dependency-name: charm.land/catwalk
  dependency-version: 0.32.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.17.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/lucasb-eyer/go-colorful
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/ncruces/go-sqlite3
  dependency-version: 0.33.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/posthog/posthog-go
  dependency-version: 1.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: modernc.org/sqlite
  dependency-version: 1.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  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

561d647 chore(deps): bump the all group with 2 updates (#2528)

Click to expand commit body
Bumps the all group with 2 updates: [actions/setup-go](https://github.com/actions/setup-go) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `actions/setup-go` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/4b73464bb391d4059bd26b0524d20df3927bd417...4a3601121dd01d1626a1e23e37211e3254c1c06c)

Updates `github/codeql-action` from 4.34.1 to 4.35.1
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/38697555549f1db7851b81482ff19f1fa5c4fedc...c10b8064de6f491fea524254123dbe5e09572f13)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github/codeql-action
  dependency-version: 4.35.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  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

664aae7 fix(csync): use pointer receiver for JSONSchemaAlias (#2521)

Click to expand commit body
Change JSONSchemaAlias receiver from value to pointer for consistency
with other Map methods that use pointer receivers for interface
satisfaction.

huaiyuWangh created

1e96467 chore(legal): @Dexterity104 has signed the CLA

Charm created

8b30fad chore: auto-update files

Charm created

2bcc97b chore(lint): fix some small lint warnings (#2488)

Bruno Krugel created

0e640a1 fix(lsp): respect lsp auto start config (#2487)

Bruno Krugel created

8e743cb fix(event): prevent panic on non-string telemetry keys (#2502)

iceymoss created

086d839 v0.53.0

Andrey Nering created