Skip to content

Conversation

@toyamarinyon
Copy link
Contributor

@toyamarinyon toyamarinyon commented Dec 8, 2025

User description

Summary

Backports the latest Anthropic model, Claude Opus 4.5, from language-model-registry to language-model, enabling its use in classic text-generation nodes and the UI.

Related Issue

Referenced #2391 for context on adding Anthropic models.

Changes

  • packages/language-model: Defined claude-opus-4.5 model, pricing, and parsing logic, including fallbacks for various aliases.
  • packages/node-registry: Updated model conversion helpers and added tests to correctly map claude-opus-4.5 between node formats without downgrading.
  • internal-packages/workflow-designer-ui: Added claude-opus-4.5 to the recommended Anthropic model list for pro users in the UI.

Testing

  • New and existing unit tests for model parsing and node conversion (including round-tripping) pass.
  • Local pnpm install, pnpm format, pnpm build-sdk, pnpm check-types, pnpm tidy, and pnpm test commands all succeeded.

Other Information

This implementation focuses on the minimal changes required to integrate the new model, avoiding deeper structural or design changes as per the task instructions.


Open in Cursor Open in Web


PR Type

Enhancement


Description

  • Add Claude Opus 4.5 model support across language model packages

  • Implement model ID parsing with fallback logic for various aliases

  • Update pricing information for Claude Opus 4.5 model

  • Add comprehensive unit tests for model conversion and round-trip validation

  • Include Claude Opus 4.5 in UI toolbar for pro users


Diagram Walkthrough

flowchart LR
  A["Claude Opus 4.5<br/>Model Definition"] -->|"Pricing & Config"| B["Language Model<br/>Registry"]
  B -->|"Model Conversion"| C["Node Registry<br/>Conversion Logic"]
  C -->|"UI Integration"| D["Workflow Designer<br/>Toolbar"]
  E["Model ID Parsing<br/>with Fallbacks"] -->|"Validates"| B
  F["Unit Tests"] -->|"Verify"| C
Loading

File Walkthrough

Relevant files
Enhancement
anthropic.ts
Add Claude Opus 4.5 model definition and parsing                 

packages/language-model/src/anthropic.ts

  • Added claude-opus-4.5 to the enum of supported Anthropic model IDs
  • Implemented fallback parsing logic for multiple model ID aliases
    (claude-opus-4-5-*, claude-4-5-opus-*, claude-4.5-opus-*)
  • Created claude45Opus model definition with TextGeneration, Reasoning,
    and file input capabilities
  • Updated models export array to include the new Claude Opus 4.5 model
+25/-1   
toolbar.tsx
Add Claude Opus 4.5 to UI toolbar                                               

internal-packages/workflow-designer-ui/src/editor/tool/toolbar/toolbar.tsx

  • Added claude-opus-4.5 to the list of available Anthropic models for
    pro users
  • Positioned between Sonnet and Opus 4.1 models in the toolbar
  • Maintains separate model lists for free and pro tier users
+5/-1     
Tests
anthropic.test.ts
Add model ID parsing tests for Claude Opus 4.5                     

packages/language-model/src/anthropic.test.ts

  • Added test case for parsing valid claude-opus-4.5 enum value
  • Added three new fallback parsing test cases for various Claude Opus
    4.5 alias formats
  • Tests verify correct fallback behavior for claude-opus-4-5-*,
    claude-4-5-opus-*, and claude-4.5-opus-* patterns
+21/-0   
nodes.ts
Add Claude Opus 4.5 test fixture node                                       

packages/node-registry/src/fixtures/node-conversion/nodes.ts

  • Created anthropicClaudeOpus45 fixture node with Claude Opus 4.5 model
    configuration
  • Configured with TextGeneration type, reasoning enabled, and sample
    prompt
  • Includes proper LLM provider and model ID settings for testing
+28/-0   
node-conversion.test.ts
Add Claude Opus 4.5 node conversion tests                               

packages/node-registry/src/node-conversion.test.ts

  • Added import for anthropicClaudeOpus45 fixture
  • Added test case for converting Claude Opus 4.5 from TextGeneration to
    ContentGeneration format
  • Added test case for converting Claude Opus 4.5 back from
    ContentGeneration to TextGeneration format
  • Added round-trip conversion test to verify data preservation through
    bidirectional conversion
+38/-0   
Configuration changes
model-prices.ts
Add Claude Opus 4.5 pricing information                                   

