Browse Source

Add announcement for Sonic model (#7244)

Matt Rubens 4 months ago
parent
commit
94fa33bd63

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

@@ -120,7 +120,7 @@ export class ClineProvider
 
 	public isViewLaunched = false
 	public settingsImportedAt?: number
-	public readonly latestAnnouncementId = "jul-29-2025-3-25-0" // Update for v3.25.0 announcement
+	public readonly latestAnnouncementId = "aug-20-2025-stealth-model" // Update for stealth model announcement
 	public readonly providerSettingsManager: ProviderSettingsManager
 	public readonly customModesManager: CustomModesManager
 

+ 47 - 78
webview-ui/src/components/chat/Announcement.tsx

@@ -3,9 +3,11 @@ import { Trans } from "react-i18next"
 import { VSCodeLink } from "@vscode/webview-ui-toolkit/react"
 
 import { Package } from "@roo/package"
-
 import { useAppTranslation } from "@src/i18n/TranslationContext"
-import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@src/components/ui"
+import { useExtensionState } from "@src/context/ExtensionStateContext"
+import { vscode } from "@src/utils/vscode"
+import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@src/components/ui"
+import { Button } from "@src/components/ui"
 
 interface AnnouncementProps {
 	hideAnnouncement: () => void
@@ -23,6 +25,7 @@ interface AnnouncementProps {
 const Announcement = ({ hideAnnouncement }: AnnouncementProps) => {
 	const { t } = useAppTranslation()
 	const [open, setOpen] = useState(true)
+	const { cloudIsAuthenticated } = useExtensionState()
 
 	return (
 		<Dialog
@@ -37,98 +40,64 @@ const Announcement = ({ hideAnnouncement }: AnnouncementProps) => {
 			<DialogContent className="max-w-96">
 				<DialogHeader>
 					<DialogTitle>{t("chat:announcement.title", { version: Package.version })}</DialogTitle>
-					<DialogDescription>
-						{t("chat:announcement.description", { version: Package.version })}
-					</DialogDescription>
 				</DialogHeader>
 				<div>
-					<h3>{t("chat:announcement.whatsNew")}</h3>
 					<ul className="space-y-2">
 						<li>
 							•{" "}
 							<Trans
-								i18nKey="chat:announcement.feature1"
-								components={{
-									bold: <b />,
-									code: <code />,
-									settingsLink: (
-										<VSCodeLink
-											href="#"
-											onClick={(e) => {
-												e.preventDefault()
-												setOpen(false)
-												hideAnnouncement()
-												window.postMessage(
-													{
-														type: "action",
-														action: "settingsButtonClicked",
-														values: { section: "codebaseIndexing" },
-													},
-													"*",
-												)
-											}}
-										/>
-									),
-								}}
-							/>
-						</li>
-						<li>
-							•{" "}
-							<Trans
-								i18nKey="chat:announcement.feature2"
-								components={{
-									bold: <b />,
-									code: <code />,
-								}}
-							/>
-						</li>
-						<li>
-							•{" "}
-							<Trans
-								i18nKey="chat:announcement.feature3"
+								i18nKey="chat:announcement.stealthModel.feature"
 								components={{
 									bold: <b />,
-									code: <code />,
 								}}
 							/>
 						</li>
 					</ul>
-					<Trans
-						i18nKey="chat:announcement.detailsDiscussLinks"
-						components={{ discordLink: <DiscordLink />, redditLink: <RedditLink /> }}
-					/>
+
+					<p className="text-xs text-muted-foreground mt-2">{t("chat:announcement.stealthModel.note")}</p>
+
+					<div className="mt-4">
+						{!cloudIsAuthenticated ? (
+							<Button
+								onClick={() => {
+									vscode.postMessage({ type: "rooCloudSignIn" })
+								}}
+								className="w-full">
+								{t("chat:announcement.stealthModel.connectButton")}
+							</Button>
+						) : (
+							<div className="text-sm w-full">
+								<Trans
+									i18nKey="chat:announcement.stealthModel.selectModel"
+									components={{
+										code: <code className="px-1 py-0.5 bg-gray-100 dark:bg-gray-800 rounded" />,
+										settingsLink: (
+											<VSCodeLink
+												href="#"
+												onClick={(e) => {
+													e.preventDefault()
+													setOpen(false)
+													hideAnnouncement()
+													window.postMessage(
+														{
+															type: "action",
+															action: "settingsButtonClicked",
+															values: { section: "provider" },
+														},
+														"*",
+													)
+												}}
+											/>
+										),
+									}}
+								/>
+							</div>
+						)}
+					</div>
 				</div>
 			</DialogContent>
 		</Dialog>
 	)
 }
 
-const DiscordLink = () => (
-	<VSCodeLink
-		href="https://discord.gg/roocode"
-		onClick={(e) => {
-			e.preventDefault()
-			window.postMessage(
-				{ type: "action", action: "openExternal", data: { url: "https://discord.gg/roocode" } },
-				"*",
-			)
-		}}>
-		Discord
-	</VSCodeLink>
-)
-
-const RedditLink = () => (
-	<VSCodeLink
-		href="https://reddit.com/r/RooCode"
-		onClick={(e) => {
-			e.preventDefault()
-			window.postMessage(
-				{ type: "action", action: "openExternal", data: { url: "https://reddit.com/r/RooCode" } },
-				"*",
-			)
-		}}>
-		Reddit
-	</VSCodeLink>
-)
-
 export default memo(Announcement)

+ 51 - 9
webview-ui/src/components/chat/__tests__/Announcement.spec.tsx

@@ -11,17 +11,27 @@ vi.mock("@src/components/ui", () => ({
 	DialogDescription: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
 	DialogHeader: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
 	DialogTitle: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
+	DialogFooter: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
+	Button: ({ children, onClick }: { children: React.ReactNode; onClick?: () => void }) => (
+		<button onClick={onClick}>{children}</button>
+	),
 }))
 
-// Mock the useAppTranslation hook
+// Mock the useAppTranslation hook and Trans component
 vi.mock("@src/i18n/TranslationContext", () => ({
 	useAppTranslation: () => ({
 		t: (key: string, options?: { version: string }) => {
 			if (key === "chat:announcement.title") {
 				return `🎉 Roo Code ${options?.version} Released`
 			}
-			if (key === "chat:announcement.description") {
-				return `Roo Code ${options?.version} brings powerful new features and improvements based on your feedback.`
+			if (key === "chat:announcement.stealthModel.feature") {
+				return "Stealth reasoning model with advanced capabilities"
+			}
+			if (key === "chat:announcement.stealthModel.note") {
+				return "Note: This is an experimental feature"
+			}
+			if (key === "chat:announcement.stealthModel.connectButton") {
+				return "Connect to Roo Code Cloud"
 			}
 			// Return key for other translations not relevant to this test
 			return key
@@ -29,6 +39,34 @@ vi.mock("@src/i18n/TranslationContext", () => ({
 	}),
 }))
 
+// Mock react-i18next Trans component
+vi.mock("react-i18next", () => ({
+	Trans: ({ i18nKey, children }: { i18nKey?: string; children: React.ReactNode }) => {
+		if (i18nKey === "chat:announcement.stealthModel.feature") {
+			return <>Stealth reasoning model with advanced capabilities</>
+		}
+		if (i18nKey === "chat:announcement.stealthModel.selectModel") {
+			return <>Please select the roo/sonic model in settings</>
+		}
+		return <>{children}</>
+	},
+}))
+
+// Mock VSCodeLink
+vi.mock("@vscode/webview-ui-toolkit/react", () => ({
+	VSCodeLink: ({ children, onClick }: { children: React.ReactNode; onClick?: () => void }) => (
+		<a onClick={onClick}>{children}</a>
+	),
+}))
+
+// Mock the useExtensionState hook
+vi.mock("@src/context/ExtensionStateContext", () => ({
+	useExtensionState: () => ({
+		apiConfiguration: null,
+		cloudIsAuthenticated: false,
+	}),
+}))
+
 describe("Announcement", () => {
 	const mockHideAnnouncement = vi.fn()
 	const expectedVersion = Package.version
@@ -36,12 +74,16 @@ describe("Announcement", () => {
 	it("renders the announcement with the version number from package.json", () => {
 		render(<Announcement hideAnnouncement={mockHideAnnouncement} />)
 
-		// Check if the mocked version number is present in the title and description
+		// Check if the mocked version number is present in the title
 		expect(screen.getByText(`🎉 Roo Code ${expectedVersion} Released`)).toBeInTheDocument()
-		expect(
-			screen.getByText(
-				`Roo Code ${expectedVersion} brings powerful new features and improvements based on your feedback.`,
-			),
-		).toBeInTheDocument()
+
+		// Check if the stealth model feature is displayed (using partial match due to bullet point)
+		expect(screen.getByText(/Stealth reasoning model with advanced capabilities/)).toBeInTheDocument()
+
+		// Check if the note is displayed
+		expect(screen.getByText("Note: This is an experimental feature")).toBeInTheDocument()
+
+		// Check if the connect button is displayed (since cloudIsAuthenticated is false in the mock)
+		expect(screen.getByText("Connect to Roo Code Cloud")).toBeInTheDocument()
 	})
 })

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Llançat",
+		"stealthModel": {
+			"feature": "<bold>Model stealth GRATUÏT per temps limitat</bold> - Un model de raonament ultraràpid que destaca en codificació agèntica amb una finestra de context de 262k, 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 <code>roo/sonic</code> del proveïdor Roo Code Cloud a<br/><settingsLink>Configuració</settingsLink> per començar"
+		},
 		"description": "Roo Code {{version}} porta noves funcions potents i millores significatives per millorar el vostre flux de treball de desenvolupament.",
 		"whatsNew": "Novetats",
 		"feature1": "<bold>Cua de Missatges</bold>: Posa en cua múltiples missatges mentre Roo està treballant, permetent-te continuar planificant el teu flux de treball sense interrupcions.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} veröffentlicht",
+		"stealthModel": {
+			"feature": "<bold>Zeitlich begrenztes KOSTENLOSES Stealth-Modell</bold> - Ein blitzschnelles Reasoning-Modell, das sich bei agentic coding mit einem 262k Kontextfenster auszeichnet, verfügbar über Roo Code Cloud.",
+			"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 <code>roo/sonic</code> vom Roo Code Cloud Provider in<br/><settingsLink>Einstellungen</settingsLink> um zu beginnen"
+		},
 		"description": "Roo Code {{version}} bringt mächtige neue Funktionen und bedeutende Verbesserungen, um deinen Entwicklungsworkflow zu verbessern.",
 		"whatsNew": "Was ist neu",
 		"feature1": "<bold>Nachrichten-Warteschlange</bold>: Stelle mehrere Nachrichten in die Warteschlange, während Roo arbeitet, damit du deinen Workflow ohne Unterbrechung weiter planen kannst.",

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

@@ -274,13 +274,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Released",
-		"description": "Roo Code {{version}} brings powerful new features and significant improvements to enhance your development workflow.",
-		"whatsNew": "What's New",
-		"feature1": "<bold>Message Queueing</bold>: Queue multiple messages while Roo is working, allowing you to continue planning your workflow without interruption.",
-		"feature2": "<bold>Custom Slash Commands</bold>: Create personalized slash commands for quick access to frequently used prompts and workflows, with full UI management.",
-		"feature3": "<bold>Enhanced Gemini Tools</bold>: New URL context and Google Search grounding capabilities provide Gemini models with real-time web information and enhanced research abilities.",
-		"hideButton": "Hide announcement",
-		"detailsDiscussLinks": "Get more details and discuss in <discordLink>Discord</discordLink> and <redditLink>Reddit</redditLink> 🚀"
+		"stealthModel": {
+			"feature": "<bold>Limited-time FREE stealth model</bold> - A blazing fast reasoning model that excels at agentic coding with a 262k context window, available through Roo Code Cloud.",
+			"note": "(Note: prompts and completions are logged by the model creator to improve the model)",
+			"connectButton": "Connect to Roo Code Cloud",
+			"selectModel": "Select <code>roo/sonic</code> from the Roo Code Cloud provider in<br/><settingsLink>Settings</settingsLink> to get started"
+		}
 	},
 	"reasoning": {
 		"thinking": "Thinking",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} publicado",
+		"stealthModel": {
+			"feature": "<bold>Modelo stealth GRATUITO por tiempo limitado</bold> - Un modelo de razonamiento ultrarrápido que sobresale en codificación agéntica con una ventana de contexto de 262k, disponible 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 <code>roo/sonic</code> del proveedor Roo Code Cloud en<br/><settingsLink>Configuración</settingsLink> para comenzar"
+		},
 		"description": "Roo Code {{version}} trae poderosas nuevas funcionalidades y mejoras significativas para mejorar tu flujo de trabajo de desarrollo.",
 		"whatsNew": "Novedades",
 		"feature1": "<bold>Cola de Mensajes</bold>: Pon en cola múltiples mensajes mientras Roo está trabajando, permitiéndote continuar planificando tu flujo de trabajo sin interrupciones.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} est sortie",
+		"stealthModel": {
+			"feature": "<bold>Modèle stealth GRATUIT pour une durée limitée</bold> - Un modèle de raisonnement ultra-rapide qui excelle dans le codage agentique avec une fenêtre de contexte de 262k, disponible 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électionne <code>roo/sonic</code> du fournisseur Roo Code Cloud dans<br/><settingsLink>Paramètres</settingsLink> pour commencer"
+		},
 		"description": "Roo Code {{version}} apporte de puissantes nouvelles fonctionnalités et des améliorations significatives pour améliorer ton flux de travail de développement.",
 		"whatsNew": "Quoi de neuf",
 		"feature1": "<bold>File d'Attente de Messages</bold> : Mettez en file d'attente plusieurs messages pendant que Roo travaille, vous permettant de continuer à planifier votre flux de travail sans interruption.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} रिलीज़ हुआ",
+		"stealthModel": {
+			"feature": "<bold>सीमित समय के लिए मुफ़्त स्टेल्थ मॉडल</bold> - एक अत्यंत तेज़ रीज़निंग मॉडल जो 262k कॉन्टेक्स्ट विंडो के साथ एजेंटिक कोडिंग में उत्कृष्ट है, Roo Code Cloud के माध्यम से उपलब्ध।",
+			"note": "(नोट: प्रॉम्प्ट्स और कम्प्लीशन्स मॉडल निर्माता द्वारा लॉग किए जाते हैं और मॉडल को बेहतर बनाने के लिए उपयोग किए जाते हैं)",
+			"connectButton": "Roo Code Cloud से कनेक्ट करें",
+			"selectModel": "<br/><settingsLink>सेटिंग्स</settingsLink> में Roo Code Cloud प्रोवाइडर से <code>roo/sonic</code> चुनें और शुरू करें"
+		},
 		"description": "Roo Code {{version}} आपके विकास वर्कफ़्लो को बेहतर बनाने के लिए शक्तिशाली नई सुविधाएं और महत्वपूर्ण सुधार लेकर आया है।",
 		"whatsNew": "नया क्या है",
 		"feature1": "<bold>संदेश कतार</bold>: Roo के काम करते समय कई संदेशों को कतार में रखें, जिससे आप बिना रुकावट के अपने वर्कफ़्लो की योजना बना सकते हैं।",

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

@@ -277,6 +277,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Dirilis",
+		"stealthModel": {
+			"feature": "<bold>Model stealth GRATIS waktu terbatas</bold> - Model penalaran super cepat yang unggul dalam coding agentik dengan jendela konteks 262k, 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 <code>roo/sonic</code> dari penyedia Roo Code Cloud di<br/><settingsLink>Pengaturan</settingsLink> untuk memulai"
+		},
 		"description": "Roo Code {{version}} menghadirkan fitur-fitur baru yang kuat dan peningkatan signifikan untuk meningkatkan alur kerja pengembangan Anda.",
 		"whatsNew": "Yang Baru",
 		"feature1": "<bold>Antrian Pesan</bold>: Antrikan beberapa pesan saat Roo sedang bekerja, memungkinkan Anda melanjutkan perencanaan alur kerja tanpa gangguan.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Rilasciato Roo Code {{version}}",
+		"stealthModel": {
+			"feature": "<bold>Modello stealth GRATUITO per tempo limitato</bold> - Un modello di ragionamento velocissimo che eccelle nella programmazione agentica con una finestra di contesto di 262k, disponibile tramite Roo Code Cloud.",
+			"note": "(Nota: i prompt e le completazioni sono registrati dal creatore del modello e utilizzati per migliorarlo)",
+			"connectButton": "Connetti a Roo Code Cloud",
+			"selectModel": "Seleziona <code>roo/sonic</code> dal provider Roo Code Cloud in<br/><settingsLink>Impostazioni</settingsLink> per iniziare"
+		},
 		"description": "Roo Code {{version}} porta nuove potenti funzionalità e miglioramenti significativi per potenziare il tuo flusso di lavoro di sviluppo.",
 		"whatsNew": "Novità",
 		"feature1": "<bold>Coda Messaggi</bold>: Metti in coda più messaggi mentre Roo sta lavorando, permettendoti di continuare a pianificare il tuo flusso di lavoro senza interruzioni.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} リリース",
+		"stealthModel": {
+			"feature": "<bold>期間限定無料ステルスモデル</bold> - 262kコンテキストウィンドウを持つ、エージェンティックコーディングに優れた超高速推論モデル、Roo Code Cloud経由で利用可能。",
+			"note": "(注意:プロンプトと補完はモデル作成者によってログに記録され、モデルの改善に使用されます)",
+			"connectButton": "Roo Code Cloudに接続",
+			"selectModel": "<br/><settingsLink>設定</settingsLink>でRoo Code Cloudプロバイダーから<code>roo/sonic</code>を選択して開始"
+		},
 		"description": "Roo Code {{version}}は、開発ワークフローを向上させる強力な新機能と重要な改善をもたらします。",
 		"whatsNew": "新機能",
 		"feature1": "<bold>メッセージキュー</bold>: Rooが作業中に複数のメッセージをキューに入れ、ワークフローの計画を中断することなく続行できます。",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 출시",
+		"stealthModel": {
+			"feature": "<bold>기간 한정 무료 스텔스 모델</bold> - 262k 컨텍스트 윈도우를 가진 에이전틱 코딩에 뛰어난 초고속 추론 모델, Roo Code Cloud를 통해 이용 가능.",
+			"note": "(참고: 프롬프트와 완성은 모델 제작자에 의해 기록되고 모델 개선에 사용됩니다)",
+			"connectButton": "Roo Code Cloud에 연결",
+			"selectModel": "<br/><settingsLink>설정</settingsLink>에서 Roo Code Cloud 제공업체의 <code>roo/sonic</code>을 선택하여 시작"
+		},
 		"description": "Roo Code {{version}}은 개발 워크플로우를 향상시키는 강력한 새 기능과 중요한 개선사항을 제공합니다.",
 		"whatsNew": "새로운 기능",
 		"feature1": "<bold>메시지 대기열</bold>: Roo가 작업하는 동안 여러 메시지를 대기열에 넣어 워크플로우 계획을 중단 없이 계속할 수 있습니다.",

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

@@ -250,6 +250,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} uitgebracht",
+		"stealthModel": {
+			"feature": "<bold>Beperkt tijd GRATIS stealth model</bold> - Een bliksemsnelle redeneermodel die uitblinkt in agentische programmering met een 262k contextvenster, 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 <code>roo/sonic</code> van de Roo Code Cloud provider in<br/><settingsLink>Instellingen</settingsLink> om te beginnen"
+		},
 		"description": "Roo Code {{version}} brengt krachtige nieuwe functies en significante verbeteringen om je ontwikkelingsworkflow te verbeteren.",
 		"whatsNew": "Wat is er nieuw",
 		"feature1": "<bold>Berichtenwachtrij</bold>: Zet meerdere berichten in de wachtrij terwijl Roo werkt, zodat je je workflow kunt blijven plannen zonder onderbreking.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} wydany",
+		"stealthModel": {
+			"feature": "<bold>Darmowy model stealth na ograniczony czas</bold> - Błyskawiczny model rozumowania, który doskonale radzi sobie z kodowaniem agentowym z oknem kontekstu 262k, 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 <code>roo/sonic</code> od dostawcy Roo Code Cloud w<br/><settingsLink>Ustawieniach</settingsLink> aby rozpocząć"
+		},
 		"description": "Roo Code {{version}} wprowadza potężne nowe funkcje i znaczące ulepszenia, aby ulepszyć Twój przepływ pracy programistycznej.",
 		"whatsNew": "Co nowego",
 		"feature1": "<bold>Kolejka Wiadomości</bold>: Umieszczaj wiele wiadomości w kolejce podczas pracy Roo, pozwalając na kontynuowanie planowania przepływu pracy bez przerw.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Lançado",
+		"stealthModel": {
+			"feature": "<bold>Modelo stealth GRATUITO por tempo limitado</bold> - Um modelo de raciocínio ultrarrápido que se destaca em codificação agêntica com uma janela de contexto de 262k, disponí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 <code>roo/sonic</code> do provedor Roo Code Cloud em<br/><settingsLink>Configurações</settingsLink> para começar"
+		},
 		"description": "Roo Code {{version}} traz novos recursos poderosos e melhorias significativas para aprimorar seu fluxo de trabalho de desenvolvimento.",
 		"whatsNew": "O que há de novo",
 		"feature1": "<bold>Fila de Mensagens</bold>: Coloque várias mensagens na fila enquanto o Roo está trabalhando, permitindo que você continue planejando seu fluxo de trabalho sem interrupção.",

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

@@ -250,6 +250,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Выпущен Roo Code {{version}}",
+		"stealthModel": {
+			"feature": "<bold>Бесплатная скрытая модель на ограниченное время</bold> - Сверхбыстрая модель рассуждений, которая превосходно справляется с агентным программированием с окном контекста 262k, доступна через Roo Code Cloud.",
+			"note": "(Примечание: промпты и дополнения записываются создателем модели и используются для её улучшения)",
+			"connectButton": "Подключиться к Roo Code Cloud",
+			"selectModel": "Выберите <code>roo/sonic</code> от провайдера Roo Code Cloud в<br/><settingsLink>Настройках</settingsLink> для начала"
+		},
 		"description": "Roo Code {{version}} приносит мощные новые функции и значительные улучшения для совершенствования вашего рабочего процесса разработки.",
 		"whatsNew": "Что нового",
 		"feature1": "<bold>Очередь сообщений</bold>: Ставьте несколько сообщений в очередь, пока Roo работает, позволяя вам продолжать планировать рабочий процесс без прерывания.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Yayınlandı",
+		"stealthModel": {
+			"feature": "<bold>Sınırlı süre ÜCRETSİZ gizli model</bold> - 262k bağlam penceresi ile ajantik kodlamada mükemmel olan çok hızlı akıl yürütme 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": "<br/><settingsLink>Ayarlar</settingsLink>'da Roo Code Cloud sağlayıcısından <code>roo/sonic</code>'i seç ve başla"
+		},
 		"description": "Roo Code {{version}}, geliştirme iş akışınızı geliştirmek için güçlü yeni özellikler ve önemli iyileştirmeler getiriyor.",
 		"whatsNew": "Yenilikler",
 		"feature1": "<bold>Mesaj Kuyruğu</bold>: Roo çalışırken birden fazla mesajı kuyruğa alın, iş akışınızı kesintisiz olarak planlamaya devam etmenizi sağlar.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} Đã phát hành",
+		"stealthModel": {
+			"feature": "<bold>Mô hình stealth MIỄN PHÍ có thời hạn</bold> - Một mô hình lý luận cực nhanh xuất sắc trong lập trình agentic với cửa sổ ngữ cảnh 262k, 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 <code>roo/sonic</code> từ nhà cung cấp Roo Code Cloud trong<br/><settingsLink>Cài đặt</settingsLink> để bắt đầu"
+		},
 		"description": "Roo Code {{version}} mang đến các tính năng mạnh mẽ mới và cải tiến đáng kể để nâng cao quy trình phát triển của bạn.",
 		"whatsNew": "Có gì mới",
 		"feature1": "<bold>Hàng đợi Tin nhắn</bold>: Xếp hàng nhiều tin nhắn trong khi Roo đang làm việc, cho phép bạn tiếp tục lập kế hoạch quy trình làm việc mà không bị gián đoạn.",

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

@@ -265,6 +265,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 已发布",
+		"stealthModel": {
+			"feature": "<bold>限时免费隐形模型</bold> - 一个在代理编程方面表现出色的超快推理模型,拥有 262k 上下文窗口,通过 Roo Code Cloud 提供。",
+			"note": "(注意:提示词和补全内容会被模型创建者记录并用于改进模型)",
+			"connectButton": "连接到 Roo Code Cloud",
+			"selectModel": "在<br/><settingsLink>设置</settingsLink>中从 Roo Code Cloud 提供商选择 <code>roo/sonic</code> 开始使用"
+		},
 		"description": "Roo Code {{version}} 带来强大的新功能和重大改进,提升您的开发工作流程。",
 		"whatsNew": "新特性",
 		"feature1": "<bold>消息队列</bold>: 在 Roo 工作时将多个消息排队,让你可以不间断地继续规划工作流程。",

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

@@ -274,6 +274,12 @@
 	},
 	"announcement": {
 		"title": "🎉 Roo Code {{version}} 已發布",
+		"stealthModel": {
+			"feature": "<bold>限時免費隱形模型</bold> - 一個在代理程式編程方面表現出色的超快推理模型,擁有 262k 上下文視窗,透過 Roo Code Cloud 提供。",
+			"note": "(注意:提示和完成會被模型創建者記錄並用於改進模型)",
+			"connectButton": "連接到 Roo Code Cloud",
+			"selectModel": "在<br/><settingsLink>設定</settingsLink>中從 Roo Code Cloud 提供商選擇 <code>roo/sonic</code> 開始使用"
+		},
 		"description": "Roo Code {{version}} 帶來強大的新功能和重大改進,提升您的開發工作流程。",
 		"whatsNew": "新功能",
 		"feature1": "<bold>訊息佇列</bold>:在 Roo 工作時將多個訊息排入佇列,讓您可以不間斷地繼續規劃工作流程。",