Commit log

0c74e47 v0.42.0

Andrey Nering created

f791e5c fix: change binding to open/close todo list from `ctrl+space` to `ctrl+t` (#2201)

Click to expand commit body
`ctrl+space` is used by some terminal emulators and operating system,
so some users were enable to use it. `ctrl+t` should work everywhere.

Fixes #1618

Andrey Nering created

5179b28 feat(lsp): show user-configured LSPs in the UI (#2192)

Click to expand commit body
* feat(lsp): show user-configured LSPs in the UI

This will show the user-configured LSPs as stopped in the UI.

Maybe we should have a different state for "waiting"?

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

* chore(lsp): mark "unstarted" LSPs as such, use named styles

* fix: add unstarted state

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: Christian Rocha <christian@rocha.is>

Carlos Alexandro Becker and Christian Rocha created

baedc28 fix: address potential panic on shell command execution (#2200)

Click to expand commit body
This panic happen once in a while on CI on Windows specifically.
I personally never saw it happening myself, but I think it's possible
to happen for the end user on Windows as well.

Looks like a potential bug on the interpreter, but in the meantime let's
at least recover from the panic and gracefully handle it.

    panic: ended up with a non-nil exitStatus.err but a zero exitStatus.code

    goroutine 61 [running]:
    mvdan.cc/sh/v3/interp.(*Runner).Run(0xc000220848, {0x1415220e0, 0xc00021a1e0}, {0x14151e088, 0xc00025a600})
    	C:/Users/runneradmin/go/pkg/mod/mvdan.cc/sh/v3@v3.12.1-0.20250902163504-3cf4fd5717a5/interp/api.go:929 +0x6b2
    github.com/charmbracelet/crush/internal/shell.(*Shell).execCommon(0xc000256360, {0x1415220e0, 0xc00021a1e0}, {0x14135a250, 0x9}, {0x14151baa0, 0xc00025a540}, {0x14151baa0, 0xc00025a580})
    	D:/a/crush/crush/internal/shell/shell.go:273 +0x285
    github.com/charmbracelet/crush/internal/shell.(*Shell).execStream(...)
    	D:/a/crush/crush/internal/shell/shell.go:288
    github.com/charmbracelet/crush/internal/shell.(*Shell).ExecStream(0xc000256360, {0x1415220e0, 0xc00021a1e0}, {0x14135a250, 0x9}, {0x14151baa0, 0xc00025a540}, {0x14151baa0, 0xc00025a580})
    	D:/a/crush/crush/internal/shell/shell.go:111 +0x139
    github.com/charmbracelet/crush/internal/shell.(*BackgroundShellManager).Start.func1()
    	D:/a/crush/crush/internal/shell/background.go:122 +0x15f
    created by github.com/charmbracelet/crush/internal/shell.(*BackgroundShellManager).Start in goroutine 28
    	D:/a/crush/crush/internal/shell/background.go:119 +0x72a

Andrey Nering created

0b618f4 fix: ensure all providers are shown unless `disable_default_providers` is set (#2197)

Andrey Nering created

f22ec5f chore: auto-update files

Charm created

5b2a0bf fix(grep): do not go outside cwd, add timeout (#2188)

Click to expand commit body
* fix(grep): do not go outside cwd, add timeout

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

* fix: timeout config

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

9940e83 chore(deps): update catwalk to v0.18.0 (#2198)

Andrey Nering created

d320f12 Merge pull request #2191 from charmbracelet/charm-1152-sessions-dialog-is-too-big

Click to expand commit body
fix(ui): adjust sessions dialog size

Ayman Bagabas created

8a6f25f chore(taskfile): run binary with extension on windows

Andrey Nering created

f87d95b fix(ui): correctly position cursor when attachments are present (#2190)

Click to expand commit body
This change fixes a UI issue where the cursor is off by one line when
attachments are present in the editor.

Ayman Bagabas created

361a318 fix(ui): ensure the min size accounts for the dialog border

Ayman Bagabas created

8eb4dc0 chore(taskfile): add `-v` to `go build`

Andrey Nering created

7f3d7c7 refactor: use csync.Map for regex caches (#2187)

Click to expand commit body
* refactor: use csync.Map for regex caches

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

* fix: lint

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

* ci: golangci-lint 2.9

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

0ed5806 ci: golangci-lint 2.9 (#2193)

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

Carlos Alexandro Becker created

155fc61 fix(ui): dialogs: loop around and scroll list when navigating with up/down keys

Ayman Bagabas created

4f3b056 fix(ui): truncate dialog titles with ellipsis

Ayman Bagabas created

5c29ad2 docs(ui): comment typo

Ayman Bagabas created

9917b22 fix(ui): adjust sessions dialog size

Click to expand commit body
Use a more reasonable size for the sessions dialog.

Ayman Bagabas created

d1032ba fix: respect disable_default_providers (#2177)

Click to expand commit body
* fix: respect disable_default_providers

closes #1949

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

* fix: use x/slice

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

* fix: fail if no providers

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

* test: fix

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

47ca98d fix(config): correct Task agent ID in SetupAgents (#2101)

M1xA created

22ed1e5 fix: clear regex cache on new session to prevent unbounded growth (#2161)

M1xA created

d6643a6 fix(lsp): files outside cwd (#2180)

Click to expand commit body
closes #1401

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

Carlos Alexandro Becker created

48157c6 fix(sqlite): increase busy timeout (#2181)

Click to expand commit body
Also refactor so we have the same pragmas on both drivers.

I couldn't reproduce OP's issue, but they're likely trying to use many
Crush instances at the same time, which may cause this.

The timeout was 5s only, so it was kind of easy to hit under load, I
presume. Upping it to 30s should improve that. AFAIK there's no much
else we can do.

See https://www.sqlite.org/rescode.html#busy

Closes #2129

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

Carlos Alexandro Becker created

09cea77 chore: auto-update files

Charm created

82b7aec chore: add `omitempty` back as `omitzero`

Andrey Nering created

7a83144 chore: update `AGENTS.md`, mention `x/ansi` package

Andrey Nering created

d329ad5 chore(taskfile): add `run:onboarding` to test onboarding flow

Andrey Nering created

5e23ecd chore: run `modernize`

Andrey Nering created

29800c4 chore(taskfile): add `modernize` task

Andrey Nering created

9e4f8e0 chore(taskfile): add `run:catwalk` task to run with local catwalk

Andrey Nering created

f962087 chore(taskfile): avoid compiling when not needed

Andrey Nering created

db0ce0b chore: update fantasy (#2186)

Andrey Nering created

1f42acf docs(readme): mention subscriptions (#2184)

Click to expand commit body
Co-authored-by: Christian Rocha <christian@rocha.is>

Andrey Nering and Christian Rocha created

fca69ad chore(legal): @portertech has signed the CLA

Charm created

d391ea8 fix(mcp): cancel context on MCP session close to prevent leak (#2157)

Click to expand commit body
* fix(mcp): cancel context on MCP session close to prevent leak

* refactor: rename unexported mcpSession to exported ClientSession

M1xA created

8c9eb47 docs: update LICENSE copyright

Christian Rocha created

4de4c06 v0.41.0

Andrey Nering created

1615de5 feat: add ability to re-authenticate / edit api key

Andrey Nering created

340ce20 fix(ui): fix help wrapping on dialogs

Andrey Nering created

7d00857 perf: track and start lsp on command (#2176)

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

Carlos Alexandro Becker created

ae9f3f2 v0.40.0

Andrey Nering created

63e0098 fix: improving shutdown (#2175)

Click to expand commit body
* test: use t.Context() and synctest

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

* fix: passing down context to all shutdown funcs

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

* perf(lsp): kill all clients on shutdown

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

* fix: exit posthog earlier

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

* test: fix dirs test

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

* test: fix projects test

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>

* Update internal/lsp/manager.go

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

* fix: cleanup

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

* test: race

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

722093b fix(ui): prevent nil pointer in completions size update (#2162)

kslamph created

3b3a3d7 fix: prevent goroutine orphaning in mcp.Close() and shell.KillAll() (#2159)

M1xA created

16ac973 chore(deps): bump the all group with 3 updates (#2174)

Click to expand commit body
Bumps the all group with 3 updates: [github.com/clipperhouse/displaywidth](https://github.com/clipperhouse/displaywidth), [github.com/clipperhouse/uax29/v2](https://github.com/clipperhouse/uax29) and [github.com/posthog/posthog-go](https://github.com/posthog/posthog-go).


Updates `github.com/clipperhouse/displaywidth` from 0.9.0 to 0.10.0
- [Release notes](https://github.com/clipperhouse/displaywidth/releases)
- [Changelog](https://github.com/clipperhouse/displaywidth/blob/main/CHANGELOG.md)
- [Commits](https://github.com/clipperhouse/displaywidth/compare/v0.9.0...v0.10.0)

Updates `github.com/clipperhouse/uax29/v2` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/clipperhouse/uax29/releases)
- [Commits](https://github.com/clipperhouse/uax29/compare/v2.5.0...v2.6.0)

Updates `github.com/posthog/posthog-go` from 1.9.1 to 1.10.0
- [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.1...v1.10.0)

---
updated-dependencies:
- dependency-name: github.com/clipperhouse/displaywidth
  dependency-version: 0.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/clipperhouse/uax29/v2
  dependency-version: 2.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all
- dependency-name: github.com/posthog/posthog-go
  dependency-version: 1.10.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

6b4249d chore(deps): bump the all group with 2 updates (#2173)

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


Updates `github/codeql-action` from 4.32.0 to 4.32.2
- [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/b20883b0cd1f46c72ae0ba6d1090936928f9fa30...45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2)

Updates `anchore/scan-action` from 7.3.1 to 7.3.2
- [Release notes](https://github.com/anchore/scan-action/releases)
- [Changelog](https://github.com/anchore/scan-action/blob/main/RELEASE.md)
- [Commits](https://github.com/anchore/scan-action/compare/8d2fce09422cd6037e577f4130e9b925e9a37175...7037fa011853d5a11690026fb85feee79f4c946c)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all
- dependency-name: anchore/scan-action
  dependency-version: 7.3.2
  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

074917b refactor(lsp): use same handle file in client and manager (#2168)

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

Carlos Alexandro Becker created

04d05e1 chore: bump bubbletea and ultraviolet dependencies

Ayman Bagabas created

fb9eb92 fix(ui): clear image cache when FilePicker closes to prevent unbounded memory growth (#2158)

Click to expand commit body
* fix(ui): clear image cache when FilePicker closes to prevent unbounded memory growth

* fix(ui): only reset image cache on FilePicker close, not on new session

* fix(ui): reset image cache after Dialog close

* fix(ui): rename image.Reset to image.ResetCache for clarity

M1xA created