packages/language-model/src/costs/model-prices.ts

  • Added pricing configuration for claude-opus-4.5 model
  • Set input cost at 5.0 per mega token and output cost at 25.0 per mega
    token
  • Pricing valid from March 31, 2025
+15/-0   
Bug fix
node-conversion.ts
Fix Claude Opus 4.5 model conversion mapping                         

packages/node-registry/src/node-conversion.ts

  • Added case for claude-opus-4.5 in TextGeneration to ContentGeneration
    conversion mapping
  • Fixed conversion logic to return claude-opus-4.5 instead of
    downgrading to claude-opus-4-1-20250805
  • Ensures proper round-trip conversion without model downgrading
+3/-2     

Summary by CodeRabbit

  • New Features

    • Claude Opus 4.5 is available in pro-tier workflows with text generation, reasoning, and PDF/image file input support.
    • Pricing for Claude Opus 4.5 has been added.
  • Tests

    • Added parsing/fallback tests and conversion/round‑trip tests covering Claude Opus 4.5.
  • Chores

    • Updated sample fixture and node conversion mappings to include Claude Opus 4.5.

✏️ Tip: You can customize this high-level summary in your review settings.


Note

Adds Anthropic claude-opus-4.5 across model registry, pricing, node conversions, and UI, with robust ID parsing and tests.

  • Language Model
    • Add claude-opus-4.5 to AnthropicLanguageModelId with alias fallbacks and defaulting.
    • Define model entry (capabilities, tier) and include in exported models.
    • Add pricing for claude-opus-4.5 in packages/language-model/src/costs/model-prices.ts.
  • Node Registry
    • Map claude-opus-4.5 in both conversion directions without downgrading; add fixture node.
  • UI
    • Surface claude-opus-4.5 in pro-tier Anthropic recommendations in internal-packages/workflow-designer-ui/src/editor/tool/toolbar/toolbar.tsx.
  • Tests
    • Extend parsing tests for AnthropicLanguageModelId fallbacks.
    • Add conversion and round-trip tests for claude-opus-4.5.

Written by Cursor Bugbot for commit d51a467. This will update automatically on new commits. Configure here.

This commit introduces support for the Anthropic Claude Opus 4.5 model, including its integration into the language model registry, toolbar, and node conversion utilities. It also adds necessary fallback logic for model ID parsing and updates pricing information.

Co-authored-by: satoshi.toyama <[email protected]>
@cursor
Copy link

cursor bot commented Dec 8, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@changeset-bot
Copy link

changeset-bot bot commented Dec 8, 2025

⚠️ No Changeset found

Latest commit: d51a467

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

💥 An error occurred when fetching the changed packages and changesets in this PR
Some errors occurred when validating the changesets config:
The package or glob expression "giselles-ai" is specified in the `ignore` option but it is not found in the project. You may have misspelled the package name or provided an invalid glob expression. Note that glob expressions must be defined according to https://www.npmjs.com/package/micromatch.

@giselles-ai
Copy link

giselles-ai bot commented Dec 8, 2025

Finished running flow.

Step 1
🟢
On Pull Request OpenedStatus: Success Updated: Dec 8, 2025 1:30pm
Step 2
🟢
Manual QAStatus: Success Updated: Dec 8, 2025 1:32pm
🟢
Prompt for AI AgentsStatus: Success Updated: Dec 8, 2025 1:32pm
Step 3
🟢
Create a Comment for PRStatus: Success Updated: Dec 8, 2025 1:34pm
Step 4
🟢
Create Pull Request CommentStatus: Success Updated: Dec 8, 2025 1:34pm

@vercel
Copy link

vercel bot commented Dec 8, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
giselle Ready Ready Preview Comment Dec 8, 2025 3:49pm
ui Ready Ready Preview Comment Dec 8, 2025 3:49pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 8, 2025

Walkthrough

Adds support for Anthropic Claude Opus 4.5: model definition, pricing, parsing/fallback handling, UI inclusion in the toolbar for non-free users, node registry mappings and fixtures, and tests covering parsing and node-conversion round-trips.

Changes

