46ebd20
fix(ui): optimize assistant message rendering to improve performance (#2258)
Click to expand commit body
This commit attempts to fix an issue where the rendering of assistant
messages in the chat UI can become significantly degraded in
performance, especially for long messages. The root cause of the
performance degradation was identified as the use of lipgloss.Render for
applying styles to the message content, which involves wrapping logic
that can be expensive for long messages.
2656a18
fix(ui): cache blurred and focused renderings separately for assistant messages (#2252)
Click to expand commit body
Assistant messages can have long content, and rendering them can be
expensive. To improve performance, we cache the rendered content for
both blurred and focused states separately.
Ayman Bagabas
created
699c8d7
refactor: simplify some code by using `cmp.Or` (#2253)
Andrey Nering
created
44c7535
fix(deps): update `go-nativeclipboard` version to compile to RISC-V. (#2216)
db5e9cc
chore(deps): bump github/codeql-action in the all group (#2237)
Click to expand commit body
Bumps the all group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).
Updates `github/codeql-action` from 4.32.2 to 4.32.3
- [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/45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2...9e907b5e64f6b83e7804b09294d44122997950d6)
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-version: 4.32.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
7fe592d
fix: make reasoning effort dialog smaller (#2247)
Click to expand commit body
Before, it was even wider than the commands dialog, which looked weird.
Andrey Nering
created
7ac4061
fix(lsp): properly remove clients from map on stop/kill
Click to expand commit body
- Delete clients from the map in StopAll and KillAll so they can be
recreated on restart
- Add StateDisabled to the state check to prevent re-initializing
disabled clients
- Remove duplicate callback invocation in startServer
💘 Generated with Crush
Assisted-by: Kimi K2.5 via Crush <crush@charm.land>
- used the synchronized client map
- lsps root markers don't need to be gitignore aware
- cache unexisting lsp binaries globally
closes #2223
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker
created
540deef
fix(ui): toggle pills to follow scroll (#2218)
Click to expand commit body
This change ensures that when toggling the pills (e.g., to-dos) in the
UI, if the scroll follow mode is enabled, the chat will automatically
scroll to the bottom. This prevents the user from losing their place in
the chat when they expand or collapse the pills section.
Ayman Bagabas
created
ab475a4
chore(legal): @julienrbrt has signed the CLA
Charm
created
e471e75
fix(ui): early exit AtBottom() when totalHeight exceeds viewport height
Add smart loop detection as a stop condition for agent execution. When
the same tool call signature (name + input + output) appears more than
5 times within a 10-step window, the agent stops instead of running
until context window exhaustion.
huaiyuWangh
created
ddf2fad
chore: update fantasy with fix for json schema in openai (#2221)
d34c56b
Merge pull request #2204 from charmbracelet/charm-1151-toggling-open-a-block-while-streaming-causes-jitter
Click to expand commit body
fix(ui): chat: use follow indicator to determine auto-scrolling behavior
Ayman Bagabas
created
1f9f190
chore(legal): @PHPCraftdream has signed the CLA
Charm
created
8ccb3c7
feat(pills): add toggle todos/pills menu item (#2202)
Christian Rocha
created
eae61e1
fix(ui): completions offset for attachments row (#2208)
Click to expand commit body
refs #2129
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker
created
d7e2252
perf: replace regex-based gitignore with glob-based matching (#2199)
Click to expand commit body
Replace github.com/sabhiram/go-gitignore (regex-based) with
github.com/go-git/go-git/v5/plumbing/format/gitignore (glob-based).
Key optimizations:
- Two-level caching: per-directory pattern cache + combined matcher cache
- O(1) fast-path for common directories (node_modules, .git, __pycache__, etc.)
- Pre-build combined matchers to avoid O(depth) pattern walking per file
- Proper isDir parameter for directory-specific patterns (e.g., "backup/")
Profiling showed 80% CPU in regexp.tryBacktrack from the old library when
walking large monorepos (771k files). After this change, gitignore matching
drops to ~2% of CPU time.
💘 Generated with Crush
Assisted-by: AWS Claude Opus 4.5 via Crush <crush@charm.land>
Austin Cherry
created
faec9a2
chore(legal): @wallacegibbon has signed the CLA
Charm
created
976cca1
chore: upgrade lipgloss and colorprofile to fix windows terminal bash
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)
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.