Commit log

54a57fd chore(legal): @carlosgrillet has signed the CLA

Charm created

eaf1cd7 chore(ui): change wording: rewrote input to rewrote output (#2742)

Christian Rocha created

35ce257 chore(legal): @lloydzhou has signed the CLA

Charm created

c9afdb1 chore(legal): @vorticalbox has signed the CLA

Charm created

efbf6bf v0.64.0

Andrey Nering created

bc48334 chore(deps): update fantasy and catwalk

Andrey Nering created

aeb529c chore(legal): @georgeglarson has signed the CLA

Charm created

86bb805 fix(tools/job_kill): use longer job_kill desc to improve reliability (#2747)

Christian Rocha created

4d16e96 fix(app): replace single events channel with pubsub.Broker for fan-out (#2663)

Click to expand commit body
Fixes the SSE multi-consumer bug where multiple clients sharing the same
workspace received only a fraction of events (competing-consumer semantics
on a plain channel). Each caller to Events()/SubscribeEvents() now gets
its own dedicated channel via Broker.Subscribe(ctx).

💘 Generated with Crush

Assisted-by: AWS Claude Sonnet 4.6 via Crush <crush@charm.land>

Tai Groot created

c84ca2d refactor(hooks): move matcher compilation into the runner

Click to expand commit body
The runner now compiles its own matchers, so a config round-trip can't
silently strip them. Hooks with an invalid matcher are dropped with a
warning instead of quietly matching everything.

Christian Rocha created

38a846d fix(hooks): recompile matchers after config reload

Click to expand commit body
A hook with a matcher like "^bash$" was firing on every tool call
after any config write, because the compiled regex was dropped when
the config reloaded. Recompile on reload so filtering keeps working.

Christian Rocha created

b07664e chore: auto-update files

Charm created

81fbaca chore(hyper): update endpoint to new one

Andrey Nering created

cfcffd2 fix(styles): fix some regressions where colors were incorrect

Christian Rocha created

09a1120 fix(ui): notification width and text truncation

Click to expand commit body
Prior to this fix, notifications in the footer would not span the width
of the window, and text truncation would often happen prematurely.

Christian Rocha created

9c4a316 chore(ui,styles): color edits and copyedits for the oAuth view

Christian Rocha created

8ebab21 chore(styles): clean up theme definitions

Christian Rocha created

64c47cb fix(ui): restore 'update available' notification

Christian Rocha created

066fb5a fix: remove unused build (#2734)

Bruno Krugel created

2be2024 fix(hyper): re-auth at selection time to ensure provider availability

Christian Rocha created

a4488ca feat(ui): switch to hyper theme when provider hyper is chosen

Christian Rocha created

9d4653e chore(styles): use hypercrush theme when hyper is selected

Christian Rocha created

e29353f v0.63.0

Andrey Nering created

1495028 chore(deps): update fantasy and catwalk

Andrey Nering created

1948ca7 fix(ui/hooks): restore hook styling

Christian Rocha created

ead1c28 chore(deps): bump goreleaser/goreleaser-action in the all group (#2728)

dependabot[bot] created

b0b9842 chore(deps): bump the all group with 6 updates (#2729)

dependabot[bot] created

e5611c3 docs(hooks): improve hook documentation

Christian Rocha created

b9fdf72 chore(hooks,skills): update crush-hooks skill per recent changes

Christian Rocha created

3cda50f fix(ui): fix dialog box shift when session rename is active

Christian Rocha created

755f6fa chore(ui): theme prep

Christian Rocha created

f686999 chore: auto-update files

Charm created

dc003bf feat: PreToolUse hook (#2598)

Christian Rocha created

a7546ad chore(tests): regression test for (lack of) disabled skills in the ui

Christian Rocha created

7a6149d fix(ui): don't show disabled skills

Bruno Krugel created

fa13c7f v0.62.1

Andrey Nering created

8ab740f test: re-record vcr cassettes

Andrey Nering created

37daf0f chore(deps): update fantasy and catwalk

Andrey Nering created

e5d95aa fix(hyper): fix re-authorization flow not triggering on certain conditions (#2703)

Click to expand commit body
We attempt to refresh tokens in two scenarios:

* Pro-actively, when we expiration date passed before a request
* Reactively, when we try a request but a 401 was returned

The error / event handling that shows a dialog asking the user to
re-authenticate is dependent on code that runs for the second scenario.
This means that the dialog might not show on the first scenario, if
refreshing the token fails.

If refreshing a token fails, continue with the previous token. Let it
fail and the 401 will trigger a re-authorization dialog.

I caught this because I was switching between local vs. prod Hyper a lot.

Andrey Nering created

e5b5a40 Merge pull request #2692 from charmbracelet/hypercrush

Click to expand commit body
chore(styles): overhaul style definitions

Christian Rocha created

81daa26 fix(styles): use semantic names in styles + drop deadcode

Christian Rocha created

4f3a308 chore(ui): formal hypercrush type treatment

Christian Rocha created

511916a fix(ui): logo and grad arguments from earlier refactor

Christian Rocha created

7cbb1db chore(ui): use Lip Gloss for color blends

Christian Rocha created

15f20e6 chore(ui): add new letterforms: h, y, p, e, with alts

Christian Rocha created

549f717 fix(agent): implement OnRetry logging with structured retry fields (#2700)

iceymoss created

f669bd3 fix(lsp): replace sticky unavailable cache with retry backoff (#2498)

Click to expand commit body
Scope unavailable tracking to each Manager instance and retry missing server commands after a short backoff so temporary environment changes do not permanently block LSP startup.

iceymoss created

da31815 chore(deps): update catwalk

Andrey Nering created

28ab548 docs(readme): tiny updates

Andrey Nering created

31025a1 chore: auto-update files

Charm created