Cohort / File(s) Summary
Model Definition & Configuration
packages/language-model/src/anthropic.ts, packages/language-model/src/anthropic.test.ts, packages/language-model/src/costs/model-prices.ts
Adds claude-opus-4.5 to the AnthropicLanguageModelId enum and parsing fallbacks, adds public model claude45Opus with TextGeneration, Reasoning, PdfFileInput, ImageFileInput capabilities at pro tier, adds pricing entry for claude-opus-4.5 (input: 5.0, output: 25.0 per megatoken, validFrom 2025-11-25T00:00:00Z), and introduces tests for direct and fallback parsing to claude-opus-4.5 plus default mapping cases.
UI Integration
internal-packages/workflow-designer-ui/src/editor/tool/toolbar/toolbar.tsx
Extends the Anthropic models list shown to non-free-tier users to include "claude-opus-4.5" alongside existing Anthropic models.
Node Registry & Conversion
packages/node-registry/src/__fixtures__/node-conversion/nodes.ts, packages/node-registry/src/node-conversion.ts, packages/node-registry/src/node-conversion.test.ts
Adds anthropicClaudeOpus45 fixture and test cases for TextGeneration ↔ ContentGeneration conversions and round-trips for Opus 4.5; updates conversion mapping so "claude-opus-4.5""anthropic/claude-opus-4.5" and adjusts googleGemini fixture outputs (changed first output id and added a Source output).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Attention areas:
    • Verify the new regex parsing branches for claude-opus-4.5 handle intended variants and do not overlap unintended patterns.
    • Confirm pricing entry fields and validFrom timestamp are correct and consistent with other entries.
    • Ensure node-conversion mappings are symmetric and existing conversions (e.g., opus 4-1) remain unaffected.
    • Review updated tests for adequate coverage and any brittle assumptions about model ordering.

Poem

🐰 A new model hops into sight,
Opus 4.5, wiggle-wiggle—delight!
Tests snug in burrows, pricing in place,
Toolbar opens, nodes fall in place.
Hooray, little rabbit, for this fresh embrace.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Backport anthropic models' is vague and overly generic. It doesn't clearly specify which model(s) are being added or highlight the primary change (adding Claude Opus 4.5 support). Consider a more specific title like 'Add Claude Opus 4.5 model support' or 'Backport Claude Opus 4.5 from language-model-registry' to better communicate the specific change.
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description comprehensively covers all required template sections (Summary, Related Issue, Changes, Testing, Other Information) with detailed information about the implementation.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch cursor/backport-anthropic-models-gpt-5.1-codex-high-7a35

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 05ea76d and d51a467.

📒 Files selected for processing (1)
  • packages/language-model/src/costs/model-prices.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/language-model/src/costs/model-prices.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: codeql / languages (javascript) / Perform CodeQL for javascript
  • GitHub Check: Cursor Bugbot
  • GitHub Check: check

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@giselles-ai

This comment was marked as outdated.

@toyamarinyon toyamarinyon marked this pull request as ready for review December 8, 2025 13:36
@toyamarinyon toyamarinyon requested a review from shige as a code owner December 8, 2025 13:37
Copilot AI review requested due to automatic review settings December 8, 2025 13:37
@giselles-ai
Copy link

giselles-ai bot commented Dec 8, 2025

Finished running flow.

Step 1
🟢
On Pull Request Ready for ReviewStatus: Success Updated: Dec 8, 2025 1:37pm
Step 2
🟢
Manual QAStatus: Success Updated: Dec 8, 2025 1:39pm
🟢
Prompt for AI AgentsStatus: Success Updated: Dec 8, 2025 1:39pm
Step 3
🟢
Create a Comment for PRStatus: Success Updated: Dec 8, 2025 1:40pm
Step 4
🟢
Create Pull Request CommentStatus: Success Updated: Dec 8, 2025 1:40pm

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR backports Claude Opus 4.5 from the language-model-registry to the language-model package, enabling its use in classic text-generation nodes and the UI. The key changes include adding the model definition with pricing, implementing fallback parsing logic for various model name aliases, and updating the UI to display it as a recommended option for pro users.

Key Changes:

  • Added claude-opus-4.5 model definition with capabilities, tier restrictions, and pricing ($5/$25 per mega-token for input/output)
  • Implemented bidirectional conversion between text-generation and content-generation node formats to prevent model downgrading
  • Updated UI to include the new model in the recommended Anthropic models list for pro users

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/language-model/src/anthropic.ts Added model definition, fallback regex patterns for aliases, and exported the model in the models array
packages/language-model/src/costs/model-prices.ts Defined pricing structure with effective date of March 31, 2025
packages/language-model/src/anthropic.test.ts Added test cases for parsing the new model ID and its various alias patterns
packages/node-registry/src/node-conversion.ts Updated conversion helpers to correctly map claude-opus-4.5 bidirectionally without downgrading
packages/node-registry/src/node-conversion.test.ts Added test cases for model conversion and round-trip preservation
packages/node-registry/src/__fixtures__/node-conversion/nodes.ts Created fixture data for the new model with sample configuration
internal-packages/workflow-designer-ui/src/editor/tool/toolbar/toolbar.tsx Added the model to the recommended list for pro users in the UI

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@qodo-free-for-open-source-projects
Copy link

