b51b1e2
v0.66.1
Andrey Nering created
b51b1e2
v0.66.1
Andrey Nering created
086cfda
fix: update fantasy with tool call fixes (#2839)
When a tool call is made with invalid arguments, Crush will now report the error back so the model will continue working and can do another attempt. Fix on Fantasy done by @mkaaad. * Ref https://github.com/charmbracelet/crush/issues/2776 * Ref https://github.com/charmbracelet/fantasy/pull/223
Andrey Nering created
44ece2c
fix(tools): truncate long running background commands to 30k chars
Kieran Klukas created
abeaff0
fix(pubsub): respect channelBufferSize parameter in Subsribe
`NewBrokerWithOptions` accepted `channelBufferSize` parameter, but never stored or used it, so `Subsribe`` always used the hardcoded `bufferSize` constant (64).
Yeonuk Hwang created
f970188
chore(legal): @yeonuk-hwang has signed the CLA
Charm created
89181a6
fix(tools): don't return a go error on glob tool failure
Kieran Klukas created
b90bcc3
fix(ui): allow oauth modals to consume enter
Kieran Klukas created
d5b4765
docs(readme): fixed typo in hooks (#2801)
ardevd created
a924ca1
fix(tui): show initialization mark errors in status footer (#2825)
huaiyuWangh created
5816fad
fix(agent): support flat_rate cost handling (#2116)
huaiyuWangh created
95e93e9
fix(ui): add exit alias to the quit command
Kieran Klukas created
11eabdf
fix(errors): surface errors in subagents
Kieran Klukas created
ae1c95a
fix(posthog): do not discard custom properties of an error (#2829)
Andrey Nering created
5aad790
fix(tools): fix a potential nill crash in cached glob results
Kieran Klukas created
8bc4a75
fix(config): atomically update multiple fields during oauth
Kieran Klukas created
3b9b361
docs(readme): document `HYPER_API_KEY`
Andrey Nering created
279b501
v0.66.0
Andrey Nering created
8cd4786
refactor(coordinator): extract token refresh helpers to reduce duplication
Extract `refreshTokenIfExpired` and `retryAfterUnauthorized` functions to eliminate duplicated OAuth/API key refresh logic in both `Run` and `Summarize`. 💘 Generated with Crush Assisted-by: Kimi K2.6 via Crush <crush@charm.land>
Andrey Nering created
6bdd233
fix(ui): display error on summarization instead of leaving spinning
Kieran Klukas created
a4020df
fix(summarize): reauthenticate oauth tokens when used to summarize
Kieran Klukas created
6d95ecc
fix: skip image attachments in history when model doesn't support them (#2818)
When switching from a vision-capable model to one without image support mid-conversation, historical user messages containing image attachments would cause API errors. Now those attachments are filtered out from the prompt history based on the current model's SupportsImages capability. 💘 Generated with Crush Assisted-by: Kimi K2.6 via Crush <crush@charm.land>
Andrey Nering created
61f49b2
fix(agent): drain queued messages after manual session summarize
Kieran Klukas created
0e039d0
fix(ui): prevent duplicate custom skills from rendering
Ilgaz created
3d95ca9
bug: yollo mode via flag doesn't activate prompt
Kieran Klukas created
452cd75
feat: add Nix flake for development environment (#2512)
Kieran Klukas created
b64cb02
chore(legal): @ardevd has signed the CLA
Charm created
3aa26d9
v0.65.3
Andrey Nering created
ecebe91
chore: auto-update files
Charm created
812d78b
chore(deps): update catwalk
Andrey Nering created
99bc5ce
fix(config): check config file for newer token before OAuth refresh
When refreshing an OAuth token (e.g. for Hyper), check the config file on disk first to see if another Crush session already refreshed it. If the disk token differs from the in-memory one, use the disk token and skip the external refresh request. Prevents unnecessary token churn and 401s when multiple Crush sessions are running. 💘 Generated with Crush Assisted-by: Kimi K2.6 via Crush <crush@charm.land>
Andrey Nering created
1ed6f52
refactor(ui): pair markdown cache invalidation with the styles mutation
This is an additional guard to invalidate the cache in the off-chance styles are mutated (rather than updated via applyTheme(), as they should be).
Christian Rocha created
19197e3
fix(ui): cache glamour renderers
The theme prep overhaul in 755f6fa made the main markdown renderer and thinking block markdown renderer heavier, which exasperated a gap in perf. Basically every token chunk would clear would clear the per-item render cache and force a re-render. This update memoizes renderers with markdown and should generally give us a nice increase in perf compared to what we had before the theme rendering.
Christian Rocha created
4010841
fix(db): prevent SQLITE_NOTADB corruption under concurrent sub-agents (#2690)
Crush could fail to start with "file is not a database (26)" after a session ran many sub-agents in parallel. The shared *sql.DB was opened with Go's default unlimited connection pool, so each concurrent sub-agent (session/message/cost writes via coordinator.runSubAgent) could open its own SQLite handle. Under load, WAL frames from different handles interleaved and auto-checkpoints could race; if the process was cancelled or killed mid-checkpoint, the main DB header and WAL desynced, producing SQLITE_NOTADB (26) on the next open. Two changes address this: - Set db.SetMaxOpenConns(1). SQLite serializes writes at the file level anyway, so extra pool connections add no throughput, only race surface. Forcing a single pooled connection makes database/sql queue all callers through one SQLite handle, eliminating cross-handle WAL/checkpoint races. Sub-agents still function; their writes just serialize (which SQLite was going to do regardless). - Add _txlock=immediate to both driver DSNs (modernc.org/sqlite and ncruces/go-sqlite3). BEGIN IMMEDIATE acquires the reserved-writer lock up front so concurrent writers queue cleanly on busy_timeout instead of racing the deferred-to-writer upgrade (the pattern behind prior SQLITE_BUSY reports, e.g. #2129, #2576). Defense in depth alongside the pool limit. For the ncruces driver the DSN must use the file: URI prefix for query params to be parsed; the plain path form silently ignores _txlock.
Greg Slepak created
481202e
chore(deps): bump the all group with 4 updates (#2795)
dependabot[bot] created
81e4d5a
chore(deps): bump github/codeql-action in the all group (#2794)
dependabot[bot] created
b5c8a6d
chore(legal): @ilgax has signed the CLA
Charm created
4be35b8
chore(legal): @somjik-api has signed the CLA
Charm created
56b192e
v0.65.2
Andrey Nering created
63e03ff
v0.65.1
Andrey Nering created
0f3a6cd
ci: remove snapcraft token
See: https://github.com/charmbracelet/meta/commit/86917ec06aa42153f5e48cb2570dfc5efd1e389d
Andrey Nering created
77d86b8
v0.65.0
Andrey Nering created
ce314b8
feat(ui): add hypercredit readout to small top header
Christian Rocha created
d5b5a9e
chore(ui): hypercrush small type treatment
Christian Rocha created
a93277f
chore(legal): @pragneshbagary has signed the CLA
Charm created
0a9d0b0
chore(legal): @mkaaad has signed the CLA
Charm created
bae9299
chore(legal): @SAY-5 has signed the CLA
Charm created
98f9a17
chore: auto-update files
Charm created
a14feb3
feat: launch hyper beta (#2768)
No need to set `HYPERCRUSH=1` anymore.
Andrey Nering created
6ce4fbc
feat(hyper): show remaining hypercredits in the sidebar (#2766)
Andrey Nering created
5d8f924
test: re-record test fixtures
Andrey Nering created