Commit log

a8b62b1 chore(legal): @khalilgharbaoui has signed the CLA

Charm created

77a241f chore(legal): @ijt has signed the CLA

Charm created

133cb6f chore(legal): @bittoby has signed the CLA

Charm created

7119b7e fix(ui): update layout and size after session switch

Ayman Bagabas created

2439781 v0.37.0

Andrey Nering created

216f904 fix(posthog): check correct error; prevent panic (#2036)

Click to expand commit body
💘 Generated with Crush

Assisted-by: GLM 4.7 via Crush <crush@charm.land>

Christian Rocha created

230b99c fix(ui): arrow navigation wasnt working when todo view is open (#2052)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

6c26f2a fix(ui): switch focus on click (#2055)

Click to expand commit body
Ignore sidebar clicks when sidebar is visible.

Assisted-by: GPT-5.2 via Crush <crush@charm.land>

Andrey Nering created

b51c2e0 fix: do not scroll to bottom if user has scrolled up (#2049)

Andrey Nering created

1696e72 chore: update catwalk and its import paths to `charm.land/catwalk`

Andrey Nering created

87c2165 chore: `chmod +x scripts/check_log_capitalization.sh`

Andrey Nering created

857cc28 chore(ui): string efficiency

Click to expand commit body
💘 Generated with Crush

Assisted-by: Kimi K2.5 via Crush <crush@charm.land>

Christian Rocha created

ac03cb0 fix(ui): typo in ListItemStyles type name

Click to expand commit body
💘 Generated with Crush

Assisted-by: Kimi K2.5 via Crush <crush@charm.land>

Christian Rocha created

4228f75 fix: slice string at the grapheme level, not byte level

Christian Rocha created

7ace8d5 fix: panic when matching titles in session dialogue

Christian Rocha created

02bb76b fix: allow HYPER_URL with embedded provider (#2031)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

3a2a045 fix: improve logs, standardize capitalized (#2047)

Click to expand commit body
* fix: improve logs, standarize capitalized

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* Update Taskfile.yaml

Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>

* chore: lint

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>

Carlos Alexandro Becker and Andrey Nering created

c3ae230 fix: respect disabled indeterminate progress bar setting on app start (#2054)

Christian Rocha created

40869ec chore: auto-update files

Charm created

c0a8c7e feat: allow to disable indeterminate progress bar (#2048)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

7643d6a ci: use goreleaser nightly on snapshot build

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

aa2cacd feat: open commands dialog on pressing `/` (#2034)

Andrey Nering created

e57687f fix(ui): fix wrong color on selected item info on dialogs (#2041)

Andrey Nering created

aae4c30 fix(ui): fix selection of code blocks with tabs inside markdown (#2039)

Click to expand commit body
Yes, this is very specific. You need a code block, inside markdown,
that uses tabs instead of spaces for indentation, like Go code.

This affected both how the code is present on the TUI as well as the text
copied to clipboard.

We need to convert tabs into 4 spaces on the highlighter to match how
it's shown in the TUI.

Centralized this into a function to ensure we're doing the exact same
thing everywhere.

Andrey Nering created

87fad18 fix: make the commands dialog less taller (#2035)

Andrey Nering created

3a929ff feat: filetracker per session (#2033)

Click to expand commit body
* feat: filetracker per session

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: only in the new ui

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: tests, lint

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: old tui

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* test: added test, improve schema

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* test: synctest

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* test: fix race

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: relpath

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: simplify

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* chore: trigger ci

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

a81443c chore(legal): @liannnix has signed the CLA

Charm created

daf786f fix(stats): resizing breaks pie charts (#2030)

Click to expand commit body
resizing the browser would "break" the pie charts, cutting them off

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

de64b00 fix: decouple thinking/reasoning from provider type (#2032)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

5011ba2 docs: improve clarity and fluency of mandarin tagline (#2022)

Tommy Guo created

008be3f chore(legal): @oug-t has signed the CLA

Charm created

9602140 ci: format nix (#2009)

Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

fea878e feat(mcp): support server side instructions (#2015)

Click to expand commit body
* feat(mcp): support server side instructions

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: empty lines

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

c6b0a8a refactor: terminal capability handling (#2014)

Ayman Bagabas created

99aabb0 fix: schema incorrectly marks optional fields as required (#1996)

Click to expand commit body
This fixes two schema validation issues:

1. tools.ls incorrectly marked as required
   - Changed Tools.Ls and Config.Tools from omitzero to omitempty
   - The invopop/jsonschema library doesn't recognize Go 1.25's omitzero tag

2. lsp.command incorrectly marked as required
   - Removed jsonschema:"required" tag from LSPConfig.Command
   - The project's own crush.json doesn't include command field for gopls

After this fix, users can use minimal configurations without being
forced to specify tools.ls or lsp.command fields.

huaiyuWangh created

50ae9f2 chore: auto-update files

Charm created

c81b02f feat(lsp): auto-discover LSPs (#1834)

Click to expand commit body
* feat(lsp): auto-discover LSPs

- auto-discover LSPs defined in powernap
- faster startup by walking dir only once to check root markers from all
  LSPs
- errors on auto-found LSPs are ignored (e.g. it might match
  golangci-lint-server but if you don't have it installed it shouldn't
  show in the list)

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: sidebar improvement

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: if

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: startup, disabled

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: lint

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: remove unneeded func

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* perf: skip empty

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: server names

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: do not show failing non configured lsps

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* fix: allow to disable auto lsp

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

* chore: update powernap

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>

Carlos Alexandro Becker created

df2c001 fix(lsp): scope client to working directory (#1792)

Click to expand commit body
Files outside the working directory are now rejected by HandlesFile(),
preventing external files from being opened on the LSP and triggering
spurious diagnostics.

Assisted-by: Claude Opus 4.5 via Crush

Amolith created

632666e chore: fix typo on `crush stats` html page

Andrey Nering created

033584c feat: implement prompt history (#2005)

Kujtim Hoxha created

c5f0e4d Handle unknown tool calls in the TUI (#2001)

Kujtim Hoxha created

115adeb fix(ui): use setState method to change UI state and focus (#1994)

Click to expand commit body
This change introduces a setState method in the UI model to encapsulate
the logic for changing the UI state and focus. This ensures that any
time the state or focus is changed, the layout and size are updated
accordingly.

Ayman Bagabas created

699ae40 fix: make the check for sidebar toggle inclusive (#2013)

Kujtim Hoxha created

8d3064f fix: layout calculations when editor has attachments (#2012)

Kujtim Hoxha created

5e384b2 fix(ui): ensure the message list does not scroll beyond the last item (#1993)

Click to expand commit body
* fix(ui): ensure the message list does not scroll beyond the last item

Ensure that when scrolling down, the message list does not scroll beyond
the last item, preventing empty space from appearing below the last
message.

* fix: lint

---------

Co-authored-by: Kujtim Hoxha <kujtimii.h@gmail.com>

Ayman Bagabas and Kujtim Hoxha created

4a0af71 v0.36.0

Andrey Nering created

5ddf9d1 fix: token calculation (#2004)

Kujtim Hoxha created

b944952 feat: add ability to drag & drop multiple file at once + support windows (#1992)

Click to expand commit body
Before, only dragging a single file was working. If you tried to drag &
drop multiple, it would fail.

Also, because Windows paste in a totally different format, it wasn't
working at all before.

Andrey Nering created

668adcc ci(goreleaser): fix aur_sorces build to properly set the version (#1978)

Click to expand commit body
it seems that the variable provided to -ldflags, at some point changed from `main.version` to `github.com/charmbracelet/crush/internal/version.Version`.

so reflect that to the build script for the AUR package.

expected change in the PKGBUILD is:
```
diff --git a/PKGBUILD b/PKGBUILD
index e9afb74..58779bf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -23,7 +23,7 @@ build() {
   export CGO_CXXFLAGS="${CXXFLAGS}"
   export CGO_LDFLAGS="${LDFLAGS}"
   export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
-  go build -ldflags="-w -s -buildid='' -linkmode=external -X main.version=v${pkgver}" .
+  go build -ldflags="-w -s -buildid='' -linkmode=external -X github.com/charmbracelet/crush/internal/version.Version=v${pkgver}" .
   ./crush completion bash >./completions/crush.bash
   ./crush completion zsh >./completions/crush.zsh
   ./crush completion fish >./completions/crush.fish
```

Дамјан Георгиевски created

13c28e6 chore(deps): bump the all group with 6 updates (#1985)

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

| Package | From | To |
| --- | --- | --- |
| [github.com/alecthomas/chroma/v2](https://github.com/alecthomas/chroma) | `2.23.0` | `2.23.1` |
| [github.com/bmatcuk/doublestar/v4](https://github.com/bmatcuk/doublestar) | `4.9.2` | `4.10.0` |
| [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3) | `0.30.4` | `0.30.5` |
| [github.com/posthog/posthog-go](https://github.com/posthog/posthog-go) | `1.9.0` | `1.9.1` |
| [github.com/zeebo/xxh3](https://github.com/zeebo/xxh3) | `1.0.2` | `1.1.0` |
| [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | `1.44.2` | `1.44.3` |


Updates `github.com/alecthomas/chroma/v2` from 2.23.0 to 2.23.1
- [Release notes](https://github.com/alecthomas/chroma/releases)
- [Commits](https://github.com/alecthomas/chroma/compare/v2.23.0...v2.23.1)

Updates `github.com/bmatcuk/doublestar/v4` from 4.9.2 to 4.10.0
- [Release notes](https://github.com/bmatcuk/doublestar/releases)
- [Commits](https://github.com/bmatcuk/doublestar/compare/v4.9.2...v4.10.0)

Updates `github.com/ncruces/go-sqlite3` from 0.30.4 to 0.30.5
- [Release notes](https://github.com/ncruces/go-sqlite3/releases)
- [Commits](https://github.com/ncruces/go-sqlite3/compare/v0.30.4...v0.30.5)

Updates `github.com/posthog/posthog-go` from 1.9.0 to 1.9.1
- [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.9.0...v1.9.1)

Updates `github.com/zeebo/xxh3` from 1.0.2 to 1.1.0
- [Commits](https://github.com/zeebo/xxh3/compare/v1.0.2...v1.1.0)

Updates `modernc.org/sqlite` from 1.44.2 to 1.44.3
- [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.44.2...v1.44.3)

---
updated-dependencies:
- dependency-name: github.com/alecthomas/chroma/v2
  dependency-version: 2.23.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/bmatcuk/doublestar/v4
  dependency-version: 4.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/ncruces/go-sqlite3
  dependency-version: 0.30.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/posthog/posthog-go
  dependency-version: 1.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/zeebo/xxh3
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: modernc.org/sqlite
  dependency-version: 1.44.3
  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