qodo-free-for-open-source-projects bot commented Dec 8, 2025

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-free-for-open-source-projects
Copy link

qodo-free-for-open-source-projects bot commented Dec 8, 2025

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Centralize model definitions to simplify maintenance

The current method of adding a new model involves modifying numerous files
across various packages. To improve maintainability and reduce errors, it's
suggested to consolidate all model-related configurations into a single,
centralized registry.

Examples:

packages/language-model/src/anthropic.ts [23-135]
		"claude-opus-4.5",
		"claude-opus-4-1-20250805",
		"claude-sonnet-4-5-20250929",
		"claude-haiku-4-5-20251001",
	])
	.catch((ctx) => {
		if (typeof ctx.value !== "string") {
			return "claude-haiku-4-5-20251001";
		}
		const v = ctx.value;

 ... (clipped 103 lines)
packages/node-registry/src/node-conversion.ts [22-65]
		case "claude-opus-4.5":
			return "anthropic/claude-opus-4.5";
		case "claude-opus-4-1-20250805":
			return "anthropic/claude-opus-4.1";
		case "claude-sonnet-4-5-20250929":
			return "anthropic/claude-sonnet-4-5";
		case "gemini-2.5-flash":
			return "google/gemini-2.5-flash";
		case "gemini-2.5-flash-lite":
			return "google/gemini-2.5-flash-lite";

 ... (clipped 34 lines)

Solution Walkthrough:

Before:

// packages/language-model/src/anthropic.ts
export const AnthropicLanguageModelId = z.enum([...]); // Add new model ID
const newModel = { ... }; // Define new model object
export const models = [newModel, ...]; // Add to export list

// packages/language-model/src/costs/model-prices.ts
export const anthropicTokenPricing: ModelPriceTable = {
  "new-model-id": { prices: [...] }, // Add pricing
  ...
};

// packages/node-registry/src/node-conversion.ts
function convertTextGenerationLanguageModelIdToContentGenerationLanguageModelId(...) {
  switch (from) { /* Add case for new model */ }
}
function convertContentGenerationLanguageModelIdToTextGenerationLanguageModelId(...) {
  switch (from) { /* Add case for new model */ }
}

// internal-packages/workflow-designer-ui/src/editor/tool/toolbar/toolbar.tsx
const anthropicModels = getAvailableModels(
  isFreeUser ? [...] : ["...", "new-model-id"], // Add to UI list
  ...
);

After:

// packages/model-registry/src/registry.ts (hypothetical)
export const MODELS = {
  "claude-opus-4.5": {
    provider: "anthropic",
    tier: "pro",
    ui: { recommended: true },
    pricing: { input: 5.0, output: 25.0, /* ... */ },
    capabilities: [Capability.TextGeneration, /* ... */],
    ids: {
      legacy: "claude-opus-4.5",
      contentGen: "anthropic/claude-opus-4.5",
    },
    aliases: [/^claude-opus-4[.-]5(?:-.+)?$/, /^claude-4[.-]5-opus-/],
  },
  // ... other models
};

// Other files would then consume this registry dynamically,
// eliminating the need for manual updates in multiple places.
// e.g., UI code:
const proModels = Object.values(MODELS).filter(m => m.provider === 'anthropic' && m.tier === 'pro');
Suggestion importance[1-10]: 8

__

Why: This is a significant architectural suggestion that correctly identifies a maintainability issue, as adding a new model requires modifying multiple, scattered files, which is error-prone.

Medium
General
Refine regex for stricter model fallback

Refine the regular expression for model ID fallback to be stricter. Change the
regex to require a suffix, ensuring it only matches aliases and not the
canonical model ID, which prevents masking potential configuration errors.

packages/language-model/src/anthropic.ts [33-35]

-		if (/^claude-opus-4[.-]5(?:-.+)?$/.test(v)) {
+		if (/^claude-opus-4[.-]5-/.test(v)) {
 			return "claude-opus-4.5";
 		}
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion correctly points out that the regex is too permissive and could mask a configuration error. Tightening the regex improves the code's robustness and makes the validation logic more explicit.

Low
  • Update

@giselles-ai
Copy link

giselles-ai bot commented Dec 8, 2025

🔍 QA Testing Assistant by Giselle

📋 Manual QA Checklist

Based on the changes in this PR, here are the key areas to test manually:

  • Verify Model Availability (Pro User): Log in as a "pro" user, create a new workflow, add a "Text Generation" node, and confirm claude-opus-4.5 is listed in the model selection dropdown.
  • Verify Model Absence (Free User): Log in as a "free" user, create a new workflow, add a "Text Generation" node, and confirm claude-opus-4.5 is not listed in the model selection dropdown.
  • Execute Generation with New Model: Using a "pro" user, select claude-opus-4.5 in a "Text Generation" node, provide a prompt, and verify successful execution with expected output.
  • Verify Save and Reload Persistence: Create a workflow with claude-opus-4.5 selected, save it, close and re-open the workflow, and confirm claude-opus-4.5 remains the selected model.
  • Verify Cost Calculation (if applicable): If cost estimation is available, run a generation with claude-opus-4.5 and check that the cost reflects the new pricing schema ($5/M input, $25/M output).

✨ Prompt for AI Agents

Use the following prompts with Cursor or Claude Code to automate E2E testing:

📝 E2E Test Generation Prompt
You are an expert QA engineer tasked with writing E2E tests using Playwright and TypeScript for a new feature adding the `claude-opus-4.5` Anthropic model.

**Context:**
This PR integrates the `claude-opus-4.5` model into the application's workflow designer. It should be available to "pro" users in "Text Generation" nodes but hidden from "free" users. The model selection must persist after saving and reloading workflows.

**Test Scenarios to Implement:**

1.  **Pro User Model Visibility and Selection:**
    *   Log in as a "pro" user.
    *   Create a new workflow.
    *   Add a "Text Generation" node.
    *   Open the node's settings.
    *   Assert that "Claude Opus 4.5" is visible in the model dropdown.
    *   Select "Claude Opus 4.5".
    *   Assert that the dropdown now displays "Claude Opus 4.5".

2.  **Model Selection Persistence:**
    *   Log in as a "pro" user.
    *   Create a workflow with a "Text Generation" node, selecting "Claude Opus 4.5".
    *   Save the workflow.
    *   Reload the page.
    *   Re-open the workflow.
    *   Select the "Text Generation" node and assert that "Claude Opus 4.5" is still the selected model.

3.  **Free User Model Invisibility:**
    *   Log in as a "free" user.
    *   Create a new workflow.
    *   Add a "Text Generation" node.
    *   Open the node's settings.
    *   Assert that "Claude Opus 4.5" is **not visible** in the model dropdown.

**Implementation Details:**
*   Use `data-testid` attributes for selectors (e.g., `llm-selector-trigger`, `model-option-claude-opus-4.5`).
*   Utilize helper functions like `loginAs(page, 'pro')` and `createNewWorkflow(page)`.
*   Employ `expect` assertions for visibility (`toBeVisible`, `not.toBeVisible`) and text content (`toHaveText`).
*   Structure tests within a `test.describe('Anthropic Model: Claude Opus 4.5', ...)` block.
*   Ensure each test is independent and sets up its own state using `test.beforeEach` if necessary.
*   Target test file: `e2e/tests/workflow-designer/anthropic-models.spec.ts`.

**MCP Integration:**
Tests should be runnable via `mcp playwright:test --test-file=e2e/tests/workflow-designer/anthropic-models.spec.ts`.

Copy link
Member

@shige shige left a comment

Choose a reason for hiding this comment

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

Thank you! 🆕

prices: [
{
validFrom: "2025-03-31T00:00:00Z",
price: {
Copy link
Member

Choose a reason for hiding this comment

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

"claude-opus-4.5": {
prices: [
{
validFrom: "2025-11-25T00:00:00Z",
Copy link

Choose a reason for hiding this comment

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

Bug: Incorrect pricing valid date for Claude Opus 4.5

The validFrom date for claude-opus-4.5 pricing is set to "2025-11-25T00:00:00Z" (November 25, 2025), but Claude Opus 4.5 was officially released on November 24, 2025 according to Anthropic's announcement. This off-by-one date discrepancy could cause pricing lookups to fail for usage on the release day, since getValidPricing filters by new Date(price.validFrom) <= now.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants