diff --git a/packages/types/src/providers/roo.ts b/packages/types/src/providers/roo.ts index 01fae43cd5..63650ac9a1 100644 --- a/packages/types/src/providers/roo.ts +++ b/packages/types/src/providers/roo.ts @@ -2,7 +2,7 @@ import type { ModelInfo } from "../model.js" export type RooModelId = | "xai/grok-code-fast-1" - | "roo/code-supernova" + | "roo/code-supernova-1-million" | "xai/grok-4-fast" | "deepseek/deepseek-chat-v3.1" @@ -19,15 +19,15 @@ export const rooModels = { description: "A reasoning model that is blazing fast and excels at agentic coding, accessible for free through Roo Code Cloud for a limited time. (Note: the free prompts and completions are logged by xAI and used to improve the model.)", }, - "roo/code-supernova": { - maxTokens: 16_384, - contextWindow: 200_000, + "roo/code-supernova-1-million": { + maxTokens: 30_000, + contextWindow: 1_000_000, supportsImages: true, supportsPromptCache: true, inputPrice: 0, outputPrice: 0, description: - "A versatile agentic coding stealth model that supports image inputs, accessible for free through Roo Code Cloud for a limited time. (Note: the free prompts and completions are logged by the model provider and used to improve the model.)", + "A versatile agentic coding stealth model with a 1M token context window that supports image inputs, accessible for free through Roo Code Cloud for a limited time. (Note: the free prompts and completions are logged by the model provider and used to improve the model.)", }, "xai/grok-4-fast": { maxTokens: 30_000, diff --git a/src/core/config/ProviderSettingsManager.ts b/src/core/config/ProviderSettingsManager.ts index 21a7a060c1..357a04b33a 100644 --- a/src/core/config/ProviderSettingsManager.ts +++ b/src/core/config/ProviderSettingsManager.ts @@ -10,11 +10,24 @@ import { ProviderSettingsEntry, DEFAULT_CONSECUTIVE_MISTAKE_LIMIT, getModelId, + type ProviderName, + type RooModelId, } from "@roo-code/types" import { TelemetryService } from "@roo-code/telemetry" import { Mode, modes } from "../../shared/modes" +// Type-safe model migrations mapping +type ModelMigrations = { + [K in ProviderName]?: Record +} + +const MODEL_MIGRATIONS: ModelMigrations = { + roo: { + "roo/code-supernova": "roo/code-supernova-1-million" as RooModelId, + }, +} as const satisfies ModelMigrations + export interface SyncCloudProfilesResult { hasChanges: boolean activeProfileChanged: boolean @@ -108,6 +121,11 @@ export class ProviderSettingsManager { isDirty = true } + // Apply model migrations for all providers + if (this.applyModelMigrations(providerProfiles)) { + isDirty = true + } + // Ensure all configs have IDs. for (const [_name, apiConfig] of Object.entries(providerProfiles.apiConfigs)) { if (!apiConfig.id) { @@ -275,6 +293,44 @@ export class ProviderSettingsManager { } } + /** + * Apply model migrations for all providers + * Returns true if any migrations were applied + */ + private applyModelMigrations(providerProfiles: ProviderProfiles): boolean { + let migrated = false + + try { + for (const [_name, apiConfig] of Object.entries(providerProfiles.apiConfigs)) { + // Skip configs without provider or model ID + if (!apiConfig.apiProvider || !apiConfig.apiModelId) { + continue + } + + // Check if this provider has migrations (with type safety) + const provider = apiConfig.apiProvider as ProviderName + const providerMigrations = MODEL_MIGRATIONS[provider] + if (!providerMigrations) { + continue + } + + // Check if the current model ID needs migration + const newModelId = providerMigrations[apiConfig.apiModelId] + if (newModelId && newModelId !== apiConfig.apiModelId) { + console.log( + `[ModelMigration] Migrating ${apiConfig.apiProvider} model from ${apiConfig.apiModelId} to ${newModelId}`, + ) + apiConfig.apiModelId = newModelId + migrated = true + } + } + } catch (error) { + console.error(`[ModelMigration] Failed to apply model migrations:`, error) + } + + return migrated + } + /** * Clean model ID by removing prefix before "/" */ diff --git a/src/core/config/__tests__/ProviderSettingsManager.spec.ts b/src/core/config/__tests__/ProviderSettingsManager.spec.ts index e95d2b100b..b710dc6cca 100644 --- a/src/core/config/__tests__/ProviderSettingsManager.spec.ts +++ b/src/core/config/__tests__/ProviderSettingsManager.spec.ts @@ -229,6 +229,121 @@ describe("ProviderSettingsManager", () => { expect(storedConfig.migrations.todoListEnabledMigrated).toEqual(true) }) + it("should apply model migrations for all providers", async () => { + mockSecrets.get.mockResolvedValue( + JSON.stringify({ + currentApiConfigName: "default", + apiConfigs: { + default: { + config: {}, + id: "default", + apiProvider: "roo", + apiModelId: "roo/code-supernova", // Old model ID + }, + test: { + apiProvider: "roo", + apiModelId: "roo/code-supernova", // Old model ID + }, + existing: { + apiProvider: "roo", + apiModelId: "roo/code-supernova-1-million", // Already migrated + }, + otherProvider: { + apiProvider: "anthropic", + apiModelId: "roo/code-supernova", // Should not be migrated (different provider) + }, + noProvider: { + id: "no-provider", + apiModelId: "roo/code-supernova", // Should not be migrated (no provider) + }, + }, + migrations: { + rateLimitSecondsMigrated: true, + diffSettingsMigrated: true, + openAiHeadersMigrated: true, + consecutiveMistakeLimitMigrated: true, + todoListEnabledMigrated: true, + }, + }), + ) + + await providerSettingsManager.initialize() + + // Get the last call to store, which should contain the migrated config + const calls = mockSecrets.store.mock.calls + const storedConfig = JSON.parse(calls[calls.length - 1][1]) + + // Roo provider configs should be migrated + expect(storedConfig.apiConfigs.default.apiModelId).toEqual("roo/code-supernova-1-million") + expect(storedConfig.apiConfigs.test.apiModelId).toEqual("roo/code-supernova-1-million") + expect(storedConfig.apiConfigs.existing.apiModelId).toEqual("roo/code-supernova-1-million") + + // Non-roo provider configs should not be migrated + expect(storedConfig.apiConfigs.otherProvider.apiModelId).toEqual("roo/code-supernova") + expect(storedConfig.apiConfigs.noProvider.apiModelId).toEqual("roo/code-supernova") + }) + + it("should apply model migrations every time, not just once", async () => { + // First load with old model + mockSecrets.get.mockResolvedValue( + JSON.stringify({ + currentApiConfigName: "default", + apiConfigs: { + default: { + apiProvider: "roo", + apiModelId: "roo/code-supernova", + id: "default", + }, + }, + migrations: { + rateLimitSecondsMigrated: true, + diffSettingsMigrated: true, + openAiHeadersMigrated: true, + consecutiveMistakeLimitMigrated: true, + todoListEnabledMigrated: true, + }, + }), + ) + + await providerSettingsManager.initialize() + + // Verify migration happened + let calls = mockSecrets.store.mock.calls + let storedConfig = JSON.parse(calls[calls.length - 1][1]) + expect(storedConfig.apiConfigs.default.apiModelId).toEqual("roo/code-supernova-1-million") + + // Create a new instance to simulate another load + const newManager = new ProviderSettingsManager(mockContext) + + // Somehow the model got reverted (e.g., manual edit, sync issue) + mockSecrets.get.mockResolvedValue( + JSON.stringify({ + currentApiConfigName: "default", + apiConfigs: { + default: { + apiProvider: "roo", + apiModelId: "roo/code-supernova", // Old model again + id: "default", + }, + }, + migrations: { + rateLimitSecondsMigrated: true, + diffSettingsMigrated: true, + openAiHeadersMigrated: true, + consecutiveMistakeLimitMigrated: true, + todoListEnabledMigrated: true, + }, + }), + ) + + await newManager.initialize() + + // Verify migration happened again + calls = mockSecrets.store.mock.calls + storedConfig = JSON.parse(calls[calls.length - 1][1]) + expect(storedConfig.apiConfigs.default.apiModelId).toEqual("roo/code-supernova-1-million") + }) + it("should throw error if secrets storage fails", async () => { mockSecrets.get.mockRejectedValue(new Error("Storage failed")) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 119668d668..2c20d0939c 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -144,7 +144,7 @@ export class ClineProvider public isViewLaunched = false public settingsImportedAt?: number - public readonly latestAnnouncementId = "sep-2025-code-supernova" // Code Supernova stealth model announcement + public readonly latestAnnouncementId = "sep-2025-code-supernova-1m" // Code Supernova 1M context window announcement public readonly providerSettingsManager: ProviderSettingsManager public readonly customModesManager: CustomModesManager diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 65ffdfa015..4d392ee3bf 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Llançat", "stealthModel": { - "feature": "Model stealth GRATUÏT per temps limitat - Code Supernova: Un model de codificació agèntica versàtil que suporta entrades d'imatges, disponible a través de Roo Code Cloud.", + "feature": "Model stealth GRATUÏT per temps limitat - Code Supernova: Ara actualitzat amb una finestra de context d'1M tokens! Un model de codificació agèntica versàtil que suporta entrades d'imatges, disponible a través de Roo Code Cloud.", "note": "(Nota: els prompts i completacions són registrats pel creador del model i utilitzats per millorar-lo)", "connectButton": "Connectar a Roo Code Cloud", "selectModel": "Selecciona roo/code-supernova del proveïdor Roo Code Cloud a Configuració per començar.", diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index a68bc69b93..65934ab5a2 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} veröffentlicht", "stealthModel": { - "feature": "Zeitlich begrenztes KOSTENLOSES Stealth-Modell - Code Supernova: Ein vielseitiges agentisches Coding-Modell, das Bildeingaben unterstützt und über Roo Code Cloud zugänglich ist.", + "feature": "Zeitlich begrenztes KOSTENLOSES Stealth-Modell - Code Supernova: Jetzt mit einem 1M Token Kontextfenster erweitert! Ein vielseitiges agentisches Coding-Modell, das Bildeingaben unterstützt und über Roo Code Cloud zugänglich ist.", "note": "(Hinweis: Prompts und Vervollständigungen werden vom Modellersteller protokolliert und zur Verbesserung des Modells verwendet)", "connectButton": "Mit Roo Code Cloud verbinden", "selectModel": "Wähle roo/code-supernova vom Roo Code Cloud-Provider in den Einstellungen aus, um zu beginnen.", diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 7bd0cde9d3..9ab37b1149 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -295,7 +295,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Released", "stealthModel": { - "feature": "Limited-time FREE stealth model - Code Supernova: A versatile agentic coding model that supports image inputs, accessible through Roo Code Cloud.", + "feature": "Limited-time FREE stealth model - Code Supernova: Now upgraded with a 1M token context window! A versatile agentic coding model that supports image inputs, accessible through Roo Code Cloud.", "note": "(Note: prompts and completions are logged by the model creator and used to improve the model)", "connectButton": "Connect to Roo Code Cloud", "selectModel": "Select roo/code-supernova from the Roo Code Cloud provider in Settings to get started.", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 20de4dcaba..30693285db 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} publicado", "stealthModel": { - "feature": "Modelo stealth GRATUITO por tiempo limitado - Code Supernova: Un modelo de codificación agéntica versátil que soporta entradas de imágenes, accesible a través de Roo Code Cloud.", + "feature": "Modelo stealth GRATUITO por tiempo limitado - Code Supernova: ¡Ahora actualizado con una ventana de contexto de 1M tokens! Un modelo de codificación agéntica versátil que soporta entradas de imágenes, accesible a través de Roo Code Cloud.", "note": "(Nota: los prompts y completaciones son registrados por el creador del modelo y utilizados para mejorarlo)", "connectButton": "Conectar a Roo Code Cloud", "selectModel": "Selecciona roo/code-supernova del proveedor Roo Code Cloud en Configuración para comenzar.", diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index 4d31f328ad..d5dae24a79 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} est sortie", "stealthModel": { - "feature": "Modèle stealth GRATUIT pour une durée limitée - Code Supernova : Un modèle de codage agentique polyvalent qui prend en charge les entrées d'images, accessible via Roo Code Cloud.", + "feature": "Modèle stealth GRATUIT pour une durée limitée - Code Supernova : Maintenant amélioré avec une fenêtre de contexte de 1M tokens ! Un modèle de codage agentique polyvalent qui prend en charge les entrées d'images, accessible via Roo Code Cloud.", "note": "(Note : les prompts et complétions sont enregistrés par le créateur du modèle et utilisés pour l'améliorer)", "connectButton": "Se connecter à Roo Code Cloud", "selectModel": "Sélectionnez roo/code-supernova du fournisseur Roo Code Cloud dans Paramètres pour commencer.", diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 17b5ceef01..0ec9cd7c7e 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} रिलीज़ हुआ", "stealthModel": { - "feature": "सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल - Code Supernova: एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Roo Code Cloud के माध्यम से उपलब्ध।", + "feature": "सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल - Code Supernova: अब 1M Token संदर्भ विंडो के साथ अपग्रेड हुआ! एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Roo Code Cloud के माध्यम से उपलब्ध।", "note": "(नोट: प्रॉम्प्ट्स और कम्प्लीशन्स मॉडल निर्माता द्वारा लॉग किए जाते हैं और मॉडल को बेहतर बनाने के लिए उपयोग किए जाते हैं)", "connectButton": "Roo Code Cloud से कनेक्ट करें", "selectModel": "आरंभ करने के लिए सेटिंग्स में Roo Code Cloud प्रोवाइडर से roo/code-supernova चुनें।", diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index 532ab41303..a2c5377691 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -299,7 +299,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Dirilis", "stealthModel": { - "feature": "Model stealth GRATIS waktu terbatas - Code Supernova: Model coding agentik serbaguna yang mendukung input gambar, tersedia melalui Roo Code Cloud.", + "feature": "Model stealth GRATIS waktu terbatas - Code Supernova: Sekarang diupgrade dengan jendela konteks 1M token! Model coding agentik serbaguna yang mendukung input gambar, tersedia melalui Roo Code Cloud.", "note": "(Catatan: prompt dan completion dicatat oleh pembuat model dan digunakan untuk meningkatkan model)", "connectButton": "Hubungkan ke Roo Code Cloud", "selectModel": "Pilih roo/code-supernova dari penyedia Roo Code Cloud di Pengaturan untuk memulai.", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index fd3bf967d3..a176be1f2f 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Rilasciato Roo Code {{version}}", "stealthModel": { - "feature": "Modello stealth GRATUITO per tempo limitato - Code Supernova: Un modello di codificazione agentiva versatile che supporta input di immagini, accessibile tramite Roo Code Cloud.", + "feature": "Modello stealth GRATUITO per tempo limitato - Code Supernova: Ora potenziato con una finestra di contesto da 1M token! Un modello di codificazione agentiva versatile che supporta input di immagini, accessibile tramite Roo Code Cloud.", "note": "(Nota: i prompt e le completazioni vengono registrati dal creatore del modello e utilizzati per migliorarlo)", "connectButton": "Connetti a Roo Code Cloud", "selectModel": "Seleziona roo/code-supernova dal provider Roo Code Cloud nelle Impostazioni per iniziare.", diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index 52e633b3ef..0e940b17ec 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} リリース", "stealthModel": { - "feature": "期間限定無料ステルスモデル - Code Supernova:画像入力をサポートする多目的エージェントコーディングモデル、Roo Code Cloud 経由で利用可能。", + "feature": "期間限定無料ステルスモデル - Code Supernova:1Mトークンコンテキストウィンドウにアップグレード!画像入力をサポートする多目的エージェントコーディングモデル、Roo Code Cloud 経由で利用可能。", "note": "(注意:プロンプトと補完はモデル作成者によってログに記録され、モデルの改善に使用されます)", "connectButton": "Roo Code Cloud に接続", "selectModel": "設定で Roo Code Cloud プロバイダーから roo/code-supernova を選択して開始してください。", diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index 991955f1e8..6fa7c5692a 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} 출시", "stealthModel": { - "feature": "기간 한정 무료 스텔스 모델 - Code Supernova: 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Roo Code Cloud를 통해 이용 가능.", + "feature": "기간 한정 무료 스텔스 모델 - Code Supernova: 이제 1M 토큰 컨텍스트 윈도우로 업그레이드되었습니다! 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Roo Code Cloud를 통해 이용 가능.", "note": "(참고: 프롬프트와 완성은 모델 제작자에 의해 기록되고 모델 개선에 사용됩니다)", "connectButton": "Roo Code Cloud에 연결", "selectModel": "설정에서 Roo Code Cloud 제공업체의 roo/code-supernova를 선택하여 시작하세요.", diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index e5d779f70c..2be312228d 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -272,7 +272,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} uitgebracht", "stealthModel": { - "feature": "Beperkt tijd GRATIS stealth model - Code Supernova: Een veelzijdig agentisch codeermodel dat beeldinvoer ondersteunt, beschikbaar via Roo Code Cloud.", + "feature": "Beperkt tijd GRATIS stealth model - Code Supernova: Nu geüpgraded met een 1M token contextvenster! Een veelzijdig agentisch codeermodel dat beeldinvoer ondersteunt, beschikbaar via Roo Code Cloud.", "note": "(Opmerking: prompts en aanvullingen worden gelogd door de modelmaker en gebruikt om het model te verbeteren)", "connectButton": "Verbinden met Roo Code Cloud", "selectModel": "Selecteer roo/code-supernova van de Roo Code Cloud provider in Instellingen om te beginnen.", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index 26e8e59e2c..e60ec330db 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} wydany", "stealthModel": { - "feature": "Darmowy model stealth na ograniczony czas - Code Supernova: Wszechstronny model kodowania agentowego, który obsługuje wprowadzanie obrazów, dostępny przez Roo Code Cloud.", + "feature": "Darmowy model stealth na ograniczony czas - Code Supernova: Teraz ulepszony z oknem kontekstu 1M tokenów! Wszechstronny model kodowania agentowego, który obsługuje wprowadzanie obrazów, dostępny przez Roo Code Cloud.", "note": "(Uwaga: prompty i uzupełnienia są rejestrowane przez twórcę modelu i używane do jego ulepszania)", "connectButton": "Połącz z Roo Code Cloud", "selectModel": "Wybierz roo/code-supernova od dostawcy Roo Code Cloud w Ustawieniach, aby rozpocząć.", diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index b14a1bbaa7..3408f3a1aa 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -287,7 +287,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Lançado", "stealthModel": { - "feature": "Modelo stealth GRATUITO por tempo limitado - Code Supernova: Um modelo de codificação agêntica versátil que suporta entradas de imagem, acessível através do Roo Code Cloud.", + "feature": "Modelo stealth GRATUITO por tempo limitado - Code Supernova: Agora atualizado com uma janela de contexto de 1M tokens! Um modelo de codificação agêntica versátil que suporta entradas de imagem, acessível através do Roo Code Cloud.", "note": "(Nota: prompts e completações são registrados pelo criador do modelo e usados para melhorá-lo)", "connectButton": "Conectar ao Roo Code Cloud", "selectModel": "Selecione roo/code-supernova do provedor Roo Code Cloud em Configurações para começar.", diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index c5acc9f25a..5018f817af 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -273,7 +273,7 @@ "announcement": { "title": "🎉 Выпущен Roo Code {{version}}", "stealthModel": { - "feature": "Бесплатная скрытая модель на ограниченное время - Code Supernova: Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Roo Code Cloud.", + "feature": "Бесплатная скрытая модель на ограниченное время - Code Supernova: Теперь обновлена до контекстного окна 1M токенов! Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Roo Code Cloud.", "note": "(Примечание: промпты и дополнения записываются создателем модели и используются для её улучшения)", "connectButton": "Подключиться к Roo Code Cloud", "selectModel": "Выберите roo/code-supernova от провайдера Roo Code Cloud в Настройках для начала работы.", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 8e2a1077df..2290a85f6d 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -288,7 +288,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Yayınlandı", "stealthModel": { - "feature": "Sınırlı süre ÜCRETSİZ gizli model - Code Supernova: Görüntü girişlerini destekleyen çok amaçlı acentik kodlama modeli, Roo Code Cloud üzerinden kullanılabilir.", + "feature": "Sınırlı süre ÜCRETSİZ gizli model - Code Supernova: Artık 1M token bağlam penceresi ile yükseltildi! Görüntü girişlerini destekleyen çok amaçlı acentik kodlama modeli, Roo Code Cloud üzerinden kullanılabilir.", "note": "(Not: istemler ve tamamlamalar model yaratıcısı tarafından kaydedilir ve modeli geliştirmek için kullanılır)", "connectButton": "Roo Code Cloud'a bağlan", "selectModel": "Başlamak için Ayarlar'da Roo Code Cloud sağlayıcısından roo/code-supernova'yı seçin.", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 221ced0377..d9362ea39d 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -288,7 +288,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} Đã phát hành", "stealthModel": { - "feature": "Mô hình stealth MIỄN PHÍ có thời hạn - Code Supernova: Một mô hình lập trình agentic đa năng hỗ trợ đầu vào hình ảnh, có sẵn qua Roo Code Cloud.", + "feature": "Mô hình stealth MIỄN PHÍ có thời hạn - Code Supernova: Hiện đã được nâng cấp với cửa sổ ngữ cảnh 1M token! Một mô hình lập trình agentic đa năng hỗ trợ đầu vào hình ảnh, có sẵn qua Roo Code Cloud.", "note": "(Lưu ý: các prompt và completion được ghi lại bởi người tạo mô hình và được sử dụng để cải thiện mô hình)", "connectButton": "Kết nối với Roo Code Cloud", "selectModel": "Chọn roo/code-supernova từ nhà cung cấp Roo Code Cloud trong Cài đặt để bắt đầu.", diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index cbb0e8633c..850f79e630 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -288,7 +288,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} 已发布", "stealthModel": { - "feature": "限时免费隐形模型 - Code Supernova:一个支持图像输入的多功能代理编程模型,通过 Roo Code Cloud 提供。", + "feature": "限时免费隐形模型 - Code Supernova:现已升级为 1M Token 上下文窗口!一个支持图像输入的多功能代理编程模型,通过 Roo Code Cloud 提供。", "note": "(注意:提示词和补全内容会被模型创建者记录并用于改进模型)", "connectButton": "连接到 Roo Code Cloud", "selectModel": "在设置中从 Roo Code Cloud 提供商选择 roo/code-supernova 开始使用。", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index dbc4b3dd9f..24a67b13a9 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -297,7 +297,7 @@ "announcement": { "title": "🎉 Roo Code {{version}} 已發布", "stealthModel": { - "feature": "限時免費隱形模型 - Code Supernova:一個支援圖像輸入的多功能代理程式編程模型,透過 Roo Code Cloud 提供。", + "feature": "限時免費隱形模型 - Code Supernova:現已升級為 1M Token 上下文視窗!一個支援圖像輸入的多功能代理程式編程模型,透過 Roo Code Cloud 提供。", "note": "(注意:提示和完成會被模型創建者記錄並用於改進模型)", "connectButton": "連接到 Roo Code Cloud", "selectModel": "在設定中從 Roo Code Cloud 提供商選擇 roo/code-supernova 開始使用。",