Skip to content

feat(models): deactivate Nebius by 2025-11-03 with deactivatedAt - #1061

Closed
steebchen wants to merge 2 commits into
mainfrom
terragon/deactivate-nebius-models-nov2025-krwyos
Closed

steebchen wants to merge 2 commits into
mainfrom
terragon/deactivate-nebius-models-nov2025-krwyos

Conversation

@steebchen

@steebchen steebchen commented Oct 24, 2025

Copy link
Copy Markdown
Member

Summary

  • Adds deactivatedAt metadata to Nebius-backed models to deactivate Nebius on or after 2025-11-03
  • Includes a backup copy of the previous DeepSeek config (deepseek.ts.bak) for safety

Changes

  • Updated Nebius provider entries to include deactivatedAt: new Date("2025-11-03") across the following model files:
    • packages/models/src/models/alibaba.ts
    • packages/models/src/models/deepseek.ts
    • packages/models/src/models/google.ts
    • packages/models/src/models/meta.ts
    • packages/models/src/models/moonshot.ts
    • packages/models/src/models/nousresearch.ts
  • Added new backup file:
    • packages/models/src/models/deepseek.ts.bak (backup of previous DeepSeek config)
  • Note: deepseek-r1-distill-llama-70b includes deactivatedAt: new Date("2025-10-09"), reflecting earlier deactivation data in that entry.

Rationale

  • This work enables automatic gating of Nebius models by date, allowing the system to fall back to alternative providers when Nebius is deactivated starting 2025-11-03. The deactivatedAt field is used to signal decommission timing without changing runtime behavior beyond provider selection.

Testing plan

  • Build and run TS compile to ensure type checks pass with new deactivatedAt fields
  • Verify all Nebius-backed provider entries include deactivatedAt with 2025-11-03
  • Confirm deepseek.ts.bak is present and preserved
  • For the model with 2025-10-09 (deepseek-r1-distill-llama-70b), verify its deactivation date alignment
  • If applicable, run any existing gating tests or simulations that rely on deactivatedAt to ensure Nebius models are excluded after the date

How to verify locally

  • Search for deactivatedAt in model definitions and confirm values:
    • grep -R "deactivatedAt" packages/models/src/models
  • Open a sample Nebius-backed model entry in one of the edited files and confirm the field is present with 2025-11-03

Impact

  • Metadata-only change affecting provider selection logic. No external API changes. Ensure gating logic consumes deactivatedAt as intended.

🌿 Generated by Terry


ℹ️ Tag @terragon-labs to ask questions and address PR feedback

📎 Task: https://www.terragonlabs.com/task/8eac6103-91b2-4dcf-a8b5-1a11fd4457cf

Summary by CodeRabbit

  • Chores
    • Marked specific model instances across multiple AI providers as deactivated effective November 3, 2025, affecting models from Alibaba, DeepSeek, Google, Meta, Moonshot, and Nous Research.

Added a deactivatedAt property with date "2025-11-03" to several models across alibaba, deepseek, google, meta, moonshot, and nousresearch packages to indicate planned deactivation dates.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
@bunnyshell

bunnyshell Bot commented Oct 24, 2025

Copy link
Copy Markdown

❌ Preview Environment deleted from Bunnyshell

Available commands (reply to this comment):

  • 🚀 /bns:deploy to deploy the environment

@github-actions github-actions Bot changed the title Deactivate Nebius models effective Nov 3, 2025 feat(models): deactivate Nebius by 2025-11-03 with deactivatedAt Oct 24, 2025
@coderabbitai

coderabbitai Bot commented Oct 24, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

The PR adds a deactivatedAt timestamp field (set to November 3, 2025) to provider entries across multiple AI model definition files. Changes mark various model providers, primarily on Nebius, as deactivated after this date.

Changes

Cohort / File(s) Summary
Nebius provider deactivations
packages/models/src/models/deepseek.ts, packages/models/src/models/meta.ts, packages/models/src/models/moonshot.ts, packages/models/src/models/nousresearch.ts
Added deactivatedAt: new Date("2025-11-03") field to Nebius provider entries across multiple models (deepseek-v3, deepseek-r1-0528, llama models, moonshot, Hermes-3)
Other provider deactivations
packages/models/src/models/alibaba.ts, packages/models/src/models/google.ts
Added deactivatedAt: new Date("2025-11-03") to provider entries in Alibaba models and Google's gemma-3-27b-it model
Backup/reference file
packages/models/src/models/deepseek.ts.bak
New backup file containing complete DeepSeek model definitions with metadata, providers, pricing, and contextual information

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

The changes are homogeneous and repetitive—consistently adding the same deactivatedAt field with an identical timestamp across multiple files with no logic modifications or structural changes.

Possibly related PRs

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
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.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "feat(models): deactivate Nebius by 2025-11-03 with deactivatedAt" is directly aligned with the main objective of the changeset. The changes across all modified files consistently add deactivatedAt fields (set to 2025-11-03) to Nebius-backed provider entries, and the title accurately captures this primary change. The title is specific and clear—it identifies the provider being affected (Nebius), the effective date (2025-11-03), and the implementation mechanism (deactivatedAt field)—without being vague or including extraneous noise like file lists or emojis.
✨ 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 terragon/deactivate-nebius-models-nov2025-krwyos

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.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/models/src/models/alibaba.ts (1)

187-200: Critical: Type definition missing for deactivatedAt field.

The ProviderModelMapping interface does not include the deactivatedAt field, causing TypeScript compilation errors throughout this file. Add the following property to the interface definition in packages/models/src/models.ts:

/**
 * Date when this provider/model combination is deactivated
 */
deactivatedAt?: Date;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 723a6b0 and ac047d7.

📒 Files selected for processing (7)
  • packages/models/src/models/alibaba.ts (15 hunks)
  • packages/models/src/models/deepseek.ts (2 hunks)
  • packages/models/src/models/deepseek.ts.bak (1 hunks)
  • packages/models/src/models/google.ts (1 hunks)
  • packages/models/src/models/meta.ts (4 hunks)
  • packages/models/src/models/moonshot.ts (1 hunks)
  • packages/models/src/models/nousresearch.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{ts,tsx,js,jsx}

📄 CodeRabbit inference engine (AGENTS.md)

Always use top-level import; never use require() or dynamic import()

Files:

  • packages/models/src/models/nousresearch.ts
  • packages/models/src/models/moonshot.ts
  • packages/models/src/models/google.ts
  • packages/models/src/models/meta.ts
  • packages/models/src/models/alibaba.ts
  • packages/models/src/models/deepseek.ts
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Never use any or as any in this TypeScript project unless absolutely necessary
Always use top-level import; do not use require or dynamic import()

Files:

  • packages/models/src/models/nousresearch.ts
  • packages/models/src/models/moonshot.ts
  • packages/models/src/models/google.ts
  • packages/models/src/models/meta.ts
  • packages/models/src/models/alibaba.ts
  • packages/models/src/models/deepseek.ts
🪛 GitHub Actions: ci
packages/models/src/models/alibaba.ts

[error] 199-199: TypeScript error TS2353: Object literal may only specify known properties, and 'deactivatedAt' does not exist in type 'ProviderModelMapping'.

🪛 GitHub Actions: e2e
packages/models/src/models/alibaba.ts

[error] 199-199: TypeScript error: Object literal may only specify known properties, and 'deactivatedAt' does not exist in type 'ProviderModelMapping'. (During build: tsc && resolve-tspaths)

🔇 Additional comments (6)
packages/models/src/models/deepseek.ts (2)

23-35: LGTM! Nebius provider deactivation metadata added correctly.

The deactivatedAt field is properly set to November 3, 2025 for the Nebius provider entry, consistent with the PR objective.


107-120: LGTM! Nebius provider deactivation metadata added correctly.

The deactivatedAt field is properly set to November 3, 2025 for the Nebius provider entry.

packages/models/src/models/google.ts (1)

534-546: LGTM! Nebius provider deactivation metadata added correctly.

The deactivatedAt field is properly set to November 3, 2025 for the Nebius provider entry.

packages/models/src/models/moonshot.ts (1)

62-74: LGTM! Nebius provider deactivation metadata added correctly.

The deactivatedAt field is properly set to November 3, 2025 for the Nebius provider entry.

packages/models/src/models/nousresearch.ts (1)

11-23: LGTM! Nebius provider deactivation metadata added correctly.

The deactivatedAt field is properly set to November 3, 2025 for the Nebius provider entry. Note: This change depends on the type definition fix flagged in alibaba.ts.

packages/models/src/models/meta.ts (1)

23-35: LGTM! Nebius provider deactivation metadata added correctly across multiple models.

The deactivatedAt field is properly set to November 3, 2025 for all four Nebius provider entries:

  • llama-3.1-8b-instruct (line 34)
  • llama-3.1-nemotron-ultra-253b (line 123)
  • llama-3.3-70b-instruct (line 168)
  • llama-3.1-405b-instruct (line 191)

Note: These changes depend on the type definition fix flagged in alibaba.ts.

Also applies to: 112-124, 157-169, 180-192

Comment on lines +1 to +196
import type { ModelDefinition } from "@/models.js";

