c2b2c29
docs: add fork section
Amolith created
c2b2c29
docs: add fork section
Amolith created
ae4fa52
chore(metrics): disable
Amolith created
7187e1f
build(release): add fork command
Amolith created
ee9706b
feat: yeet the rug-pull-facilitator (CLA)
Amolith created
4be8f69
chore: redo imports everywhere, fmt
Amolith created
97b7416
feat(init-cmd): mention progressive disclosure
I found Crush was often both too verbose and too terse than I'd like in different ways when generating the AGENTS.md. This is an attempt to improve the relevancy of the information it mentions. As just one example, tabs vs spaces is obvious from the first file read, so mentioning that style preference in AGENTS.md just wastes tokens. Since adding this line, I haven't noticed it including trivial details like that! Though I've been using this since Dec 20 and liking it, I've mostly used it and had good results with Claude models. I've not tried it with GPT or GLM or others yet.
Amolith created
3e45d35
feat(init): elicit control/data flow, arch descs
Amolith created
c7fa20d
feat: load user CRUSH.md and AGENTS.md from config
Issue: charmbracelet/crush#1050
Amolith created
80434a8
feat(notification): add em'
Assisted-by: Claude Sonnet 4.5 via Crush
Amolith created
af86738
fix: detect and stop tool call infinite loops (#2130) (#2214)
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)
https://github.com/charmbracelet/fantasy/pull/138
Andrey Nering created
992a7b2
v0.43.0
Andrey Nering created
889d2ce
chore(deps): update catwalk
Andrey Nering created
4f5d31d
chore(deps): update catwalk
Andrey Nering created
b68521f
chore(deps): update fantasy (#2220)
Andrey Nering created
db46f5e
chore: auto-update files
Charm created
45663b7
chore: update catwalk to v0.19.0
Andrey Nering created
aa1ea49
fix: add io.net api key validation fallback
Andrey Nering created
27548b6
docs(readme): mention io.net provider
Andrey Nering created
d34c56b
Merge pull request #2204 from charmbracelet/charm-1151-toggling-open-a-block-while-streaming-causes-jitter
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)
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)
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
detection
Ayman Bagabas created
0c74e47
v0.42.0
Andrey Nering created
f791e5c
fix: change binding to open/close todo list from `ctrl+space` to `ctrl+t` (#2201)
`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)
* 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)
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)
* 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
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)
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)
* 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)
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
Use a more reasonable size for the sessions dialog.
Ayman Bagabas created
d1032ba
fix: respect disable_default_providers (#2177)
* 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)
closes #1401 Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
48157c6
fix(sqlite): increase busy timeout (#2181)
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