Skip to content

feat(models): add Claude Opus 5.5 - #13087

Closed
AJJPostma wants to merge 3 commits into
pingdotgg:mainfrom
AJJPostma:feat/claude-opus-5-5
Closed

AJJPostma wants to merge 3 commits into
pingdotgg:mainfrom
AJJPostma:feat/claude-opus-5-5

Conversation

@AJJPostma

@AJJPostma AJJPostma commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

What Changed

Adds Claude Opus 5.5 (claude-opus-5-5) to the model manifest. This is a JSON-only change.

  • New model entry, current, with the new badge (same as Fable 5.1 got) and minVersion: 2.1.280.
  • New opus-5-5 profile. It has the same options as opus-5 (effort up to max plus ultracode/ultrathink, fast mode, 200k/1M context), but the default effort is medium instead of high.
  • The opus alias moves from Opus 5 to Opus 5.5, and Opus 5 is now legacy. Same treatment as Opus 5 in Add Claude Opus 5 model #4472 and Fable 5.1 in feat(claude): add Claude Fable 5.1 model #9078.
  • updatedAt bumped, so existing installs pick this up through the remote manifest.

currentModels.claudeAgent is left alone because docs/internals/model-manifest.md says it's frozen.

Why

Claude Code 2.1.280 was released today with Opus 5.5, and its opus alias now points to claude-opus-5-5. Until this change, T3 Code doesn't list the model.

Everything in the entry was checked against 2.1.280:

  • claude -p --model claude-opus-5-5 works on 2.1.280. On 2.1.278 the API rejects it with claude_code_version_too_old ("version 2.1.280 or newer is required"). That is where the minVersion comes from.
  • claude-opus-5-5[1m] with --effort low|xhigh|max works, and the model reports a 1M context.
  • The model catalog bundled in 2.1.280 lists fast_mode, max_effort, xhigh_effort and native 1M for claude-opus-5-5, with default_effort: "medium". The medium default is the only difference from opus-5, and it's why this needs a new profile instead of reusing that one.

Notes:

  • Alias on older CLIs: on Claude Code below 2.1.280, opus now resolves to a model that CLI rejects. Add Claude Opus 5 model #4472 made the same trade-off when it moved opus to Opus 5, and it matches the CLI, whose own opus alias is claude-opus-5-5 from 2.1.280 on.
  • Legacy before release: because the manifest is fetched live from main, Opus 5 moves to Legacy models (still selectable) as soon as this merges.

Ran vp test run on ModelManifest.test.ts, ClaudeModelCatalog.test.ts and ClaudeAdapter.test.ts, and they pass. Formatting was checked with vp fmt --check. With provider update checks disabled, the web model picker shows Fable 5.1, Opus 5.5 (NEW) and Sonnet 5 as current, and Opus 5 under Legacy models.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes (n/a: manifest data only)
  • I included a video for animation/interaction changes (n/a)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added support for the Claude Opus 5.5 model, including convenient aliases.
    • Added configurable effort, fast mode, and context-window options, including a 1M-token context option.
    • Added support for advanced reasoning controls such as Ultracode and Ultrathink.
  • Updates

    • Claude Opus 5 is now marked as legacy.
    • The opus alias now refers to Claude Opus 5.5 instead of Claude Opus 5.

Claude Code 2.1.280 ships claude-opus-5-5 and points the `opus` alias at
it. Add it to the Claude manifest with its own profile (Opus 5 options,
medium default effort), move the `opus` alias over and mark Opus 5 as
legacy.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 22, 2026
{
"slug": "claude-opus-5-5",
"name": "Claude Opus 5.5",
"aliases": ["opus", "opus-5.5", "claude-opus-5.5"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High provider/model-manifest.json:665

The opus alias now resolves to claude-opus-5-5, so Claude Code versions below 2.1.280 fail instead of continuing to run the previously selected Opus model. Alias resolution does not apply the model's minVersion check, so persisted or explicitly configured opus selections pass an unsupported model to the old CLI; preserve a version-compatible fallback or make alias resolution compatibility-aware.

🤖 Copy this AI Prompt to have your agent fix this:
In file @apps/server/src/provider/model-manifest.json around line 665:

The `opus` alias now resolves to `claude-opus-5-5`, so Claude Code versions below `2.1.280` fail instead of continuing to run the previously selected Opus model. Alias resolution does not apply the model's `minVersion` check, so persisted or explicitly configured `opus` selections pass an unsupported model to the old CLI; preserve a version-compatible fallback or make alias resolution compatibility-aware.

@coderabbitai

coderabbitai Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 73f90e0b-2911-4f1b-88fd-8648b76a2790

📥 Commits

Reviewing files that changed from the base of the PR and between f5b436b and 4db100d.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 8ce5205b-63af-43c3-a99f-f4b4d6ce9e32

📥 Commits

Reviewing files that changed from the base of the PR and between 4b506be and f5b436b.

📒 Files selected for processing (1)
  • apps/server/src/provider/model-manifest.json

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The provider manifest adds the Opus 5.5 profile and model, marks Opus 5 as legacy, and updates the manifest timestamp.

Changes

Opus model manifest

Layer / File(s) Summary
Opus 5.5 provider profile
apps/server/src/provider/model-manifest.json
Adds the opus-5-5 profile with effort, fastMode, context window, and Claude Code adapter options.
Opus model entries
apps/server/src/provider/model-manifest.json
Adds the claude-opus-5-5 model, marks claude-opus-5 as legacy, and updates the manifest timestamp.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to f5b43

This adds Opus 5.5 support and updates the default Opus alias without an identified production-impacting issue. It is ready to merge after normal checks.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely identifies the main change: adding Claude Opus 5.5 models.
Description check ✅ Passed The description explains what changed, why it changed, compatibility details, testing, formatting checks, and checklist status. It appropriately identifies the change as JSON-only and treats UI eviden…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@macroscopeapp

macroscopeapp Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — The manifest adds a user-facing model and repoints the existing opus alias, changing behavior for existing selections rather than adding only an opt-in path. The alias also targets a Claude Code version-gated model, creating compatibility risk for older installations.

Not approved because:

  • 1 blocking correctness issue found at or above your repo's Minimum Blocking Severity

Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more.

@t3-code

t3-code Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

thanks @AJJPostma for the opus 5.5 manifest and the cli compatibility checks. at @extoci’s request, this is being superseded by #13094, which uses your profile while keeping the existing opus alias on opus 5 so older cli installations keep working. you are credited as a co-author there. the replacement passes its test jobs and correctness review, but still needs human review and an unrelated main-branch typecheck fix before merge.

@t3-code t3-code Bot closed this Sep 22, 2026
jakeleventhal pushed a commit to jakeleventhal/t3code that referenced this pull request Sep 22, 2026
Based on the model profile and compatibility investigation in pingdotgg#13087.

Co-authored-by: Anco <anco@bluebarry.ai>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant