Explorar o código

Upgrade Supernova (#8330)

Matt Rubens hai 5 meses
pai
achega
8a7d90e43b

+ 5 - 5
packages/types/src/providers/roo.ts

@@ -2,7 +2,7 @@ import type { ModelInfo } from "../model.js"
 
 
 export type RooModelId =
 export type RooModelId =
 	| "xai/grok-code-fast-1"
 	| "xai/grok-code-fast-1"
-	| "roo/code-supernova"
+	| "roo/code-supernova-1-million"
 	| "xai/grok-4-fast"
 	| "xai/grok-4-fast"
 	| "deepseek/deepseek-chat-v3.1"
 	| "deepseek/deepseek-chat-v3.1"
 
 
@@ -19,15 +19,15 @@ export const rooModels = {
 		description:
 		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.)",
 			"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,
 		supportsImages: true,
 		supportsPromptCache: true,
 		supportsPromptCache: true,
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 		description:
 		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": {
 	"xai/grok-4-fast": {
 		maxTokens: 30_000,
 		maxTokens: 30_000,

+ 56 - 0
src/core/config/ProviderSettingsManager.ts

@@ -10,11 +10,24 @@ import {
 	ProviderSettingsEntry,
 	ProviderSettingsEntry,
 	DEFAULT_CONSECUTIVE_MISTAKE_LIMIT,
 	DEFAULT_CONSECUTIVE_MISTAKE_LIMIT,
 	getModelId,
 	getModelId,
+	type ProviderName,
+	type RooModelId,
 } from "@roo-code/types"
 } from "@roo-code/types"
 import { TelemetryService } from "@roo-code/telemetry"
 import { TelemetryService } from "@roo-code/telemetry"
 
 
 import { Mode, modes } from "../../shared/modes"
 import { Mode, modes } from "../../shared/modes"
 
 
+// Type-safe model migrations mapping
+type ModelMigrations = {
+	[K in ProviderName]?: Record<string, string>
+}
+
+const MODEL_MIGRATIONS: ModelMigrations = {
+	roo: {
+		"roo/code-supernova": "roo/code-supernova-1-million" as RooModelId,
+	},
+} as const satisfies ModelMigrations
+
 export interface SyncCloudProfilesResult {
 export interface SyncCloudProfilesResult {
 	hasChanges: boolean
 	hasChanges: boolean
 	activeProfileChanged: boolean
 	activeProfileChanged: boolean
@@ -108,6 +121,11 @@ export class ProviderSettingsManager {
 					isDirty = true
 					isDirty = true
 				}
 				}
 
 
+				// Apply model migrations for all providers
+				if (this.applyModelMigrations(providerProfiles)) {
+					isDirty = true
+				}
+
 				// Ensure all configs have IDs.
 				// Ensure all configs have IDs.
 				for (const [_name, apiConfig] of Object.entries(providerProfiles.apiConfigs)) {
 				for (const [_name, apiConfig] of Object.entries(providerProfiles.apiConfigs)) {
 					if (!apiConfig.id) {
 					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 "/"
 	 * Clean model ID by removing prefix before "/"
 	 */
 	 */

+ 115 - 0
src/core/config/__tests__/ProviderSettingsManager.spec.ts

@@ -229,6 +229,121 @@ describe("ProviderSettingsManager", () => {
 			expect(storedConfig.migrations.todoListEnabledMigrated).toEqual(true)
 			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 () => {
 		it("should throw error if secrets storage fails", async () => {
 			mockSecrets.get.mockRejectedValue(new Error("Storage failed"))
 			mockSecrets.get.mockRejectedValue(new Error("Storage failed"))
 
 

+ 1 - 1
src/core/webview/ClineProvider.ts

@@ -144,7 +144,7 @@ export class ClineProvider
 
 
 	public isViewLaunched = false
 	public isViewLaunched = false
 	public settingsImportedAt?: number
 	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 providerSettingsManager: ProviderSettingsManager
 	public readonly customModesManager: CustomModesManager
 	public readonly customModesManager: CustomModesManager
 
 

+ 1 - 1
webview-ui/src/i18n/locales/ca/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Llançat",
 		"title": "🎉 Roo Code {{version}} Llançat",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Model stealth GRATUÏT per temps limitat</bold> - Code Supernova: Un model de codificació agèntica versàtil que suporta entrades d'imatges, disponible a través de Roo Code Cloud.",
+			"feature": "<bold>Model stealth GRATUÏT per temps limitat</bold> - Code Supernova: Ara actualitzat amb una <bold>finestra de context d'1M tokens</bold>! 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)",
 			"note": "(Nota: els prompts i completacions són registrats pel creador del model i utilitzats per millorar-lo)",
 			"connectButton": "Connectar a Roo Code Cloud",
 			"connectButton": "Connectar a Roo Code Cloud",
 			"selectModel": "Selecciona <code>roo/code-supernova</code> del proveïdor Roo Code Cloud a Configuració per començar.",
 			"selectModel": "Selecciona <code>roo/code-supernova</code> del proveïdor Roo Code Cloud a Configuració per començar.",

+ 1 - 1
webview-ui/src/i18n/locales/de/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} veröffentlicht",
 		"title": "🎉 Roo Code {{version}} veröffentlicht",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Zeitlich begrenztes KOSTENLOSES Stealth-Modell</bold> - Code Supernova: Ein vielseitiges agentisches Coding-Modell, das Bildeingaben unterstützt und über Roo Code Cloud zugänglich ist.",
+			"feature": "<bold>Zeitlich begrenztes KOSTENLOSES Stealth-Modell</bold> - Code Supernova: Jetzt mit einem <bold>1M Token Kontextfenster</bold> 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)",
 			"note": "(Hinweis: Prompts und Vervollständigungen werden vom Modellersteller protokolliert und zur Verbesserung des Modells verwendet)",
 			"connectButton": "Mit Roo Code Cloud verbinden",
 			"connectButton": "Mit Roo Code Cloud verbinden",
 			"selectModel": "Wähle <code>roo/code-supernova</code> vom Roo Code Cloud-Provider in den Einstellungen aus, um zu beginnen.",
 			"selectModel": "Wähle <code>roo/code-supernova</code> vom Roo Code Cloud-Provider in den Einstellungen aus, um zu beginnen.",

+ 1 - 1
webview-ui/src/i18n/locales/en/chat.json

@@ -295,7 +295,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Released",
 		"title": "🎉 Roo Code {{version}} Released",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Limited-time FREE stealth model</bold> - Code Supernova: A versatile agentic coding model that supports image inputs, accessible through Roo Code Cloud.",
+			"feature": "<bold>Limited-time FREE stealth model</bold> - Code Supernova: Now upgraded with a <bold>1M token context window</bold>! 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)",
 			"note": "(Note: prompts and completions are logged by the model creator and used to improve the model)",
 			"connectButton": "Connect to Roo Code Cloud",
 			"connectButton": "Connect to Roo Code Cloud",
 			"selectModel": "Select <code>roo/code-supernova</code> from the Roo Code Cloud provider in Settings to get started.",
 			"selectModel": "Select <code>roo/code-supernova</code> from the Roo Code Cloud provider in Settings to get started.",

+ 1 - 1
webview-ui/src/i18n/locales/es/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} publicado",
 		"title": "🎉 Roo Code {{version}} publicado",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Modelo stealth GRATUITO por tiempo limitado</bold> - 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": "<bold>Modelo stealth GRATUITO por tiempo limitado</bold> - Code Supernova: ¡Ahora actualizado con una <bold>ventana de contexto de 1M tokens</bold>! 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)",
 			"note": "(Nota: los prompts y completaciones son registrados por el creador del modelo y utilizados para mejorarlo)",
 			"connectButton": "Conectar a Roo Code Cloud",
 			"connectButton": "Conectar a Roo Code Cloud",
 			"selectModel": "Selecciona <code>roo/code-supernova</code> del proveedor Roo Code Cloud en Configuración para comenzar.",
 			"selectModel": "Selecciona <code>roo/code-supernova</code> del proveedor Roo Code Cloud en Configuración para comenzar.",

+ 1 - 1
webview-ui/src/i18n/locales/fr/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} est sortie",
 		"title": "🎉 Roo Code {{version}} est sortie",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Modèle stealth GRATUIT pour une durée limitée</bold> - Code Supernova : Un modèle de codage agentique polyvalent qui prend en charge les entrées d'images, accessible via Roo Code Cloud.",
+			"feature": "<bold>Modèle stealth GRATUIT pour une durée limitée</bold> - Code Supernova : Maintenant amélioré avec une <bold>fenêtre de contexte de 1M tokens</bold> ! 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)",
 			"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",
 			"connectButton": "Se connecter à Roo Code Cloud",
 			"selectModel": "Sélectionnez <code>roo/code-supernova</code> du fournisseur Roo Code Cloud dans Paramètres pour commencer.",
 			"selectModel": "Sélectionnez <code>roo/code-supernova</code> du fournisseur Roo Code Cloud dans Paramètres pour commencer.",

+ 1 - 1
webview-ui/src/i18n/locales/hi/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} रिलीज़ हुआ",
 		"title": "🎉 Roo Code {{version}} रिलीज़ हुआ",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल</bold> - Code Supernova: एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Roo Code Cloud के माध्यम से उपलब्ध।",
+			"feature": "<bold>सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल</bold> - Code Supernova: अब <bold>1M Token संदर्भ विंडो</bold> के साथ अपग्रेड हुआ! एक बहुमुखी एजेंटिक कोडिंग मॉडल जो छवि इनपुट का समर्थन करता है, Roo Code Cloud के माध्यम से उपलब्ध।",
 			"note": "(नोट: प्रॉम्प्ट्स और कम्प्लीशन्स मॉडल निर्माता द्वारा लॉग किए जाते हैं और मॉडल को बेहतर बनाने के लिए उपयोग किए जाते हैं)",
 			"note": "(नोट: प्रॉम्प्ट्स और कम्प्लीशन्स मॉडल निर्माता द्वारा लॉग किए जाते हैं और मॉडल को बेहतर बनाने के लिए उपयोग किए जाते हैं)",
 			"connectButton": "Roo Code Cloud से कनेक्ट करें",
 			"connectButton": "Roo Code Cloud से कनेक्ट करें",
 			"selectModel": "आरंभ करने के लिए सेटिंग्स में Roo Code Cloud प्रोवाइडर से <code>roo/code-supernova</code> चुनें।",
 			"selectModel": "आरंभ करने के लिए सेटिंग्स में Roo Code Cloud प्रोवाइडर से <code>roo/code-supernova</code> चुनें।",

+ 1 - 1
webview-ui/src/i18n/locales/id/chat.json

@@ -299,7 +299,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Dirilis",
 		"title": "🎉 Roo Code {{version}} Dirilis",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Model stealth GRATIS waktu terbatas</bold> - Code Supernova: Model coding agentik serbaguna yang mendukung input gambar, tersedia melalui Roo Code Cloud.",
+			"feature": "<bold>Model stealth GRATIS waktu terbatas</bold> - Code Supernova: Sekarang diupgrade dengan <bold>jendela konteks 1M token</bold>! 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)",
 			"note": "(Catatan: prompt dan completion dicatat oleh pembuat model dan digunakan untuk meningkatkan model)",
 			"connectButton": "Hubungkan ke Roo Code Cloud",
 			"connectButton": "Hubungkan ke Roo Code Cloud",
 			"selectModel": "Pilih <code>roo/code-supernova</code> dari penyedia Roo Code Cloud di Pengaturan untuk memulai.",
 			"selectModel": "Pilih <code>roo/code-supernova</code> dari penyedia Roo Code Cloud di Pengaturan untuk memulai.",

+ 1 - 1
webview-ui/src/i18n/locales/it/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Rilasciato Roo Code {{version}}",
 		"title": "🎉 Rilasciato Roo Code {{version}}",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Modello stealth GRATUITO per tempo limitato</bold> - Code Supernova: Un modello di codificazione agentiva versatile che supporta input di immagini, accessibile tramite Roo Code Cloud.",
+			"feature": "<bold>Modello stealth GRATUITO per tempo limitato</bold> - Code Supernova: Ora potenziato con una <bold>finestra di contesto da 1M token</bold>! 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)",
 			"note": "(Nota: i prompt e le completazioni vengono registrati dal creatore del modello e utilizzati per migliorarlo)",
 			"connectButton": "Connetti a Roo Code Cloud",
 			"connectButton": "Connetti a Roo Code Cloud",
 			"selectModel": "Seleziona <code>roo/code-supernova</code> dal provider Roo Code Cloud nelle Impostazioni per iniziare.",
 			"selectModel": "Seleziona <code>roo/code-supernova</code> dal provider Roo Code Cloud nelle Impostazioni per iniziare.",

+ 1 - 1
webview-ui/src/i18n/locales/ja/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} リリース",
 		"title": "🎉 Roo Code {{version}} リリース",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>期間限定無料ステルスモデル</bold> - Code Supernova:画像入力をサポートする多目的エージェントコーディングモデル、Roo Code Cloud 経由で利用可能。",
+			"feature": "<bold>期間限定無料ステルスモデル</bold> - Code Supernova:<bold>1Mトークンコンテキストウィンドウ</bold>にアップグレード!画像入力をサポートする多目的エージェントコーディングモデル、Roo Code Cloud 経由で利用可能。",
 			"note": "(注意:プロンプトと補完はモデル作成者によってログに記録され、モデルの改善に使用されます)",
 			"note": "(注意:プロンプトと補完はモデル作成者によってログに記録され、モデルの改善に使用されます)",
 			"connectButton": "Roo Code Cloud に接続",
 			"connectButton": "Roo Code Cloud に接続",
 			"selectModel": "設定で Roo Code Cloud プロバイダーから <code>roo/code-supernova</code> を選択して開始してください。",
 			"selectModel": "設定で Roo Code Cloud プロバイダーから <code>roo/code-supernova</code> を選択して開始してください。",

+ 1 - 1
webview-ui/src/i18n/locales/ko/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 출시",
 		"title": "🎉 Roo Code {{version}} 출시",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>기간 한정 무료 스텔스 모델</bold> - Code Supernova: 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Roo Code Cloud를 통해 이용 가능.",
+			"feature": "<bold>기간 한정 무료 스텔스 모델</bold> - Code Supernova: 이제 <bold>1M 토큰 컨텍스트 윈도우</bold>로 업그레이드되었습니다! 이미지 입력을 지원하는 다목적 에이전틱 코딩 모델, Roo Code Cloud를 통해 이용 가능.",
 			"note": "(참고: 프롬프트와 완성은 모델 제작자에 의해 기록되고 모델 개선에 사용됩니다)",
 			"note": "(참고: 프롬프트와 완성은 모델 제작자에 의해 기록되고 모델 개선에 사용됩니다)",
 			"connectButton": "Roo Code Cloud에 연결",
 			"connectButton": "Roo Code Cloud에 연결",
 			"selectModel": "설정에서 Roo Code Cloud 제공업체의 <code>roo/code-supernova</code>를 선택하여 시작하세요.",
 			"selectModel": "설정에서 Roo Code Cloud 제공업체의 <code>roo/code-supernova</code>를 선택하여 시작하세요.",

+ 1 - 1
webview-ui/src/i18n/locales/nl/chat.json

@@ -272,7 +272,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} uitgebracht",
 		"title": "🎉 Roo Code {{version}} uitgebracht",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Beperkt tijd GRATIS stealth model</bold> - Code Supernova: Een veelzijdig agentisch codeermodel dat beeldinvoer ondersteunt, beschikbaar via Roo Code Cloud.",
+			"feature": "<bold>Beperkt tijd GRATIS stealth model</bold> - Code Supernova: Nu geüpgraded met een <bold>1M token contextvenster</bold>! 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)",
 			"note": "(Opmerking: prompts en aanvullingen worden gelogd door de modelmaker en gebruikt om het model te verbeteren)",
 			"connectButton": "Verbinden met Roo Code Cloud",
 			"connectButton": "Verbinden met Roo Code Cloud",
 			"selectModel": "Selecteer <code>roo/code-supernova</code> van de Roo Code Cloud provider in Instellingen om te beginnen.",
 			"selectModel": "Selecteer <code>roo/code-supernova</code> van de Roo Code Cloud provider in Instellingen om te beginnen.",

+ 1 - 1
webview-ui/src/i18n/locales/pl/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} wydany",
 		"title": "🎉 Roo Code {{version}} wydany",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Darmowy model stealth na ograniczony czas</bold> - Code Supernova: Wszechstronny model kodowania agentowego, który obsługuje wprowadzanie obrazów, dostępny przez Roo Code Cloud.",
+			"feature": "<bold>Darmowy model stealth na ograniczony czas</bold> - Code Supernova: Teraz ulepszony z <bold>oknem kontekstu 1M tokenów</bold>! 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)",
 			"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",
 			"connectButton": "Połącz z Roo Code Cloud",
 			"selectModel": "Wybierz <code>roo/code-supernova</code> od dostawcy Roo Code Cloud w Ustawieniach, aby rozpocząć.",
 			"selectModel": "Wybierz <code>roo/code-supernova</code> od dostawcy Roo Code Cloud w Ustawieniach, aby rozpocząć.",

+ 1 - 1
webview-ui/src/i18n/locales/pt-BR/chat.json

@@ -287,7 +287,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Lançado",
 		"title": "🎉 Roo Code {{version}} Lançado",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Modelo stealth GRATUITO por tempo limitado</bold> - 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": "<bold>Modelo stealth GRATUITO por tempo limitado</bold> - Code Supernova: Agora atualizado com uma <bold>janela de contexto de 1M tokens</bold>! 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)",
 			"note": "(Nota: prompts e completações são registrados pelo criador do modelo e usados para melhorá-lo)",
 			"connectButton": "Conectar ao Roo Code Cloud",
 			"connectButton": "Conectar ao Roo Code Cloud",
 			"selectModel": "Selecione <code>roo/code-supernova</code> do provedor Roo Code Cloud em Configurações para começar.",
 			"selectModel": "Selecione <code>roo/code-supernova</code> do provedor Roo Code Cloud em Configurações para começar.",

+ 1 - 1
webview-ui/src/i18n/locales/ru/chat.json

@@ -273,7 +273,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Выпущен Roo Code {{version}}",
 		"title": "🎉 Выпущен Roo Code {{version}}",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Бесплатная скрытая модель на ограниченное время</bold> - Code Supernova: Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Roo Code Cloud.",
+			"feature": "<bold>Бесплатная скрытая модель на ограниченное время</bold> - Code Supernova: Теперь обновлена до <bold>контекстного окна 1M токенов</bold>! Универсальная модель агентного программирования, поддерживающая ввод изображений, доступная через Roo Code Cloud.",
 			"note": "(Примечание: промпты и дополнения записываются создателем модели и используются для её улучшения)",
 			"note": "(Примечание: промпты и дополнения записываются создателем модели и используются для её улучшения)",
 			"connectButton": "Подключиться к Roo Code Cloud",
 			"connectButton": "Подключиться к Roo Code Cloud",
 			"selectModel": "Выберите <code>roo/code-supernova</code> от провайдера Roo Code Cloud в Настройках для начала работы.",
 			"selectModel": "Выберите <code>roo/code-supernova</code> от провайдера Roo Code Cloud в Настройках для начала работы.",

+ 1 - 1
webview-ui/src/i18n/locales/tr/chat.json

@@ -288,7 +288,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Yayınlandı",
 		"title": "🎉 Roo Code {{version}} Yayınlandı",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Sınırlı süre ÜCRETSİZ gizli model</bold> - Code Supernova: Görüntü girişlerini destekleyen çok amaçlı acentik kodlama modeli, Roo Code Cloud üzerinden kullanılabilir.",
+			"feature": "<bold>Sınırlı süre ÜCRETSİZ gizli model</bold> - Code Supernova: Artık <bold>1M token bağlam penceresi</bold> 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)",
 			"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",
 			"connectButton": "Roo Code Cloud'a bağlan",
 			"selectModel": "Başlamak için Ayarlar'da Roo Code Cloud sağlayıcısından <code>roo/code-supernova</code>'yı seçin.",
 			"selectModel": "Başlamak için Ayarlar'da Roo Code Cloud sağlayıcısından <code>roo/code-supernova</code>'yı seçin.",

+ 1 - 1
webview-ui/src/i18n/locales/vi/chat.json

@@ -288,7 +288,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Đã phát hành",
 		"title": "🎉 Roo Code {{version}} Đã phát hành",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>Mô hình stealth MIỄN PHÍ có thời hạn</bold> - 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": "<bold>Mô hình stealth MIỄN PHÍ có thời hạn</bold> - Code Supernova: Hiện đã được nâng cấp với <bold>cửa sổ ngữ cảnh 1M token</bold>! 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)",
 			"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",
 			"connectButton": "Kết nối với Roo Code Cloud",
 			"selectModel": "Chọn <code>roo/code-supernova</code> từ nhà cung cấp Roo Code Cloud trong Cài đặt để bắt đầu.",
 			"selectModel": "Chọn <code>roo/code-supernova</code> từ nhà cung cấp Roo Code Cloud trong Cài đặt để bắt đầu.",

+ 1 - 1
webview-ui/src/i18n/locales/zh-CN/chat.json

@@ -288,7 +288,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 已发布",
 		"title": "🎉 Roo Code {{version}} 已发布",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>限时免费隐形模型</bold> - Code Supernova:一个支持图像输入的多功能代理编程模型,通过 Roo Code Cloud 提供。",
+			"feature": "<bold>限时免费隐形模型</bold> - Code Supernova:现已升级为 <bold>1M Token 上下文窗口</bold>!一个支持图像输入的多功能代理编程模型,通过 Roo Code Cloud 提供。",
 			"note": "(注意:提示词和补全内容会被模型创建者记录并用于改进模型)",
 			"note": "(注意:提示词和补全内容会被模型创建者记录并用于改进模型)",
 			"connectButton": "连接到 Roo Code Cloud",
 			"connectButton": "连接到 Roo Code Cloud",
 			"selectModel": "在设置中从 Roo Code Cloud 提供商选择 <code>roo/code-supernova</code> 开始使用。",
 			"selectModel": "在设置中从 Roo Code Cloud 提供商选择 <code>roo/code-supernova</code> 开始使用。",

+ 1 - 1
webview-ui/src/i18n/locales/zh-TW/chat.json

@@ -297,7 +297,7 @@
 	"announcement": {
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 已發布",
 		"title": "🎉 Roo Code {{version}} 已發布",
 		"stealthModel": {
 		"stealthModel": {
-			"feature": "<bold>限時免費隱形模型</bold> - Code Supernova:一個支援圖像輸入的多功能代理程式編程模型,透過 Roo Code Cloud 提供。",
+			"feature": "<bold>限時免費隱形模型</bold> - Code Supernova:現已升級為 <bold>1M Token 上下文視窗</bold>!一個支援圖像輸入的多功能代理程式編程模型,透過 Roo Code Cloud 提供。",
 			"note": "(注意:提示和完成會被模型創建者記錄並用於改進模型)",
 			"note": "(注意:提示和完成會被模型創建者記錄並用於改進模型)",
 			"connectButton": "連接到 Roo Code Cloud",
 			"connectButton": "連接到 Roo Code Cloud",
 			"selectModel": "在設定中從 Roo Code Cloud 提供商選擇 <code>roo/code-supernova</code> 開始使用。",
 			"selectModel": "在設定中從 Roo Code Cloud 提供商選擇 <code>roo/code-supernova</code> 開始使用。",