Skip to content

feat(anthropic): add claude-fable-5-1 to the direct Anthropic catalog - #1145

Open
1jehuang wants to merge 1 commit into
masterfrom
feat/claude-fable-5-1
Open

feat(anthropic): add claude-fable-5-1 to the direct Anthropic catalog#1145
1jehuang wants to merge 1 commit into
masterfrom
feat/claude-fable-5-1

Conversation

@1jehuang

@1jehuang 1jehuang commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Anthropic released claude-fable-5-1 on 2026-08-28. Without a catalog entry, jcode -m claude-fable-5-1 on a fresh home (no cached live catalog) fails set_model, the error is only logged (agent.rs attach path), and the session silently runs on the default claude-opus-5. Found while pinning a jcode build for the Fable 5.1 jcode-bench campaign: the v0.81.4 release ran Opus 5 when asked for Fable 5.1.

Changes:

  • ALL_CLAUDE_MODELS / AVAILABLE_MODELS: add claude-fable-5-1 after Opus 5
  • 128K max-output prefix list: explicit entry
  • Anthropic API pricing: $10/$50, $0.25 cache read (per models.dev)
  • Tests: pricing, reasoning caps ladder

Scope is deliberately the direct Anthropic route only. The hosted subscription catalog and Conifer profile are not touched since server-side support is unverified.

Verified: jcode -p anthropic-api -m claude-fable-5-1 run --ndjson on a fresh HOME now reports model: claude-fable-5-1 in start/done events at low and max effort. jcode-provider-core suite passes; jcode-base has the same 15 environment-dependent failures as untouched master.

Anthropic released claude-fable-5-1 on 2026-08-28. Without a catalog entry,
`jcode -m claude-fable-5-1` on a fresh home (no cached live catalog) failed
set_model and silently ran on the default claude-opus-5 instead. Add it to
ALL_CLAUDE_MODELS / AVAILABLE_MODELS, the 128K max-output prefix list, and
Anthropic API pricing ($10/$50, $0.25 cache read per models.dev).
@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown

Greptile Summary

This change adds claude-fable-5-1 to Anthropic’s built-in catalogs with its output limit, reasoning options, and pricing. Existing direct-Anthropic users with a saved nonempty catalog from before this model was introduced cannot select it: the saved catalog replaces the built-in list, so model selection rejects the new ID. A focused runtime test reproduced the rejection with a persisted stale snapshot and confirmed that the same model is accepted when no cached snapshot exists.

Confidence Score: 4/5

Not safe to merge as-is because existing direct-Anthropic installations can be unable to select the newly advertised model until their catalog refreshes.

The failure was reproduced through the provider’s model-selection path using an isolated persisted catalog snapshot, with a no-cache control confirming that the static entry itself works.

Files Needing Attention: Update crates/jcode-base/src/provider/models.rs so cached Anthropic catalog IDs do not mask newly added static IDs; crates/jcode-provider-anthropic-runtime/src/lib.rs consumes this list during model selection.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a proof for a posted P1 finding and linked it to the corresponding review comment.
  • T-Rex produced a second proof for another posted P1 finding.
  • T-Rex documented a validation blocker, noting that no focused executable test or script was created or executed before the session ended, and no uploaded source or execution-output artifacts are available.
  • T-Rex produced a third proof for a posted P1 finding.
  • T-Rex validated the Anthropic runtime tests, including the authored test source and the exact test commands, and observed outcomes showing that the stale-persisted path rejects claude-fable-5-1 while the no-cache path accepts it, with the provider model updated accordingly.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (2)

  1. crates/jcode-base/src/provider/models.rs, line 685-687 (link)

    P1 Cached catalog masks new models

    known_anthropic_model_ids() returns a nonempty cached catalog instead of combining it with the built-in IDs. As a result, a direct-Anthropic user whose persisted catalog predates claude-fable-5-1 cannot select the model: set_model consults the stale list and returns Model claude-fable-5-1 not supported by Anthropic provider. Merge static IDs with cached entries, or otherwise preserve newly built-in models during cached-catalog fallback.

    Artifacts

    Stale Anthropic catalog validation harness source

    • The Rust harness used to execute the stale Anthropic catalog validation flow is preserved as source evidence, with the takeaway that the tested behavior is reproducible.

    Stale Anthropic catalog behavior before change

    • This captured command output records the stale Anthropic catalog behavior before the change, with the takeaway that it provides the baseline for comparison.

    Stale Anthropic catalog behavior after change

    • This captured command output records the stale Anthropic catalog behavior after the change, with the takeaway that it demonstrates the validated result.

    View artifacts

    T-Rex Ran code and verified through T-Rex

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: crates/jcode-base/src/provider/models.rs
    Line: 685-687
    
    Comment:
    **Cached catalog masks new models**
    
    `known_anthropic_model_ids()` returns a nonempty cached catalog instead of combining it with the built-in IDs. As a result, a direct-Anthropic user whose persisted catalog predates `claude-fable-5-1` cannot select the model: `set_model` consults the stale list and returns `Model claude-fable-5-1 not supported by Anthropic provider`. Merge static IDs with cached entries, or otherwise preserve newly built-in models during cached-catalog fallback.
    
    ---
    
    For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
  2. crates/jcode-provider-anthropic-runtime/src/lib.rs, line 1307 (link)

    P1 Persisted catalog hides new static Anthropic model

    • Bug
      • Persisted catalog hides new static Anthropic model

        set_model validates against known_anthropic_model_ids(), which uses any nonempty persisted Anthropic catalog instead of merging it with the static catalog. A user whose saved direct-Anthropic snapshot predates claude-fable-5-1 therefore receives Model claude-fable-5-1 not supported by Anthropic provider when selecting the newly added model, despite the static catalog containing it. The runtime test seeded an OAuth-scoped snapshot containing only claude-opus-4-8 and observed that exact rejection; an isolated no-cache control accepted the same model.

    • Cause
      • known_anthropic_model_ids() falls back to static models only when no cached catalog exists, rather than incorporating static models when a cache is nonempty.
    • Fix
      • Merge the current static Anthropic model list with the cached catalog for selection validation, or otherwise invalidate/augment persisted snapshots when static catalog entries are added.

    T-Rex Ran code and verified through T-Rex

Prompt To Fix All With AI
### Issue 1
crates/jcode-base/src/provider/models.rs:685-687
**Cached catalog masks new models**

`known_anthropic_model_ids()` returns a nonempty cached catalog instead of combining it with the built-in IDs. As a result, a direct-Anthropic user whose persisted catalog predates `claude-fable-5-1` cannot select the model: `set_model` consults the stale list and returns `Model claude-fable-5-1 not supported by Anthropic provider`. Merge static IDs with cached entries, or otherwise preserve newly built-in models during cached-catalog fallback.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "feat(anthropic): add claude-fable-5-1 to..." | Re-trigger Greptile

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.

1 participant