Skip to content

feat: add claude-fable-5 and claude-fable-5-1 - #35

Merged
sophie-ant merged 1 commit into
mainfrom
sdownward/fable-models
Sep 9, 2026
Merged

sophie-ant merged 1 commit into
mainfrom
sdownward/fable-models

Conversation

@sophie-ant

@sophie-ant sophie-ant commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the compiled-in constants .fable5 (claude-fable-5) and .fable5_1 (claude-fable-5-1).

Both take the same request surface as .opus5: every effort level (low through max), adaptive thinking, structured output and image input, with sampling parameters rejected. claude-fable-5-1 additionally rejects forced tool use (tool_choice of type any or tool); a .required tool-calling mode is a contract rather than a hint, so the bridge still sends it as-is and the API error names the field. The capability matrix comment says so.

These are the models that server-side fallbacks (#32) exist for: they decline requests in certain policy areas, and claude-opus-5 and claude-opus-4-8 are their permitted fallback targets.

Test plan

Live requests in the shapes these constants produce all return 200 on both models: adaptive thinking with summarized display, each of the five effort levels, a json_schema output format (the response conforms), and an image content block. Both models reject temperature with a 400, matching samplingParams: false. tool_choice: {"type": "any"} returns 200 on claude-fable-5 and 400 on claude-fable-5-1.

Through LanguageModelSession, both constants answered at effort max, honored a @Generable schema, and streamed reasoning entries.

The full test suite at 7313964, via xcodebuild on macOS 26.6 with Xcode 27.0 beta 6 (27A5252f) and the iOS 27.0 simulator: ** TEST SUCCEEDED **, 243 tests, 240 passed, 0 failed, 3 skipped. The 3 skips are the keychain-backed AppAttestStoreTests, which skip by design under this runner.

Add the compiled-in constants `.fable5` and `.fable5_1`. Both take the
same request surface as `.opus5`: every effort level (`low` through
`max`), adaptive thinking, structured output and image input, with
sampling parameters rejected. The capability matrix comment now groups
them with Opus 5.

`claude-fable-5-1` additionally rejects forced tool use (`tool_choice`
of type `any` or `tool`). The bridge treats a `.required` tool-calling
mode as a contract rather than a hint, so it is still sent as-is and
the API error names the field; the comment says so.
@sophie-ant
sophie-ant merged commit 91a3e04 into main Sep 9, 2026
1 check passed
@sophie-ant
sophie-ant deleted the sdownward/fable-models branch September 9, 2026 17:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants