Commit log

e44211d refactor: migrate run and login commands to use client API instead of direct app access

Ayman Bagabas created

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

344eb32 fix: ensure proper resource cleanup and add retry logic for workspace creation

Ayman Bagabas 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

e70c8ba refactor: use client and server for workspace access and management

Ayman Bagabas created

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

Charm created

64f6cdf refactor: rename Permissions.SkipRequests to Overrides().SkipPermissionRequests

Ayman Bagabas created

99108f0 Merge branch 'main' into server-client-2

Ayman Bagabas 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

33863b1 refactor(server): move agent, session, permission, and event logic to backend package

Ayman Bagabas created

1b37d55 feat: send server client version info

Ayman Bagabas 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

0f2e2f0 feat(server): initial implementation of Crush RPC server/client

Ayman Bagabas 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