export const deepseekModels = [
{
id: "deepseek-v3",
name: "DeepSeek V3",
family: "deepseek",
deprecatedAt: undefined,
deactivatedAt: undefined,
providers: [
{
providerId: "cloudrift",
modelName: "deepseek-ai/DeepSeek-V3",
inputPrice: 0.15 / 1e6,
outputPrice: 0.4 / 1e6,
requestPrice: 0,
contextSize: 163840,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
},
{
providerId: "nebius",
modelName: "deepseek-ai/DeepSeek-V3",
inputPrice: 0.5 / 1e6,
outputPrice: 1.5 / 1e6,
requestPrice: 0,
contextSize: 64000,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
},
],
jsonOutput: false,
},
{
id: "deepseek-r1",
name: "DeepSeek R1",
family: "deepseek",
deprecatedAt: undefined,
deactivatedAt: undefined,
providers: [
{
providerId: "deepseek",
modelName: "deepseek-reasoner",
inputPrice: 0.55 / 1e6,
outputPrice: 2.19 / 1e6,
requestPrice: 0,
contextSize: 64000,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
},
{
providerId: "routeway-discount",
stability: "unstable" as const,
modelName: "deepseek-reasoner",
inputPrice: 0.55 / 1e6,
outputPrice: 2.19 / 1e6,
discount: 0.5,
requestPrice: 0,
contextSize: 64000,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
},
],
jsonOutput: false,
},
{
id: "deepseek-r1-0528",
name: "DeepSeek R1 (0528)",
family: "deepseek",
deprecatedAt: undefined,
deactivatedAt: undefined,
providers: [
{
providerId: "cloudrift",
modelName: "deepseek-ai/DeepSeek-R1-0528",
inputPrice: 0.25 / 1e6,
outputPrice: 1 / 1e6,
requestPrice: 0,
contextSize: 32770,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
stability: "unstable" as const,
},
{
providerId: "deepseek",
modelName: "deepseek-reasoner",
inputPrice: 0.55 / 1e6,
outputPrice: 2.19 / 1e6,
requestPrice: 0,
contextSize: 64000,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
},
{
providerId: "nebius",
modelName: "deepseek-ai/DeepSeek-R1-0528",
inputPrice: 0.8 / 1e6,
outputPrice: 2.4 / 1e6,
requestPrice: 0,
contextSize: 64000,
maxOutput: undefined,
streaming: true,
vision: false,
tools: false,
stability: "unstable" as const,
},
],
jsonOutput: false,
},
{
id: "deepseek-r1-distill-llama-70b",
name: "DeepSeek R1 Distill Llama 70B",
family: "deepseek",
deprecatedAt: undefined,
deactivatedAt: new Date("2025-10-09"),
stability: "beta" as const,
providers: [
{
providerId: "groq",
modelName: "deepseek-r1-distill-llama-70b",
inputPrice: 0.75 / 1e6,
outputPrice: 0.99 / 1e6,
requestPrice: 0,
contextSize: 131072,
maxOutput: undefined,
streaming: true,
vision: false,
tools: true,
},
],
jsonOutput: true,
},
{
id: "deepseek-v3.1",
name: "DeepSeek V3.1",
family: "deepseek",
deprecatedAt: undefined,
deactivatedAt: undefined,
providers: [
{
providerId: "deepseek",
modelName: "deepseek-chat",
inputPrice: 0.56 / 1e6,
outputPrice: 1.68 / 1e6,
cachedInputPrice: 0.07 / 1e6,
requestPrice: 0,
contextSize: 128000,
maxOutput: undefined,
streaming: true,
vision: true,
tools: true,
},
{
providerId: "routeway-discount",
stability: "unstable" as const,
modelName: "deepseek-chat",
inputPrice: 0.56 / 1e6,
outputPrice: 1.68 / 1e6,
cachedInputPrice: 0.07 / 1e6,
discount: 0.5,
requestPrice: 0,
contextSize: 128000,
maxOutput: undefined,
streaming: true,
vision: true,
tools: true,
},
{
providerId: "canopywave",
modelName: "deepseek/deepseek-chat-v3.1",
inputPrice: 0.27 / 1e6,
outputPrice: 1.0 / 1e6,
discount: 0.9,
requestPrice: 0,
contextSize: 128000,
maxOutput: undefined,
streaming: true,
vision: true,
tools: true,
},
],
jsonOutput: true,
},
] as const satisfies ModelDefinition[];

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.

🛠️ Refactor suggestion | 🟠 Major

Remove backup file from version control.

Backup files with .bak extensions should not be committed to the repository. Git's version history already serves as a backup mechanism. If you need to reference the previous version, you can use git diff or git show.

Remove this file:

git rm packages/models/src/models/deepseek.ts.bak

If you need to keep a backup locally during development, add *.bak to your .gitignore file.

🤖 Prompt for AI Agents
In packages/models/src/models/deepseek.ts.bak lines 1-196, a .bak backup file
has been committed; remove it from the repository and ensure future .bak files
are ignored. Run git rm packages/models/src/models/deepseek.ts.bak to remove the
file from the index (and commit that change), and add a rule like *.bak to
.gitignore (commit the .gitignore update) so backups aren’t re-added.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
@steebchen steebchen closed this Oct 25, 2025
@steebchen
steebchen deleted the terragon/deactivate-nebius-models-nov2025-krwyos branch October 25, 2025 17:12
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