* feat(lsp): add filetypes configuration
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: simplify
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: test
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* refactor: cleanup
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: improvements
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: accept fts and exts
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
f8da476
fix(lsp): return a copy of lsp diagnostics to avoid data race (#681)
Click to expand commit body
* fix(lsp): return a copy of lsp diagnostics to avoid data race
* Replace maps.Copy with maps.Clone
This underlines the "Y" and "N" in "Yep!" and "Nope" of the quit dialog
to make it consistent with other dialogs and indicates that these
buttons can be activated by a key press.
Ayman Bagabas
created
ed5e17e
chore(deps): bump github.com/ncruces/go-sqlite3 from 0.25.0 to 0.27.1 (#728)
dcca5ab
fix: truncate long paths in compact header (#773)
Click to expand commit body
* fix(lint): normalize method pointer receiver names
* chore(compact-header): bake var as const
* chore(compact-header): reduce idential consts
* chore(compact-header): reduce allocs and function calls
* chore(compact-header): remove magic numbers
* chore(compact-header): further reduce allocs and function calls
* fix(compact-header): truncate path if it's too long
* chore: go mod tidy
* fix(compact-header): color cwd
* chore(compact-header): improve a var name
* fix(llm): set request timeout
If the server is down, address don't resolve, or another myriad of
reasons, currently, it'll get stuck.
This makes it so it times out after 1 minute.
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: remove log
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
16f5400
fix(lint): check length before slicing to avoid a panic in list
Christian Rocha
created
64e8235
chore: bump dependencies to fix linux console perf
Ayman Bagabas
created
eb3ef66
chore: bump bubbletea to v2.0.0-beta.4.0.20250813201422-d4d69f63338d
Ayman Bagabas
created
e0042b4
chore: bump bubbletea to v2.0.0-beta.4.0.20250813191918-4ea1703d4181
Ayman Bagabas
created
073d130
fix(mcp): tool output join with new line (#686)
Click to expand commit body
* fix(mcp): tool output join with new line
refs #604
refs #658
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: make
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
d795c00
fix: make the queue push the messages above
Kujtim Hoxha
created
b159b36
chore(legal): @orospakr has signed the CLA
Charm
created
96dcf0d
fix: stdio mcp startups to match mark3labs upgrade (#742)
Tai Groot
created
39ede6e
fix(editor): better sorting of files when completing with / (#733)
Click to expand commit body
* fix(editor): better sorting of files when completing with /
basically, show shorter paths first
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Update internal/tui/components/chat/editor/editor.go
Co-authored-by: Andrey Nering <andreynering@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>
dba44be
fix(sidebar): fix full path appearing on sidebar on windows
Andrey Nering
created
705d6f6
fix(sidebar): compute the right line count even on windows / crlf
Click to expand commit body
The diff library we're using assumes LF, so we need to convert CRLF
to LF to ensure it works properly.
Andrey Nering
created
a3efafc
fix(tool): fix `edit` and `multi-edit` tools on windows
Click to expand commit body
We should convert the content to LF to apply the patch while still
respecting the original line endings when saving the file on disk.
Co-authored-by: theguy000 <istiakm30@gmail.com>
bdb0a4c
perf: reduce GC pressure in rendering pipeline (#687)
Click to expand commit body
The `renderIterator` function previously caused an extremely large
amount of small strings and other objects to be created and abandoned
during rendering, which caused performance issues after some time as the
GC had to occasionally collect all of these objects.
This was exacerbated by using streaming in models, which leads to
extremely frequent updates.
This commit refactors renderIterator to avoid constructing temporary
strings. Instead, the function now performs two passes:
1. A first pass in which the "fragments" to render are aggregated, but
the `rendered` string is not yet copied and appended/prepended to.
2. A second pass, which uses a `strings.Builder` to efficiently
construct the final output string.
This has *significantly* improved crush's performance for me. Whereas
before `perf` would show it spending up to 70% (!) of its time in
GC-related Go runtime functions, it now spends a trivial amount there.
pprof's heap profiling previously showed renderIterator as a massive
hotspot, whereas it now doesn't even show up in alloc `top` anymore.
The updated function is slightly harder to read. I did spend some time
trying different options for making it more readable, and also asking
various LLMs about it (using crush!), but ultimately didn't find
anything better than the two-pass solution.
ae3b3d7
fix(mcp): append to output instead of replacing (#658)
Click to expand commit body
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker
created
42a346c
fix(mcp): give a time limit for startup (#660)
Click to expand commit body
* fix(mcp): give a time limit for startup
If a MCP gets stuck starting/connecting, chatting will not work.
This makes it so it'll timeout after 5s (we can discuss the time), and
then everything works accordingly.
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: spinner
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Update mcp-tools.go
Co-authored-by: Andrey Nering <andreynering@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>
This may cause more problems than it fixes, as for instance, it cuts
json responses as well, rendering them invalid.
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker
created
5195f8a
fix: fix panic: `fuzzy` library doesn't like empty lists