Commit log

f1bdb9c feat: add configurable auto-background threshold for bash tool (#2183)

Click to expand commit body
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>

Sean Porter and Andrey Nering created

85f91c4 v0.48.0

Andrey Nering created

ca32607 chore(ui): add command palette entry for toggling notifications (#2402)

Christian Rocha created

d3b4ab2 test: re-record test fixtures

Andrey Nering created

cee203d chore: update user-agent string to better follow the convention

Click to expand commit body
* No spaces in app name: `Charm Crush` -> `Charm-Crush`
* Add link to project as a comment `()`

Andrey Nering created

4d98118 chore(deps): update fantasy and catwalk

Andrey Nering created

53ca4dc chore: update and improve ui/AGENTS.md

Christian Rocha created

cfcbd69 feat: CLI-based session access and management (#2373)

Christian Rocha created

cc1b558 chore(legal): @seroperson has signed the CLA

Charm created

5ff8d68 refactor(config): introduce ConfigStore and Scope for better config m… (#2395)

Click to expand commit body
* refactor(config): introduce ConfigStore and Scope for better config management

This makes config.Config immutable and introduces a ConfigStore that
manages the config and provides helper methods for accessing config
values with proper scoping (global, workspace). This allows us to avoid
passing around mutable config objects and ensures that all parts of the
code are accessing the most up-to-date config values. It also lays the
groundwork for future features like per-workspace config overrides.

* fixt: lint

Ayman Bagabas created

562d49f ci: fix govulncheck (#2399)

Andrey Nering created

871b367 chore(deps): update fantasy

Andrey Nering created

f8da538 feat(notification): alert on turn completion and permission request (#1356)

Click to expand commit body
* feat(notification): add em'

Assisted-by: Claude Sonnet 4.5 via Crush

* refactor(permission): check allowlist first

* docs(notification): correct example, fix rendering

* fix(notification): bump godbus/dbus to v5.2.2

v5.1.0's FreeBSD SendNullByte() was in a CGO file, so it was excluded
when building with CGO_ENABLED=0, causing the freebsd/amd64 cross-build
to fail. v5.2.2 rewrites it in pure Go.

Amolith created

ae720e3 chore(deps): pin fantasy v0.12.0

Andrey Nering created

f69f366 chore(deps): bump the all group across 1 directory with 11 updates (#2394)

Click to expand commit body
Bumps the all group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [charm.land/bubbletea/v2](https://github.com/charmbracelet/bubbletea) | `2.0.1` | `2.0.2` |
| [charm.land/catwalk](https://github.com/charmbracelet/catwalk) | `0.28.1` | `0.28.4` |
| [charm.land/glamour/v2](https://github.com/charmbracelet/glamour) | `2.0.0-20260123212943-6014aa153a9b` | `2.0.0` |
| [charm.land/lipgloss/v2](https://github.com/charmbracelet/lipgloss) | `2.0.0` | `2.0.1` |
| [charm.land/log/v2](https://github.com/charmbracelet/log) | `2.0.0-20251110204020-529bb77f35da` | `2.0.0` |
| [github.com/charmbracelet/colorprofile](https://github.com/charmbracelet/colorprofile) | `0.4.2` | `0.4.3` |
| [github.com/charmbracelet/fang](https://github.com/charmbracelet/fang) | `0.4.4` | `1.0.0` |
| [github.com/ncruces/go-sqlite3](https://github.com/ncruces/go-sqlite3) | `0.30.5` | `0.31.1` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.19.0` | `0.20.0` |
| [mvdan.cc/sh/v3](https://github.com/mvdan/sh) | `3.12.1-0.20250902163504-3cf4fd5717a5` | `3.13.0` |



Updates `charm.land/bubbletea/v2` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/charmbracelet/bubbletea/releases)
- [Commits](https://github.com/charmbracelet/bubbletea/compare/v2.0.1...v2.0.2)

Updates `charm.land/catwalk` from 0.28.1 to 0.28.4
- [Release notes](https://github.com/charmbracelet/catwalk/releases)
- [Commits](https://github.com/charmbracelet/catwalk/compare/v0.28.1...v0.28.4)

Updates `charm.land/glamour/v2` from 2.0.0-20260123212943-6014aa153a9b to 2.0.0
- [Release notes](https://github.com/charmbracelet/glamour/releases)
- [Commits](https://github.com/charmbracelet/glamour/commits/v2.0.0)

Updates `charm.land/lipgloss/v2` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/charmbracelet/lipgloss/releases)
- [Commits](https://github.com/charmbracelet/lipgloss/compare/v2.0.0...v2.0.1)

Updates `charm.land/log/v2` from 2.0.0-20251110204020-529bb77f35da to 2.0.0
- [Release notes](https://github.com/charmbracelet/log/releases)
- [Commits](https://github.com/charmbracelet/log/commits/v2.0.0)

Updates `github.com/aymanbagabas/go-udiff` from 0.4.0 to 0.4.1
- [Release notes](https://github.com/aymanbagabas/go-udiff/releases)
- [Commits](https://github.com/aymanbagabas/go-udiff/compare/v0.4.0...v0.4.1)

Updates `github.com/charmbracelet/colorprofile` from 0.4.2 to 0.4.3
- [Release notes](https://github.com/charmbracelet/colorprofile/releases)
- [Commits](https://github.com/charmbracelet/colorprofile/compare/v0.4.2...v0.4.3)

Updates `github.com/charmbracelet/fang` from 0.4.4 to 1.0.0
- [Release notes](https://github.com/charmbracelet/fang/releases)
- [Commits](https://github.com/charmbracelet/fang/compare/v0.4.4...v1.0.0)

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

Updates `golang.org/x/sync` from 0.19.0 to 0.20.0
- [Commits](https://github.com/golang/sync/compare/v0.19.0...v0.20.0)

Updates `mvdan.cc/sh/v3` from 3.12.1-0.20250902163504-3cf4fd5717a5 to 3.13.0
- [Release notes](https://github.com/mvdan/sh/releases)
- [Changelog](https://github.com/mvdan/sh/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mvdan/sh/commits/v3.13.0)

---
updated-dependencies:
- dependency-name: charm.land/bubbletea/v2
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: charm.land/catwalk
  dependency-version: 0.28.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: charm.land/glamour/v2
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: charm.land/lipgloss/v2
  dependency-version: 2.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: charm.land/log/v2
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/aymanbagabas/go-udiff
  dependency-version: 0.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/charmbracelet/colorprofile
  dependency-version: 0.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: github.com/charmbracelet/fang
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: all
- dependency-name: github.com/ncruces/go-sqlite3
  dependency-version: 0.31.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: golang.org/x/sync
  dependency-version: 0.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: mvdan.cc/sh/v3
  dependency-version: 3.13.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

a897f65 feat: set user-agent to Charm Crush/<version> (#2357)

Christian Rocha created

45c25b3 chore: update AGENTS.md (#2388)

Christian Rocha created

1f1426b chore(legal): @ZeitbyteRepo has signed the CLA

Charm created

a3bfa19 chore(agent): allocate errors once, reuse errors

Christian Rocha created

7d50e8f chore(agent): cleanup logic

Christian Rocha created

e0d3141 fix(events): remove redundant posthog exit event (#2371)

Christian Rocha created

2dacfbd fix(noninteractive): actually use models to generate titles (#2372)

Click to expand commit body
Prior to this, non-interactive titles would simply be the prompt, which
could be multiple lines and would include data piped in.

This revision also removes the "non-interactive:" title prefix as it's
irrelevant. Non-interactive sessions can be picked up in the TUI and are
treated no different than interactive sessions.

Christian Rocha created

ec8c8dd fix(events): panic when metrics are disabled

Christian Rocha created

4fee559 fix(ui): properly truncate info message (#2379)

Ayman Bagabas created

79c3ffa chore: improve examples in `crush --help`

Christian Rocha created

7f2e9f8 fix(ui): format xhigh as XHigh (not Xhigh) (#2369)

Christian Rocha created

a0a0040 v0.47.2

Andrey Nering created

eb71faf chore: add gpt 5.4 and gpt 5.4 pro (#2363)

Click to expand commit body
* https://github.com/charmbracelet/fantasy/pull/158
* https://github.com/charmbracelet/catwalk/pull/204

Andrey Nering created

ef0671c fix: suppress message when clipboard is empty (#2361)

Andrey Nering created

a512006 v0.47.1

Andrey Nering created

ca13661 chore: update bubble tea to v2.0.1 (#2360)

Click to expand commit body
This fixes some resize issues on some terminal emulators, particularly on
Windows.

Andrey Nering created

fae0f2e fix(lsp/edit): properly handle non-ascii chars (e.g. CJK) (#2325)

Christian Rocha created

8a9000b ci: update golangci-lint to v2.10 and fix new issues (#2355)

Andrey Nering created

ae1bac3 chore: update hyper (#2354)

Andrey Nering created

5b2e5be ci: add hyper to labeler

Andrey Nering created

8bcca78 v0.47.0

Andrey Nering created

6d89de6 chore: update catwalk

Andrey Nering created

56d79d1 fix(lsp): fallback to Kill() on timeout (#2349)

Tai Groot created

aa0997b chore: bump powernap to v0.1.2

Click to expand commit body
Related: https://github.com/charmbracelet/crush/pull/2349

Ayman Bagabas created

9ec46b8 feat(shell): add blocking wait option to job_output tool (#2189)

Sean Porter created

da2eef2 chore(deps): bump actions/setup-go from 6.2.0 to 6.3.0 in the all group (#2340)

Click to expand commit body
Bumps the all group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).


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

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-version: 6.3.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

59031cb v0.46.2

Andrey Nering created

8762efc fix(ui): follow scroll when at bottom (#2336)

Click to expand commit body
* fix(ui): follow scroll when at bottom

This change attempt to completely fix the agent scroll issue when at
bottom. It should follow the agent when the follow flag is set.

* fix(ui): make sure we select the last item when at bottom

Ayman Bagabas created

4596b02 fix(lsp): treat adjacent ranges as non-overlapping per LSP spec (#2322)

Click to expand commit body
Fix rangesOverlap() to treat LSP ranges as half-open intervals [start, end)
per the specification. Adjacent edits where one range ends where another
begins are no longer incorrectly rejected as overlapping.

huaiyuWangh created

c843441 chore(deps): bump the all group with 4 updates (#2341)

Click to expand commit body
Bumps the all group with 4 updates: [github.com/charmbracelet/x/powernap](https://github.com/charmbracelet/x), [github.com/go-git/go-git/v5](https://github.com/go-git/go-git), [github.com/modelcontextprotocol/go-sdk](https://github.com/modelcontextprotocol/go-sdk) and [golang.org/x/net](https://github.com/golang/net).


Updates `github.com/charmbracelet/x/powernap` from 0.1.0 to 0.1.1
- [Commits](https://github.com/charmbracelet/x/compare/v0.1.0...vcr/v0.1.1)

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

Updates `github.com/modelcontextprotocol/go-sdk` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/modelcontextprotocol/go-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/go-sdk/compare/v1.3.1...v1.4.0)

Updates `golang.org/x/net` from 0.50.0 to 0.51.0
- [Commits](https://github.com/golang/net/compare/v0.50.0...v0.51.0)

---
updated-dependencies:
- dependency-name: github.com/charmbracelet/x/powernap
  dependency-version: 0.1.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.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/modelcontextprotocol/go-sdk
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: golang.org/x/net
  dependency-version: 0.51.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

2baf565 chore(legal): @vmfu has signed the CLA

Charm created

42a9e75 chore(legal): @taoeffect has signed the CLA

Charm created

57744ca chore(deps): bump charm.land/catwalk from v0.24.0 to v0.25.0 (#2326)

Click to expand commit body
Catwalk v0.25.0 release: https://github.com/charmbracelet/catwalk/releases/tag/v0.25.0

This updates `vertexai.json` provider definition to include `gemini-3.1-*` and `claude-*-4.6`.

Ivan De Marino created

20e8aea chore(legal): @detro has signed the CLA

Charm created

61953d4 v0.46.1

Andrey Nering created