Commit log

142e266 v0.5.0

Andrey Nering created

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>

Andrey Nering and theguy000 created

bb94be2 chore: fix dependabot label

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

Carlos Alexandro Becker created

22b5c63 chore(deps): bump actions/checkout from 4 to 5 (#720)

Click to expand commit body
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

df23e9a feat(config): allow configure the default diff mode (#454)

bbrodriges created

dce9578 chore: bump glamour/ultraviolet/cellbuf for performance improvements

Click to expand commit body
Related: https://github.com/charmbracelet/crush/pull/687

Ayman Bagabas created

30b07f0 chore(deps): bump golang.org/x/text from 0.27.0 to 0.28.0 (#715)

Click to expand commit body
Bumps [golang.org/x/text](https://github.com/golang/text) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/golang/text/releases)
- [Commits](https://github.com/golang/text/compare/v0.27.0...v0.28.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-version: 0.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

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.

tazjin created

95c4d55 ci: sync dependabot config (#308)

Charm created

42bcc33 chore(legal): @wwwjfy has signed the CLA

Charm created

d336224 chore(legal): @jamestrew has signed the CLA

Charm created

8d799d9 chore(legal): @liznear has signed the CLA

Charm created

9d68f99 fix(gemini): retry at rate limit

Click to expand commit body
Previously, Gemini API would silently terminate when reaching its rate
limit.

ras0q created

b8d88b6 chore(legal): @tazjin has signed the CLA

Charm created

36204c7 chore(legal): @pwnintended has signed the CLA

Charm created

a47d761 feat: add yolo mode command (#654)

Click to expand commit body
* feat: add yolo mode command
* chore: small improvements
* chore(theme): move yolo mode styling into theme

---------

Co-authored-by: Christian Rocha <christian@rocha.is>

Kujtim Hoxha and Christian Rocha created

2f0fd54 docs(readme): break out windows package managers

Christian Rocha created

464aae6 docs(readme): add winget to installation instructions

Christian Rocha created

ae87e4d perf: bump bubble tea for improved CPU usage

Click to expand commit body
See: https://github.com/charmbracelet/bubbletea/pull/1463

Christian Rocha created

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>

Carlos Alexandro Becker and Andrey Nering created

e00a70a fix(tools): do not truncate output (#657)

Click to expand commit body
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

Andrey Nering created

1dc7f20 fix: fix panic: start can't be greater than end

Andrey Nering created

4eec92b ci(issue-labeler): add panic / crash label

Andrey Nering created

ffcaf4c chore(deps): bump github.com/PuerkitoBio/goquery from 1.9.2 to 1.10.3 (#541)

Click to expand commit body
Bumps [github.com/PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) from 1.9.2 to 1.10.3.
- [Release notes](https://github.com/PuerkitoBio/goquery/releases)
- [Commits](https://github.com/PuerkitoBio/goquery/compare/v1.9.2...v1.10.3)

---
updated-dependencies:
- dependency-name: github.com/PuerkitoBio/goquery
  dependency-version: 1.10.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

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

5a5e0b3 chore(deps): bump github.com/pressly/goose/v3 from 3.24.2 to 3.24.3 (#562)

Click to expand commit body
Bumps [github.com/pressly/goose/v3](https://github.com/pressly/goose) from 3.24.2 to 3.24.3.
- [Release notes](https://github.com/pressly/goose/releases)
- [Changelog](https://github.com/pressly/goose/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pressly/goose/compare/v3.24.2...v3.24.3)

---
updated-dependencies:
- dependency-name: github.com/pressly/goose/v3
  dependency-version: 3.24.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

3d0dd2b chore(deps): bump github.com/charlievieth/fastwalk from 1.0.11 to 1.0.12 (#561)

Click to expand commit body
Bumps [github.com/charlievieth/fastwalk](https://github.com/charlievieth/fastwalk) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/charlievieth/fastwalk/releases)
- [Commits](https://github.com/charlievieth/fastwalk/compare/v1.0.11...v1.0.12)

---
updated-dependencies:
- dependency-name: github.com/charlievieth/fastwalk
  dependency-version: 1.0.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

2139939 chore(legal): @theguy000 has signed the CLA

Charm created

598ae11 chore(legal): @akaytatsu has signed the CLA

Charm created

fb6dab0 feat(diffview): only process scroll events when pointer is over dialog

Andrey Nering created

2917109 feat(diffview): add support for mouse scrolling

Andrey Nering created

65cd249 feat: allow for using CRUSH_ prefixed env-vars without clobbering default env vars (#391)

Click to expand commit body
* feat: allow for using CRUSH_ prefixed env-vars for bedrock without clobbering AWS env vars

* feat: make the CRUSH_ prefix generic

Tai Groot created

8899b65 chore(legal): @maxjustus has signed the CLA

Charm created

a32c16c refactor: use core utils middleware from `mvdan/sh` (#323)

Click to expand commit body
* https://github.com/mvdan/sh/pull/1179
* https://github.com/mvdan/sh/pull/1186

Andrey Nering created

318cc22 Merge pull request #633 from charmbracelet/ignore

Click to expand commit body
feat: improve gitignore and crushignore support

Kujtim Hoxha created

a9e5221 Merge pull request #637 from charmbracelet/charm-540-fix-selection-panic

Click to expand commit body
fix(selection): fix panic that can happen on selection

Kujtim Hoxha created

bae88d6 chore(legal): @CyrusZei has signed the CLA

Charm created

fd890f1 fix(selection): fix panic that can happen on selection

Andrey Nering created

13a3e6a Merge pull request #635 from charmbracelet/support-gpt-5

Click to expand commit body
chore: support reasoning model minimal

Kujtim Hoxha created

6984dad Merge pull request #563 from charmbracelet/list-select

Click to expand commit body
Text Selection

Kujtim Hoxha created

45e4e27 chore: update openai prompt

Kujtim Hoxha created

7b95fc5 docs(readme): add note on claude max and github copilot

Christian Rocha created

3280b4a chore: support reasoning model minimal

Kujtim Hoxha created

a05b434 perf: make it a tad faster

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

Carlos Alexandro Becker created

fbe879d feat: improve .crushignore and .gitignore

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

Carlos Alexandro Becker created

1e47f4e feat(csync.Map): added GetOrSet

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

Carlos Alexandro Becker created

9719451 fix: config.HomeDir sync.OnceValue, use user.Current().HomeDir

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

Carlos Alexandro Becker created