Add Claude Fable 5 model#3009
Conversation
Co-authored-by: codex <codex@users.noreply.github.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
🚀 Expo continuous deployment is ready!
|
- Define Fable 5 reasoning and context window options - Add fast mode to Opus 4.7 and 4.8 models
ApprovabilityVerdict: Approved Straightforward addition of a new model to the provider registry following existing patterns exactly, with comprehensive tests. The refactoring inlines a shared constant but values remain identical. The open review comment is a minor naming question, not a correctness issue. You can customize Macroscope's approvability policy. Learn more. |
Co-authored-by: codex <codex@users.noreply.github.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Fable xhigh effort downgraded incorrectly
- Added claude-fable-5 to the exemption check in normalizeClaudeCliEffort so xhigh is no longer incorrectly downgraded to max for that model.
Or push these changes by commenting:
@cursor push 7ec07d5b83
Preview (7ec07d5b83)
diff --git a/apps/server/src/provider/Layers/ClaudeProvider.ts b/apps/server/src/provider/Layers/ClaudeProvider.ts
--- a/apps/server/src/provider/Layers/ClaudeProvider.ts
+++ b/apps/server/src/provider/Layers/ClaudeProvider.ts
@@ -334,7 +334,7 @@
if (effort === "ultracode") {
return "xhigh";
}
- if (effort === "xhigh" && model !== "claude-opus-4-8") {
+ if (effort === "xhigh" && model !== "claude-opus-4-8" && model !== "claude-fable-5") {
return "max";
}
if (effort === "max" && model === "claude-sonnet-4-6") {You can send follow-ups to the cloud agent here.
Reviewed by Cursor Bugbot for commit 648538a. Configure here.
Co-authored-by: codex <codex@users.noreply.github.com>
| const MINIMUM_CLAUDE_OPUS_4_7_VERSION = "2.1.111"; | ||
|
|
||
| const CLAUDE_EFFORT_OPTIONS = { | ||
| fable48: [ |
There was a problem hiding this comment.
Shouldn't this be fable5 (or maybe fable50)?
|
Bugbot Autofix prepared a fix for the issue found in the latest run.
Or push these changes by commenting: Preview (539a67e334)diff --git a/apps/server/src/provider/Layers/ProviderRegistry.test.ts b/apps/server/src/provider/Layers/ProviderRegistry.test.ts
--- a/apps/server/src/provider/Layers/ProviderRegistry.test.ts
+++ b/apps/server/src/provider/Layers/ProviderRegistry.test.ts
@@ -1350,15 +1350,14 @@
assert.strictEqual(status.status, "ready");
assert.strictEqual(status.installed, true);
assert.strictEqual(status.auth.status, "authenticated");
- assert.deepStrictEqual(
- status.models.find((model) => model.slug === "claude-fable-5"),
- {
- slug: "claude-fable-5",
- name: "Claude Fable 5",
- isCustom: false,
- capabilities: { optionDescriptors: [] },
- },
- );
+ const fableModel = status.models.find((model) => model.slug === "claude-fable-5");
+ assert.strictEqual(fableModel?.slug, "claude-fable-5");
+ assert.strictEqual(fableModel?.name, "Claude Fable 5");
+ assert.strictEqual(fableModel?.isCustom, false);
+ const descriptors = fableModel?.capabilities?.optionDescriptors ?? [];
+ assert.strictEqual(descriptors.length, 2);
+ assert.strictEqual(descriptors[0]?.id, "effort");
+ assert.strictEqual(descriptors[1]?.id, "contextWindow");
}).pipe(
Effect.provide(
mockSpawnerLayer((args) => {You can send follow-ups to the cloud agent here. |
Co-authored-by: codex <codex@users.noreply.github.com>
- Remove shared effort presets - Define model-specific reasoning options for Fable 5, Opus 4.6, and Sonnet 4.6


Summary
claude-fable-5to the Claude provider built-in model catalogClaude Fable 5with the provider default capabilitiesValidation
vp test apps/server/src/provider/Layers/ProviderRegistry.test.tsvp checkvp run typecheckNote
Add Claude Fable 5 model gated behind Claude Code version 2.1.169
claude-fable-5built-in model with configurable reasoning (low/medium/high/xhigh/max/ultracode/ultrathink) and context window (200k/1M) options.supportsClaudeFable5version check in ClaudeProvider.ts; the model only appears when the detected Claude Code version is >=2.1.169.formatClaudeFable5UpgradeMessagehelper and updatescheckClaudeProviderStatusto show a Fable 5-specific upgrade prompt when the version is insufficient.Fast Modeboolean capability to the existingclaude-opus-4-8andclaude-opus-4-7models.Changes since #3009 opened
normalizeClaudeCliEffortfunction to preservexhigheffort option forclaude-fable-5model [9f57633]BUILT_IN_MODELSconstant [9f57633]claude-fable-5model withxhigheffort option [9f57633]Macroscope summarized e8d43cb.
Note
Low Risk
Provider catalog and effort normalization only; no auth or data-path changes, covered by unit tests.
Overview
Adds Claude Fable 5 (
claude-fable-5) to the Claude built-in catalog with reasoning and context-window options, and only exposes it when Claude Code is ≥ 2.1.169; older installs get a Fable-specific upgrade message in provider status.Effort handling treats Fable 5 like Opus 4.8 for
xhigh(no remap tomax). SharedCLAUDE_EFFORT_OPTIONSis removed in favor of per-model descriptors; Fast Mode is added on Opus 4.8 and 4.7. Tests cover Fable 5 availability by CLI version and adapterxhighpassthrough.Reviewed by Cursor Bugbot for commit cbe8a20. Bugbot is set up for automated code reviews on this repo. Configure here.