| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
…ing the event Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Action required: PR inactive for 5 days. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Fixes #3624
Problem
When Claude Fable's safety classifiers decline a request, the Anthropic API returns HTTP 200 with stop_reason: "refusal" in the message_delta SSE event. Forge's StopReason enum didn't know that variant, so:
repeated until max retry attempts were exhausted.
Fix
Intentional behavior change beyond the reported bug
Because the check lives in the provider-agnostic aggregator, content-filter finishes from Google (SAFETY/RECITATION), Bedrock (ContentFiltered), and OpenAI-compatible (content_filter) providers now also end the turn with the clear error. Previously they re-entered the orchestrator loop (the turn only completes on Stop), appending an empty assistant message and re-requesting. In the mid-stream case the partial output (already streamed to the UI) is no longer persisted to conversation context — per Anthropic's guidance, partial output before a refusal should be discarded. Happy to gate this to empty completions only if maintainers prefer the narrower change.
Out of scope / possible follow-ups
Testing
🤖 Generated with Claude Code