Skip to content

(fix: fable) surface model refusals in the TUI instead of silently stopping work - #3453

Open
sven2718 wants to merge 1 commit into
charmbracelet:mainfrom
sven2718:fable-refusal
Open

(fix: fable) surface model refusals in the TUI instead of silently stopping work#3453
sven2718 wants to merge 1 commit into
charmbracelet:mainfrom
sven2718:fable-refusal

Conversation

@sven2718

@sven2718 sven2718 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

If I'm working in crush with fable and trigger fable's "this seems too dangerous to process" classifier, crush will just end the turn with no explanation. There's no text, no banner, no indication of why crush has stopped working on the task. It feels like a bug.

This PR adds a little banner so that in the case that the model API is explicitly telling us that it's not willing to process the request, we get a notification that this is a thing that has happened. It looks like this:

Screenshot 2026-07-29 130225

Given the way the patch is written, I believe the same banner should also show up if we were to trip openai's "dangerous content" classifier, but I've only tested it on fable's.

  • I have read CONTRIBUTING.md.
  • [ NA ] I have created a discussion that was approved by a maintainer (for new features).

Anthropic stop_reason=refusal maps to fantasy's content-filter finish
reason, but Crush had no case for it: the finish fell through to
"unknown" and the TUI rendered a silently empty turn.

Handle content-filter finishes in the agent loop with a clear title
and explanation, and render a REFUSED banner in chat so the user can
see what happened.
@sven2718 sven2718 changed the title surface Anthropic model refusals instead of silent empty stops (fix: fable) surface model refusals in the TUI instead of silently stopping work Jul 29, 2026
@sven2718

Copy link
Copy Markdown
Contributor Author

@taciturnaxolotl: poke for review?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant