The whole hunk
from line 1561, old and new numbered
/
lines
from line 1561
15611561* If your interface renders progress text between tool calls, set `thinking.display` to `"updates"` (beta) or `"summarized"` and prompt for updates.
15621562* If you change effort between requests, move the change to a [per-message effort](https://platform.claude.com/docs/en/build-with-claude/effort#change-effort-mid-conversation-beta) `role: "system"` message (beta) to keep cache hits.
15631563* Handle `stop_reason: "refusal"` and read `stop_details.category`. Consider `fallbacks: "default"` (beta).
1564* Re-evaluate `effort` with a fresh sweep, starting at `high`, and re-baseline cost and latency on your own workloads. Token counts are roughly unchanged. Prompt cache reads cost a quarter of the Claude Fable 5 rate.
1564* Re-evaluate `effort` with a fresh sweep, starting at `high`, and re-baseline cost and latency on your own workloads. The tokenizer is unchanged. Prompt cache reads cost a quarter of the Claude Fable 5 rate.
15651565
15661566## Migrating to Claude Fable 5.1 from Claude Opus 5
15671567
from line 1601
16011601* Replace forced `tool_choice` (`any` or `tool`) with `auto` plus an explicit instruction (`user` turn or mid-conversation system message) and `strict: true` tools, or with JSON outputs.
16021602* If your interface renders text between tool calls, set `display: "updates"` (beta) or `"summarized"` and render the non-empty `thinking` blocks.
16031603* Apply the preserved-thinking, history-editing, behavior, effort, and fallback items from the [Claude Fable 5 checklist](https://platform.claude.com/docs/en/models/fable-5-1/migration-guide#migration-checklist-fable-5-1-from-fable-5).
1604* Re-baseline cost on your own workloads. Token counts are roughly unchanged. Per-token pricing differs.
1604* Re-baseline cost on your own workloads. The tokenizer is unchanged. Per-token pricing differs.
16051605
16061606## Migrating to Claude Fable 5.1 from Claude Opus 4.8 or earlier
16071607