Просмотр исходного кода

ux: Home screen visuals (#9057)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Bruno Bergher 1 месяц назад
Родитель
Сommit
7bb7b75a0f
65 измененных файлов с 306 добавлено и 460 удалено
  1. 2 2
      webview-ui/src/components/chat/ChatTextArea.tsx
  2. 24 58
      webview-ui/src/components/chat/ChatView.tsx
  3. 5 3
      webview-ui/src/components/chat/TaskHeader.tsx
  4. 9 28
      webview-ui/src/components/chat/__tests__/ChatView.spec.tsx
  5. 11 8
      webview-ui/src/components/history/HistoryPreview.tsx
  6. 2 2
      webview-ui/src/components/history/TaskItem.tsx
  7. 2 2
      webview-ui/src/components/history/TaskItemFooter.tsx
  8. 4 4
      webview-ui/src/components/history/__tests__/HistoryPreview.spec.tsx
  9. 1 1
      webview-ui/src/components/history/__tests__/TaskItem.spec.tsx
  10. 2 2
      webview-ui/src/components/welcome/RooHero.tsx
  11. 26 23
      webview-ui/src/components/welcome/RooTips.tsx
  12. 10 16
      webview-ui/src/i18n/locales/ca/chat.json
  13. 1 1
      webview-ui/src/i18n/locales/ca/cloud.json
  14. 1 1
      webview-ui/src/i18n/locales/ca/history.json
  15. 10 16
      webview-ui/src/i18n/locales/de/chat.json
  16. 1 1
      webview-ui/src/i18n/locales/de/cloud.json
  17. 1 1
      webview-ui/src/i18n/locales/de/history.json
  18. 9 16
      webview-ui/src/i18n/locales/en/chat.json
  19. 1 1
      webview-ui/src/i18n/locales/en/cloud.json
  20. 1 1
      webview-ui/src/i18n/locales/en/history.json
  21. 10 16
      webview-ui/src/i18n/locales/es/chat.json
  22. 1 1
      webview-ui/src/i18n/locales/es/cloud.json
  23. 1 1
      webview-ui/src/i18n/locales/es/history.json
  24. 10 16
      webview-ui/src/i18n/locales/fr/chat.json
  25. 1 1
      webview-ui/src/i18n/locales/fr/cloud.json
  26. 1 1
      webview-ui/src/i18n/locales/fr/history.json
  27. 10 16
      webview-ui/src/i18n/locales/hi/chat.json
  28. 1 1
      webview-ui/src/i18n/locales/hi/cloud.json
  29. 1 1
      webview-ui/src/i18n/locales/hi/history.json
  30. 11 17
      webview-ui/src/i18n/locales/id/chat.json
  31. 1 1
      webview-ui/src/i18n/locales/id/cloud.json
  32. 1 1
      webview-ui/src/i18n/locales/id/history.json
  33. 10 16
      webview-ui/src/i18n/locales/it/chat.json
  34. 1 1
      webview-ui/src/i18n/locales/it/cloud.json
  35. 1 1
      webview-ui/src/i18n/locales/it/history.json
  36. 10 16
      webview-ui/src/i18n/locales/ja/chat.json
  37. 1 1
      webview-ui/src/i18n/locales/ja/cloud.json
  38. 1 1
      webview-ui/src/i18n/locales/ja/history.json
  39. 11 17
      webview-ui/src/i18n/locales/ko/chat.json
  40. 1 1
      webview-ui/src/i18n/locales/ko/cloud.json
  41. 1 1
      webview-ui/src/i18n/locales/ko/history.json
  42. 9 15
      webview-ui/src/i18n/locales/nl/chat.json
  43. 1 1
      webview-ui/src/i18n/locales/nl/cloud.json
  44. 1 1
      webview-ui/src/i18n/locales/nl/history.json
  45. 10 16
      webview-ui/src/i18n/locales/pl/chat.json
  46. 1 1
      webview-ui/src/i18n/locales/pl/cloud.json
  47. 1 1
      webview-ui/src/i18n/locales/pl/history.json
  48. 10 16
      webview-ui/src/i18n/locales/pt-BR/chat.json
  49. 1 1
      webview-ui/src/i18n/locales/pt-BR/cloud.json
  50. 1 1
      webview-ui/src/i18n/locales/pt-BR/history.json
  51. 10 16
      webview-ui/src/i18n/locales/ru/chat.json
  52. 1 1
      webview-ui/src/i18n/locales/ru/cloud.json
  53. 1 1
      webview-ui/src/i18n/locales/ru/history.json
  54. 11 17
      webview-ui/src/i18n/locales/tr/chat.json
  55. 1 1
      webview-ui/src/i18n/locales/tr/cloud.json
  56. 1 1
      webview-ui/src/i18n/locales/tr/history.json
  57. 11 17
      webview-ui/src/i18n/locales/vi/chat.json
  58. 1 1
      webview-ui/src/i18n/locales/vi/cloud.json
  59. 1 1
      webview-ui/src/i18n/locales/vi/history.json
  60. 11 17
      webview-ui/src/i18n/locales/zh-CN/chat.json
  61. 1 1
      webview-ui/src/i18n/locales/zh-CN/cloud.json
  62. 1 1
      webview-ui/src/i18n/locales/zh-CN/history.json
  63. 9 15
      webview-ui/src/i18n/locales/zh-TW/chat.json
  64. 1 1
      webview-ui/src/i18n/locales/zh-TW/cloud.json
  65. 1 1
      webview-ui/src/i18n/locales/zh-TW/history.json

+ 2 - 2
webview-ui/src/components/chat/ChatTextArea.tsx

@@ -979,7 +979,7 @@ export const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(
 								"flex-col-reverse",
 								"min-h-0",
 								"overflow-hidden",
-								"rounded",
+								"rounded-lg",
 							)}>
 							<div
 								ref={highlightLayerRef}
@@ -1005,7 +1005,7 @@ export const ChatTextArea = forwardRef<HTMLTextAreaElement, ChatTextAreaProps>(
 									isEditMode ? "pr-20" : "pr-9",
 									"z-10",
 									"forced-color-adjust-none",
-									"rounded",
+									"rounded-lg",
 								)}
 								style={{
 									color: "transparent",

+ 24 - 58
webview-ui/src/components/chat/ChatView.tsx

@@ -44,7 +44,6 @@ import { CloudUpsellDialog } from "@src/components/cloud/CloudUpsellDialog"
 
 import TelemetryBanner from "../common/TelemetryBanner"
 import VersionIndicator from "../common/VersionIndicator"
-import { useTaskSearch } from "../history/useTaskSearch"
 import HistoryPreview from "../history/HistoryPreview"
 import Announcement from "./Announcement"
 import BrowserSessionRow from "./BrowserSessionRow"
@@ -118,7 +117,6 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
 		customModes,
 		telemetrySetting,
 		hasSystemPromptOverride,
-		historyPreviewCollapsed, // Added historyPreviewCollapsed
 		soundEnabled,
 		soundVolume,
 		cloudIsAuthenticated,
@@ -131,20 +129,6 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
 		messagesRef.current = messages
 	}, [messages])
 
-	const { tasks } = useTaskSearch()
-
-	// Initialize expanded state based on the persisted setting (default to expanded if undefined)
-	const [isExpanded, setIsExpanded] = useState(
-		historyPreviewCollapsed === undefined ? true : !historyPreviewCollapsed,
-	)
-
-	const toggleExpanded = useCallback(() => {
-		const newState = !isExpanded
-		setIsExpanded(newState)
-		// Send message to extension to persist the new collapsed state
-		vscode.postMessage({ type: "setHistoryPreviewCollapsed", bool: !newState })
-	}, [isExpanded])
-
 	// Leaving this less safe version here since if the first message is not a
 	// task, then the extension is in a bad state and needs to be debugged (see
 	// Cline.abort).
@@ -1810,53 +1794,35 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
 					)}
 				</>
 			) : (
-				<div className="flex-1 min-h-0 overflow-y-auto flex flex-col gap-4 relative">
-					{/* Moved Task Bar Header Here */}
-					{tasks.length !== 0 && (
-						<div className="flex text-vscode-descriptionForeground w-full mx-auto px-5 pt-3">
-							<div className="flex items-center gap-1 cursor-pointer" onClick={toggleExpanded}>
-								{tasks.length < 10 && (
-									<span className={`font-medium text-xs `}>{t("history:recentTasks")}</span>
-								)}
-								<span
-									className={`codicon  ${isExpanded ? "codicon-eye" : "codicon-eye-closed"} scale-90`}
-								/>
-							</div>
-						</div>
-					)}
-					<div
-						className={` w-full flex flex-col gap-4 m-auto ${isExpanded && tasks.length > 0 ? "mt-0" : ""} px-3.5 min-[370px]:px-10 pt-5 transition-all duration-300`}>
-						{/* Version indicator in top-right corner - only on welcome screen */}
+				<div className="flex flex-col h-full justify-center p-6 min-h-0 overflow-y-auto gap-4 relative">
+					<div className="flex flex-col items-start gap-2 justify-center h-full min-[400px]:px-6">
 						<VersionIndicator
 							onClick={() => setShowAnnouncementModal(true)}
 							className="absolute top-2 right-3 z-10"
 						/>
-
-						<RooHero />
-
-						<div className="mb-2.5">
-							{cloudIsAuthenticated || taskHistory.length < 4 ? (
-								<RooTips />
-							) : (
-								<>
-									<DismissibleUpsell
-										upsellId="taskList"
-										icon={<Cloud className="size-4 mt-0.5 shrink-0" />}
-										onClick={() => openUpsell()}
-										dismissOnClick={false}
-										className="bg-vscode-editor-background p-4 !text-base">
-										<Trans
-											i18nKey="cloud:upsell.taskList"
-											components={{
-												learnMoreLink: <VSCodeLink href="#" />,
-											}}
-										/>
-									</DismissibleUpsell>
-								</>
-							)}
+						<div className="flex flex-col gap-4 w-full">
+							<RooHero />
+							{/* Show RooTips when authenticated or when user is new */}
+							{taskHistory.length < 6 && <RooTips />}
+							{/* Everyone should see their task history if any */}
+							{taskHistory.length > 0 && <HistoryPreview />}
 						</div>
-						{/* Show the task history preview if expanded and tasks exist */}
-						{taskHistory.length > 0 && isExpanded && <HistoryPreview />}
+						{/* Logged out users should see a one-time upsell, but not for brand new users */}
+						{!cloudIsAuthenticated && taskHistory.length >= 6 && (
+							<DismissibleUpsell
+								upsellId="taskList2"
+								icon={<Cloud className="size-5 mt-0.5 shrink-0" />}
+								onClick={() => openUpsell()}
+								dismissOnClick={false}
+								className="!bg-vscode-editor-background mt-6 border-border rounded-xl pl-4 pr-3 py-3 !text-base">
+								<Trans
+									i18nKey="cloud:upsell.taskList"
+									components={{
+										learnMoreLink: <VSCodeLink href="#" />,
+									}}
+								/>
+							</DismissibleUpsell>
+						)}
 					</div>
 				</div>
 			)}

+ 5 - 3
webview-ui/src/components/chat/TaskHeader.tsx

@@ -112,10 +112,10 @@ const TaskHeader = ({
 			)}
 			<div
 				className={cn(
-					"px-2.5 pt-2.5 pb-2 flex flex-col gap-1.5 relative z-1 cursor-pointer",
+					"px-3 pt-2.5 pb-2 flex flex-col gap-1.5 relative z-1 cursor-pointer",
 					"bg-vscode-input-background hover:bg-vscode-input-background/90",
 					"text-vscode-foreground/80 hover:text-vscode-foreground",
-					"shadow-sm shadow-black/30 rounded-md",
+					"shadow-sm shadow-black/30 rounded-xl",
 					hasTodos && "border-b-0",
 				)}
 				onClick={(e) => {
@@ -163,7 +163,9 @@ const TaskHeader = ({
 					</div>
 				</div>
 				{!isTaskExpanded && contextWindow > 0 && (
-					<div className="flex items-center gap-2 text-sm" onClick={(e) => e.stopPropagation()}>
+					<div
+						className="flex items-center gap-2 text-sm text-muted-foreground/70"
+						onClick={(e) => e.stopPropagation()}>
 						<StandardTooltip
 							content={
 								<div className="space-y-1">

+ 9 - 28
webview-ui/src/components/chat/__tests__/ChatView.spec.tsx

@@ -1319,39 +1319,20 @@ describe("ChatView - DismissibleUpsell Display Tests", () => {
 		expect(queryByTestId("dismissible-upsell")).not.toBeInTheDocument()
 	})
 
-	it("shows DismissibleUpsell when user is not authenticated and has run 4 or more tasks", async () => {
+	it("shows DismissibleUpsell when user is not authenticated and has run 6 or more tasks", async () => {
 		const { getByTestId } = renderChatView()
 
 		// Hydrate state with user not authenticated and 4 tasks
 		mockPostMessage({
 			cloudIsAuthenticated: false,
 			taskHistory: [
-				{ id: "1", ts: Date.now() - 3000 },
-				{ id: "2", ts: Date.now() - 2000 },
-				{ id: "3", ts: Date.now() - 1000 },
-				{ id: "4", ts: Date.now() },
-			],
-			clineMessages: [], // No active task
-		})
-
-		// Wait for component to render and show DismissibleUpsell
-		await waitFor(() => {
-			expect(getByTestId("dismissible-upsell")).toBeInTheDocument()
-		})
-	})
-
-	it("shows DismissibleUpsell when user is not authenticated and has run 5 tasks", async () => {
-		const { getByTestId } = renderChatView()
-
-		// Hydrate state with user not authenticated and 5 tasks
-		mockPostMessage({
-			cloudIsAuthenticated: false,
-			taskHistory: [
-				{ id: "1", ts: Date.now() - 4000 },
-				{ id: "2", ts: Date.now() - 3000 },
-				{ id: "3", ts: Date.now() - 2000 },
-				{ id: "4", ts: Date.now() - 1000 },
-				{ id: "5", ts: Date.now() },
+				{ id: "1", ts: Date.now() - 6000 },
+				{ id: "2", ts: Date.now() - 5000 },
+				{ id: "3", ts: Date.now() - 4000 },
+				{ id: "4", ts: Date.now() - 3000 },
+				{ id: "5", ts: Date.now() - 2000 },
+				{ id: "6", ts: Date.now() - 1000 },
+				{ id: "7", ts: Date.now() },
 			],
 			clineMessages: [], // No active task
 		})
@@ -1415,7 +1396,7 @@ describe("ChatView - DismissibleUpsell Display Tests", () => {
 		expect(getByTestId("roo-tips")).toBeInTheDocument()
 	})
 
-	it("shows RooTips when user has fewer than 4 tasks (instead of DismissibleUpsell)", () => {
+	it("shows RooTips when user has fewer than 6 tasks (instead of DismissibleUpsell)", () => {
 		const { queryByTestId, getByTestId } = renderChatView()
 
 		// Hydrate state with user not authenticated but fewer than 4 tasks

+ 11 - 8
webview-ui/src/components/history/HistoryPreview.tsx

@@ -15,18 +15,21 @@ const HistoryPreview = () => {
 	}
 
 	return (
-		<div className="flex flex-col gap-3">
+		<div className="flex flex-col gap-1">
+			<div className="flex flex-wrap items-center justify-between mt-4 mb-2">
+				<h2 className="font-semibold text-lg grow m-0">{t("history:recentTasks")}</h2>
+				<button
+					onClick={handleViewAllHistory}
+					className="text-base text-vscode-descriptionForeground hover:text-vscode-textLink-foreground transition-colors cursor-pointer"
+					aria-label={t("history:viewAllHistory")}>
+					{t("history:viewAllHistory")}
+				</button>
+			</div>
 			{tasks.length !== 0 && (
 				<>
-					{tasks.slice(0, 3).map((item) => (
+					{tasks.slice(0, 4).map((item) => (
 						<TaskItem key={item.id} item={item} variant="compact" />
 					))}
-					<button
-						onClick={handleViewAllHistory}
-						className="text-base text-vscode-descriptionForeground hover:text-vscode-textLink-foreground transition-colors cursor-pointer text-center w-full"
-						aria-label={t("history:viewAllHistory")}>
-						{t("history:viewAllHistory")}
-					</button>
 				</>
 			)}
 		</div>

+ 2 - 2
webview-ui/src/components/history/TaskItem.tsx

@@ -47,7 +47,7 @@ const TaskItem = ({
 			key={item.id}
 			data-testid={`task-item-${item.id}`}
 			className={cn(
-				"cursor-pointer group bg-vscode-editor-background rounded relative overflow-hidden border border-transparent hover:bg-vscode-list-hoverBackground transition-colors",
+				"cursor-pointer group bg-vscode-editor-background rounded-xl relative overflow-hidden border border-transparent hover:bg-vscode-editor-foreground/10 transition-colors",
 				className,
 			)}
 			onClick={handleClick}>
@@ -70,7 +70,7 @@ const TaskItem = ({
 				<div className="flex-1 min-w-0">
 					<div
 						className={cn(
-							"overflow-hidden whitespace-pre-wrap text-vscode-foreground text-ellipsis line-clamp-2",
+							"overflow-hidden whitespace-pre-wrap font-light text-vscode-foreground text-ellipsis line-clamp-3",
 							{
 								"text-base": !isCompact,
 							},

+ 2 - 2
webview-ui/src/components/history/TaskItemFooter.tsx

@@ -16,7 +16,7 @@ export interface TaskItemFooterProps {
 const TaskItemFooter: React.FC<TaskItemFooterProps> = ({ item, variant, isSelectionMode = false, onDelete }) => {
 	return (
 		<div className="text-xs text-vscode-descriptionForeground flex justify-between items-center">
-			<div className="flex gap-2 items-center text-vscode-descriptionForeground/60">
+			<div className="flex gap-1 items-center text-vscode-descriptionForeground/60">
 				{/* Datetime with time-ago format */}
 				<StandardTooltip content={new Date(item.ts).toLocaleString()}>
 					<span className="first-letter:uppercase">{formatTimeAgo(item.ts)}</span>
@@ -32,7 +32,7 @@ const TaskItemFooter: React.FC<TaskItemFooterProps> = ({ item, variant, isSelect
 
 			{/* Action Buttons for non-compact view */}
 			{!isSelectionMode && (
-				<div className="flex flex-row gap-0 items-center text-vscode-descriptionForeground/60 hover:text-vscode-descriptionForeground">
+				<div className="flex flex-row gap-0 -mx-2 items-center text-vscode-descriptionForeground/60 hover:text-vscode-descriptionForeground">
 					<CopyButton itemTask={item.task} />
 					{variant === "full" && <ExportButton itemId={item.id} />}
 					{onDelete && <DeleteButton itemId={item.id} onDelete={onDelete} />}

+ 4 - 4
webview-ui/src/components/history/__tests__/HistoryPreview.spec.tsx

@@ -100,11 +100,11 @@ describe("HistoryPreview", () => {
 		const { container } = render(<HistoryPreview />)
 
 		// Should render the container but no task items
-		expect(container.firstChild).toHaveClass("flex", "flex-col", "gap-3")
+		expect(container.firstChild).toHaveClass("flex", "flex-col", "gap-1")
 		expect(screen.queryByTestId(/task-item-/)).not.toBeInTheDocument()
 	})
 
-	it("renders up to 3 tasks when tasks are available", () => {
+	it("renders up to 4 tasks when tasks are available", () => {
 		mockUseTaskSearch.mockReturnValue({
 			tasks: mockTasks,
 			searchQuery: "",
@@ -123,7 +123,7 @@ describe("HistoryPreview", () => {
 		expect(screen.getByTestId("task-item-task-1")).toBeInTheDocument()
 		expect(screen.getByTestId("task-item-task-2")).toBeInTheDocument()
 		expect(screen.getByTestId("task-item-task-3")).toBeInTheDocument()
-		expect(screen.queryByTestId("task-item-task-4")).not.toBeInTheDocument()
+		expect(screen.getByTestId("task-item-task-4")).toBeInTheDocument()
 		expect(screen.queryByTestId("task-item-task-5")).not.toBeInTheDocument()
 		expect(screen.queryByTestId("task-item-task-6")).not.toBeInTheDocument()
 	})
@@ -226,6 +226,6 @@ describe("HistoryPreview", () => {
 
 		const { container } = render(<HistoryPreview />)
 
-		expect(container.firstChild).toHaveClass("flex", "flex-col", "gap-3")
+		expect(container.firstChild).toHaveClass("flex", "flex-col", "gap-1")
 	})
 })

+ 1 - 1
webview-ui/src/components/history/__tests__/TaskItem.spec.tsx

@@ -107,6 +107,6 @@ describe("TaskItem", () => {
 		)
 
 		const taskItem = screen.getByTestId("task-item-1")
-		expect(taskItem).toHaveClass("hover:bg-vscode-list-hoverBackground")
+		expect(taskItem).toHaveClass("hover:bg-vscode-editor-foreground/10")
 	})
 })

+ 2 - 2
webview-ui/src/components/welcome/RooHero.tsx

@@ -7,7 +7,7 @@ const RooHero = () => {
 	})
 
 	return (
-		<div className="flex flex-col items-center justify-center pb-4 forced-color-adjust-none">
+		<div className="pb-4 forced-color-adjust-none">
 			<div
 				style={{
 					backgroundColor: "var(--vscode-foreground)",
@@ -18,7 +18,7 @@ const RooHero = () => {
 					maskRepeat: "no-repeat",
 					maskSize: "contain",
 				}}
-				className="mx-auto">
+				className="mx-auto hover:animate-bounce">
 				<img src={imagesBaseUri + "/roo-logo.svg"} alt="Roo logo" className="h-8 opacity-0" />
 			</div>
 		</div>

+ 26 - 23
webview-ui/src/components/welcome/RooTips.tsx

@@ -3,19 +3,20 @@ import { useTranslation } from "react-i18next"
 import { Trans } from "react-i18next"
 
 import { buildDocLink } from "@src/utils/docLinks"
+import { ReplaceAll, Users } from "lucide-react"
 
 const tips = [
 	{
-		icon: "codicon-account",
+		icon: <Users className="size-4 shrink-0 mt-0.5" />,
 		href: buildDocLink("basic-usage/using-modes", "tips"),
 		titleKey: "rooTips.customizableModes.title",
 		descriptionKey: "rooTips.customizableModes.description",
 	},
 	{
-		icon: "codicon-list-tree",
-		href: buildDocLink("features/boomerang-tasks", "tips"),
-		titleKey: "rooTips.boomerangTasks.title",
-		descriptionKey: "rooTips.boomerangTasks.description",
+		icon: <ReplaceAll className="size-4 shrink-0 mt-0.5" />,
+		href: buildDocLink("getting-started/connecting-api-provider", "tips"),
+		titleKey: "rooTips.modelAgnostic.title",
+		descriptionKey: "rooTips.modelAgnostic.description",
 	},
 ]
 
@@ -23,27 +24,16 @@ const RooTips = () => {
 	const { t } = useTranslation("chat")
 
 	return (
-		<div>
-			<p className="text-vscode-editor-foreground leading-tight font-vscode-font-family text-center text-balance max-w-[380px] mx-auto my-0">
-				<Trans
-					i18nKey="chat:about"
-					components={{
-						DocsLink: (
-							<a href={buildDocLink("", "welcome")} target="_blank" rel="noopener noreferrer">
-								the docs
-							</a>
-						),
-					}}
-				/>
+		<div className="flex flex-col gap-2 mb-4 max-w-[500px] text-vscode-descriptionForeground">
+			<p className="my-0 pr-2">
+				<Trans i18nKey="chat:about" />
 			</p>
-			<div className="flex flex-col items-center justify-center px-5 py-2.5 gap-4">
+			<div className="gap-4">
 				{tips.map((tip) => (
-					<div
-						key={tip.titleKey}
-						className="flex items-center gap-2 text-vscode-editor-foreground font-vscode max-w-[250px]">
-						<span className={`codicon ${tip.icon}`}></span>
+					<div key={tip.titleKey} className="flex items-start gap-2 mt-2 mr-6 leading-relaxed">
+						{tip.icon}
 						<span>
-							<VSCodeLink className="forced-color-adjust-none" href={tip.href}>
+							<VSCodeLink className="text-muted-foreground underline" href={tip.href}>
 								{t(tip.titleKey)}
 							</VSCodeLink>
 							: {t(tip.descriptionKey)}
@@ -51,6 +41,19 @@ const RooTips = () => {
 					</div>
 				))}
 			</div>
+			<p className="my-0 pr-8">
+				<Trans
+					i18nKey="chat:docs"
+					components={{
+						DocsLink: (
+							<VSCodeLink
+								className="text-muted-foreground underline"
+								href={buildDocLink("", "welcome")}
+							/>
+						),
+					}}
+				/>
+			</p>
 		</div>
 	)
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Cancel·la l'operació actual"
 	},
 	"scrollToBottom": "Desplaça't al final del xat",
-	"about": "Genera, refactoritza i depura codi amb l'ajuda de la IA. Consulta la nostra <DocsLink>documentació</DocsLink> per obtenir més informació.",
-	"onboarding": "<strong> La vostra llista de tasques en aquest espai de treball està buida. </strong> Comença escrivint una tasca a continuació. \nNo esteu segur per on començar? \nMés informació sobre què pot fer Roo als documents.",
+	"about": "Roo Code és tot un equip de desenvolupament d'IA al teu editor.",
+	"docs": "Consulta els nostres <DocsLink>documents</DocsLink> per a més informació.",
+	"onboarding": "La teva llista de tasques en aquest espai de treball està buida.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orquestració de Tasques",
-			"description": "Divideix les tasques en parts més petites i manejables."
-		},
-		"stickyModels": {
-			"title": "Modes persistents",
-			"description": "Cada mode recorda el vostre darrer model utilitzat"
-		},
-		"tools": {
-			"title": "Eines",
-			"description": "Permet que la IA resolgui problemes navegant per la web, executant ordres i molt més."
-		},
 		"customizableModes": {
 			"title": "Modes personalitzables",
-			"description": "Personalitats especialitzades amb comportaments propis i models assignats"
+			"description": "Persones especialitzades que es mantenen en la tasca i compleixen."
+		},
+		"modelAgnostic": {
+			"title": "Porta el teu propi model",
+			"description": "Fes servir la teva pròpia clau de proveïdor o fins i tot executa inferència local — sense sobrepreus, sense bloquejos, sense restriccions"
 		}
 	},
 	"selectMode": "Selecciona el mode d'interacció",
@@ -429,5 +422,6 @@
 		"problems": "Problemes",
 		"terminal": "Terminal",
 		"url": "Enganxa la URL per obtenir-ne el contingut"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Donant-li una mica d'independència a Roo? Controla'l des de qualsevol lloc amb Roo Code Cloud. <learnMoreLink>Més informació</learnMoreLink>.",
 		"longRunningTask": "Això pot trigar una estona. Continua des de qualsevol lloc amb Cloud.",
-		"taskList": "Roo Code Cloud ja és aquí: segueix i controla les teves tasques des de qualsevol lloc. <learnMoreLink>Més informació</learnMoreLink>."
+		"taskList": "T'agrada Roo? Fes una ullada a Roo Code Cloud: segueix i controla les teves tasques des de qualsevol lloc, executa agents autònoms al núvol, obtén estadístiques d'ús i més. <learnMoreLink>Aprèn-ne més</learnMoreLink>."
 	}
 }

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

@@ -48,5 +48,5 @@
 		"mostTokens": "Més tokens",
 		"mostRelevant": "Més rellevants"
 	},
-	"viewAllHistory": "Veure totes les tasques"
+	"viewAllHistory": "Veure-ho tot"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Aktuelle Operation abbrechen"
 	},
 	"scrollToBottom": "Zum Chat-Ende scrollen",
-	"about": "Generiere, überarbeite und debugge Code mit KI-Unterstützung. Weitere Informationen findest du in unserer <DocsLink>Dokumentation</DocsLink>.",
-	"onboarding": "<strong>Deine Aufgabenliste in diesem Arbeitsbereich ist leer.</strong> Beginne mit der Eingabe einer Aufgabe unten. Du bist dir nicht sicher, wie du anfangen sollst? Lies mehr darüber, was Roo für dich tun kann, in <DocsLink>den Dokumenten</DocsLink>.",
+	"about": "Roo Code ist ein ganzes KI-Entwicklerteam in deinem Editor.",
+	"docs": "Schau in unsere <DocsLink>Dokumentation</DocsLink>, um mehr zu erfahren.",
+	"onboarding": "Deine Aufgabenliste in diesem Arbeitsbereich ist leer.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Aufgaben-Orchestrierung",
-			"description": "Teile Aufgaben in kleinere, überschaubare Teile auf."
-		},
-		"stickyModels": {
-			"title": "Sticky Modi",
-			"description": "Jeder Modus merkt sich dein zuletzt verwendetes Modell"
-		},
-		"tools": {
-			"title": "Tools",
-			"description": "Erlaube der KI, Probleme durch Surfen im Web, Ausführen von Befehlen und mehr zu lösen."
-		},
 		"customizableModes": {
 			"title": "Anpassbare Modi",
-			"description": "Spezialisierte Personas mit eigenem Verhalten und zugewiesenen Modellen"
+			"description": "Spezialisierte Personas, die bei der Sache bleiben und liefern."
+		},
+		"modelAgnostic": {
+			"title": "Bring dein eigenes Modell mit",
+			"description": "Verwende deinen eigenen Anbieter-Schlüssel oder führe sogar lokale Inferenz aus – kein Aufschlag, keine Bindung, keine Einschränkungen"
 		}
 	},
 	"selectMode": "Interaktionsmodus auswählen",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo möchte einen Slash-Befehl ausführen",
 		"didRun": "Roo hat einen Slash-Befehl ausgeführt"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Roo etwas Unabhängigkeit geben? Kontrolliere es von überall mit Roo Code Cloud. <learnMoreLink>Mehr erfahren</learnMoreLink>.",
 		"longRunningTask": "Das könnte eine Weile dauern. Mit Cloud von überall weitermachen.",
-		"taskList": "Roo Code Cloud ist hier: Verfolge und kontrolliere deine Aufgaben von überall. <learnMoreLink>Mehr erfahren</learnMoreLink>."
+		"taskList": "Gefällt dir Roo? Schau dir Roo Code Cloud an: Verfolge und steuere deine Aufgaben von überall, führe autonome Cloud-Agenten aus, erhalte Nutzungsstatistiken und mehr. <learnMoreLink>Erfahre mehr</learnMoreLink>."
 	}
 }

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

@@ -48,5 +48,5 @@
 		"mostTokens": "Meiste Tokens",
 		"mostRelevant": "Relevanteste"
 	},
-	"viewAllHistory": "Gesamten Verlauf anzeigen"
+	"viewAllHistory": "Alle anzeigen"
 }

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

@@ -96,24 +96,17 @@
 		"placeholder": "Edit your message..."
 	},
 	"scrollToBottom": "Scroll to bottom of chat",
-	"about": "Generate, refactor, and debug code with AI assistance. Check out our <DocsLink>documentation</DocsLink> to learn more.",
-	"onboarding": "Your task list in this workspace is empty.",
+	"about": "Roo is a whole AI dev team in your editor",
+	"docs": "Check our <DocsLink>docs</DocsLink> to get started",
+	"onboarding": "What would you like to do?",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Task Orchestration",
-			"description": "Split tasks into smaller, manageable parts"
-		},
-		"stickyModels": {
-			"title": "Sticky Models",
-			"description": "Each mode remembers your last used model"
-		},
-		"tools": {
-			"title": "Tools",
-			"description": "Allow the AI to solve problems by browsing the web, running commands, and more"
-		},
 		"customizableModes": {
-			"title": "Customizable Modes",
-			"description": "Specialized personas with their own behaviors and assigned models"
+			"title": "Customizable modes that don't swerve",
+			"description": "Specialized personas that stay on-task and deliver."
+		},
+		"modelAgnostic": {
+			"title": "Bring your own model, no markup or lock-in",
+			"description": "Use your own provider key or even run local inference — Roo doesn't charge for it"
 		}
 	},
 	"selectMode": "Select mode for interaction",

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Roo Code Cloud. <learnMoreLink>Learn more</learnMoreLink>.",
 		"longRunningTask": "This might take a while. Continue from anywhere with Cloud.",
-		"taskList": "Roo Code Cloud is here: follow and control your tasks from anywhere. <learnMoreLink>Learn more</learnMoreLink>."
+		"taskList": "Enjoying Roo? Check out Roo Code Cloud: follow and control your tasks from anywhere, run autonomous Cloud agents, get usage stats and more. <learnMoreLink>Learn more</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Most Tokens",
 		"mostRelevant": "Most Relevant"
 	},
-	"viewAllHistory": "View all tasks"
+	"viewAllHistory": "View all"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Cancelar la operación actual"
 	},
 	"scrollToBottom": "Desplazarse al final del chat",
-	"about": "Genera, refactoriza y depura código con asistencia de IA. Consulta nuestra <DocsLink>documentación</DocsLink> para obtener más información.",
-	"onboarding": "<strong>Tu lista de tareas en este espacio de trabajo está vacía.</strong> Comienza escribiendo una tarea abajo. ¿No estás seguro cómo empezar? Lee más sobre lo que Roo puede hacer por ti en <DocsLink>la documentación</DocsLink>.",
+	"about": "Roo Code es todo un equipo de desarrollo de IA en tu editor.",
+	"docs": "Consulta nuestra <DocsLink>documentación</DocsLink> para saber más.",
+	"onboarding": "Tu lista de tareas en este espacio de trabajo está vacía.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orquestación de Tareas",
-			"description": "Divide las tareas en partes más pequeñas y manejables."
-		},
-		"stickyModels": {
-			"title": "Modos persistentes",
-			"description": "Cada modo recuerda tu último modelo utilizado"
-		},
-		"tools": {
-			"title": "Herramientas",
-			"description": "Permite que la IA resuelva problemas navegando por la web, ejecutando comandos y mucho más."
-		},
 		"customizableModes": {
 			"title": "Modos personalizables",
-			"description": "Personalidades especializadas con sus propios comportamientos y modelos asignados"
+			"description": "Personajes especializados que se mantienen en la tarea y cumplen."
+		},
+		"modelAgnostic": {
+			"title": "Trae tu propio modelo",
+			"description": "Usa tu propia clave de proveedor o incluso ejecuta inferencia local — sin sobrecostes, sin ataduras, sin restricciones"
 		}
 	},
 	"selectMode": "Seleccionar modo de interacción",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo quiere ejecutar un comando slash",
 		"didRun": "Roo ejecutó un comando slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "¿Dándole a Roo un poco de independencia? Contrólalo desde cualquier lugar con Roo Code Cloud. <learnMoreLink>Saber más</learnMoreLink>.",
 		"longRunningTask": "Esto podría tardar un poco. Continúa desde cualquier lugar con la Nube.",
-		"taskList": "Roo Code Cloud ya está aquí: sigue y controla tus tareas desde cualquier lugar. <learnMoreLink>Saber más</learnMoreLink>."
+		"taskList": "¿Disfrutando de Roo? Echa un vistazo a Roo Code Cloud: sigue y controla tus tareas desde cualquier lugar, ejecuta agentes de la Nube autónomos, obtén estadísticas de uso y más. <learnMoreLink>Aprende más</learnMoreLink>."
 	}
 }

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

@@ -48,5 +48,5 @@
 		"mostTokens": "Más tokens",
 		"mostRelevant": "Más relevantes"
 	},
-	"viewAllHistory": "Ver todo el historial"
+	"viewAllHistory": "Ver todo"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Annuler l'opération actuelle"
 	},
 	"scrollToBottom": "Défiler jusqu'au bas du chat",
-	"about": "Générer, refactoriser et déboguer du code avec l'assistance de l'IA. Consultez notre <DocsLink>documentation</DocsLink> pour en savoir plus.",
-	"onboarding": "Grâce aux dernières avancées en matière de capacités de codage agent, je peux gérer des tâches complexes de développement logiciel étape par étape. Avec des outils qui me permettent de créer et d'éditer des fichiers, d'explorer des projets complexes, d'utiliser le navigateur et d'exécuter des commandes de terminal (après votre autorisation), je peux vous aider de manières qui vont au-delà de la complétion de code ou du support technique. Je peux même utiliser MCP pour créer de nouveaux outils et étendre mes propres capacités.",
+	"about": "Roo Code est une équipe complète de développeurs IA dans votre éditeur.",
+	"docs": "Consultez notre <DocsLink>documentation</DocsLink> pour en savoir plus.",
+	"onboarding": "Votre liste de tâches dans cet espace de travail est vide.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orchestration de Tâches",
-			"description": "Divisez les tâches en parties plus petites et gérables."
-		},
-		"stickyModels": {
-			"title": "Modes persistants",
-			"description": "Chaque mode se souvient de votre dernier modèle utilisé"
-		},
-		"tools": {
-			"title": "Outils",
-			"description": "Permettez à l'IA de résoudre des problèmes en naviguant sur le Web, en exécutant des commandes, et plus encore."
-		},
 		"customizableModes": {
 			"title": "Modes personnalisables",
-			"description": "Des personas spécialisés avec leurs propres comportements et modèles assignés"
+			"description": "Des personas spécialisés qui restent concentrés sur la tâche et livrent des résultats."
+		},
+		"modelAgnostic": {
+			"title": "Apportez votre propre modèle",
+			"description": "Utilisez votre propre clé de fournisseur ou même exécutez une inférence locale — pas de majoration, pas de verrouillage, pas de restrictions"
 		}
 	},
 	"selectMode": "Sélectionner le mode d'interaction",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo veut exécuter une commande slash",
 		"didRun": "Roo a exécuté une commande slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Donner à Roo un peu d'indépendance ? Contrôlez-le de n'importe où avec Roo Code Cloud. <learnMoreLink>En savoir plus</learnMoreLink>.",
 		"longRunningTask": "Cela peut prendre un certain temps. Continuez de n'importe où avec le Cloud.",
-		"taskList": "Roo Code Cloud est là : suivez et contrôlez vos tâches de n'importe où. <learnMoreLink>En savoir plus</learnMoreLink>."
+		"taskList": "Vous appréciez Roo ? Découvrez Roo Code Cloud : suivez et contrôlez vos tâches de n'importe où, exécutez des agents Cloud autonomes, obtenez des statistiques d'utilisation et plus encore. <learnMoreLink>En savoir plus</learnMoreLink>."
 	}
 }

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

@@ -48,5 +48,5 @@
 		"mostTokens": "Plus de tokens",
 		"mostRelevant": "Plus pertinentes"
 	},
-	"viewAllHistory": "Voir tout l'historique"
+	"viewAllHistory": "Voir tout"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "वर्तमान ऑपरेशन रद्द करें"
 	},
 	"scrollToBottom": "चैट के निचले हिस्से तक स्क्रॉल करें",
-	"about": "एआई सहायता से कोड जेनरेट करें, रिफैक्टर करें और डिबग करें। अधिक जानने के लिए हमारे <DocsLink>दस्तावेज़</DocsLink> देखें।",
-	"onboarding": "एजेंटिक कोडिंग क्षमताओं में नवीनतम प्रगति के कारण, मैं जटिल सॉफ्टवेयर विकास कार्यों को चरण-दर-चरण संभाल सकता हूं। ऐसे उपकरणों के साथ जो मुझे फ़ाइलें बनाने और संपादित करने, जटिल प्रोजेक्ट का अन्वेषण करने, ब्राउज़र का उपयोग करने और टर्मिनल कमांड (आपकी अनुमति के बाद) निष्पादित करने की अनुमति देते हैं, मैं आपकी मदद कोड पूर्णता या तकनीकी समर्थन से परे तरीकों से कर सकता हूं। मैं अपनी क्षमताओं का विस्तार करने और नए उपकरण बनाने के लिए MCP का भी उपयोग कर सकता हूं।",
+	"about": "Roo Code आपके संपादक में एक पूरी AI देव टीम है।",
+	"docs": "और जानने के लिए हमारे <DocsLink>दस्तावेज़</DocsLink> देखें।",
+	"onboarding": "इस कार्यक्षेत्र में आपकी कार्य सूची खाली है।",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "कार्य संयोजन",
-			"description": "कार्यों को छोटे, प्रबंधनीय भागों में विभाजित करें।"
-		},
-		"stickyModels": {
-			"title": "स्टिकी मोड",
-			"description": "प्रत्येक मोड आपके अंतिम उपयोग किए गए मॉडल को याद रखता है"
-		},
-		"tools": {
-			"title": "उपकरण",
-			"description": "एआई को वेब ब्राउज़ करके, कमांड चलाकर और अधिक समस्याओं को हल करने की अनुमति दें।"
-		},
 		"customizableModes": {
 			"title": "अनुकूलन योग्य मोड",
-			"description": "विशिष्ट प्रोफाइल अपने व्यवहार और निर्धारित मॉडल के साथ"
+			"description": "विशेष व्यक्ति जो कार्य पर बने रहते हैं और वितरित करते हैं।"
+		},
+		"modelAgnostic": {
+			"title": "अपना खुद का मॉडल लाओ",
+			"description": "अपने स्वयं के प्रदाता कुंजी का उपयोग करें या यहां तक   कि स्थानीय अनुमान चलाएं - कोई मार्कअप, लॉक-इन, कोई प्रतिबंध नहीं"
 		}
 	},
 	"selectMode": "इंटरैक्शन मोड चुनें",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo एक स्लैश कमांड चलाना चाहता है",
 		"didRun": "Roo ने एक स्लैश कमांड चलाया"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "रू को थोड़ी स्वतंत्रता दे रहे हैं? रू कोड क्लाउड के साथ इसे कहीं से भी नियंत्रित करें। <learnMoreLink>और जानें</learnMoreLink>।",
 		"longRunningTask": "इसमें थोड़ा समय लग सकता है। क्लाउड के साथ कहीं से भी जारी रखें।",
-		"taskList": "रू कोड क्लाउड यहाँ है: कहीं से भी अपने कार्यों का पालन और नियंत्रण करें। <learnMoreLink>और जानें</learnMoreLink>।"
+		"taskList": "रू का आनंद ले रहे हैं? रू कोड क्लाउड देखें: कहीं से भी अपने कार्यों का पालन और नियंत्रण करें, स्वायत्त क्लाउड एजेंट चलाएं, उपयोग के आंकड़े प्राप्त करें और बहुत कुछ। <learnMoreLink>और जानें</learnMoreLink>।"
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "सबसे अधिक टोकन",
 		"mostRelevant": "सबसे प्रासंगिक"
 	},
-	"viewAllHistory": "सभी कार्य देखें"
+	"viewAllHistory": "सभी देखें"
 }

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

@@ -99,24 +99,17 @@
 		"tooltip": "Batalkan operasi saat ini"
 	},
 	"scrollToBottom": "Gulir ke bawah chat",
-	"about": "Buat, refaktor, dan debug kode dengan bantuan AI.<br />Lihat <DocsLink>dokumentasi</DocsLink> kami untuk mempelajari lebih lanjut.",
-	"onboarding": "Daftar tugas di workspace ini kosong.",
+	"about": "Roo Code adalah seluruh tim pengembang AI di editor Anda.",
+	"docs": "Lihat <DocsLink>dokumentasi</DocsLink> kami untuk mempelajari lebih lanjut.",
+	"onboarding": "Daftar tugas Anda di ruang kerja ini kosong.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orkestrasi Tugas",
-			"description": "Bagi tugas menjadi bagian-bagian kecil yang dapat dikelola"
-		},
-		"stickyModels": {
-			"title": "Model Sticky",
-			"description": "Setiap mode mengingat model terakhir yang kamu gunakan"
-		},
-		"tools": {
-			"title": "Tools",
-			"description": "Izinkan AI menyelesaikan masalah dengan browsing web, menjalankan perintah, dan lainnya"
-		},
 		"customizableModes": {
-			"title": "Mode yang Dapat Disesuaikan",
-			"description": "Persona khusus dengan perilaku dan model yang ditugaskan sendiri"
+			"title": "Mode yang dapat disesuaikan",
+			"description": "Persona khusus yang tetap mengerjakan tugas dan memberikan hasil."
+		},
+		"modelAgnostic": {
+			"title": "Bawa model Anda sendiri",
+			"description": "Gunakan kunci penyedia Anda sendiri atau bahkan jalankan inferensi lokal — tanpa markup, tanpa lock-in, tanpa batasan"
 		}
 	},
 	"selectMode": "Pilih mode untuk interaksi",
@@ -435,5 +428,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo ingin menjalankan perintah slash",
 		"didRun": "Roo telah menjalankan perintah slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Memberi Roo sedikit kebebasan? Kendalikan dari mana saja dengan Roo Code Cloud. <learnMoreLink>Pelajari lebih lanjut</learnMoreLink>.",
 		"longRunningTask": "Ini mungkin akan memakan waktu cukup lama. Lanjutkan dari mana saja dengan Cloud.",
-		"taskList": "Roo Code Cloud ada di sini: ikuti dan kendalikan tugas Anda dari mana saja. <learnMoreLink>Pelajari lebih lanjut</learnMoreLink>."
+		"taskList": "Menikmati Roo? Coba Roo Code Cloud: ikuti dan kendalikan tugas Anda dari mana saja, jalankan agen Cloud otonom, dapatkan statistik penggunaan, dan lainnya. <learnMoreLink>Pelajari lebih lanjut</learnMoreLink>."
 	}
 }

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

@@ -50,5 +50,5 @@
 		"mostTokens": "Token Terbanyak",
 		"mostRelevant": "Paling Relevan"
 	},
-	"viewAllHistory": "Lihat semua tugas"
+	"viewAllHistory": "Lihat semua"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Annulla l'operazione corrente"
 	},
 	"scrollToBottom": "Scorri fino alla fine della chat",
-	"about": "Genera, refactor e debug del codice con l'assistenza dell'IA. Consulta la nostra <DocsLink>documentazione</DocsLink> per saperne di più.",
-	"onboarding": "Grazie alle più recenti innovazioni nelle capacità di codifica agentica, posso gestire complesse attività di sviluppo software passo dopo passo. Con strumenti che mi permettono di creare e modificare file, esplorare progetti complessi, utilizzare il browser ed eseguire comandi da terminale (dopo la tua autorizzazione), posso aiutarti in modi che vanno oltre il completamento del codice o il supporto tecnico. Posso persino usare MCP per creare nuovi strumenti ed estendere le mie capacità.",
+	"about": "Roo Code è un intero team di sviluppo AI nel tuo editor.",
+	"docs": "Consulta la nostra <DocsLink>documentazione</DocsLink> per saperne di più.",
+	"onboarding": "La tua lista di attività in questo spazio di lavoro è vuota.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orchestrazione di Attività",
-			"description": "Dividi le attività in parti più piccole e gestibili."
-		},
-		"stickyModels": {
-			"title": "Modalità persistenti",
-			"description": "Ogni modalità ricorda il tuo ultimo modello utilizzato"
-		},
-		"tools": {
-			"title": "Strumenti",
-			"description": "Consenti all'IA di risolvere i problemi navigando sul Web, eseguendo comandi e altro ancora."
-		},
 		"customizableModes": {
 			"title": "Modalità personalizzabili",
-			"description": "Personalità specializzate con comportamenti propri e modelli assegnati"
+			"description": "Personaggi specializzati che rimangono in tema e portano a termine il compito."
+		},
+		"modelAgnostic": {
+			"title": "Porta il tuo modello",
+			"description": "Usa la tua chiave provider o esegui l'inferenza locale — nessun ricarico, nessun vincolo, nessuna restrizione"
 		}
 	},
 	"selectMode": "Seleziona modalità di interazione",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo vuole eseguire un comando slash",
 		"didRun": "Roo ha eseguito un comando slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Vuoi dare un po' di indipendenza a Roo? Controllalo da qualsiasi luogo con Roo Code Cloud. <learnMoreLink>Scopri di più</learnMoreLink>.",
 		"longRunningTask": "Potrebbe volerci un po' di tempo. Continua da qualsiasi luogo con il Cloud.",
-		"taskList": "Roo Code Cloud è qui: segui e controlla le tue attività da qualsiasi luogo. <learnMoreLink>Scopri di più</learnMoreLink>."
+		"taskList": "Ti piace Roo? Dai un'occhiata a Roo Code Cloud: segui e controlla le tue attività da qualsiasi luogo, esegui agenti Cloud autonomi, ottieni statistiche di utilizzo e altro ancora. <learnMoreLink>Scopri di più</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Più token",
 		"mostRelevant": "Più rilevanti"
 	},
-	"viewAllHistory": "Visualizza tutta la cronologia"
+	"viewAllHistory": "Visualizza tutto"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "現在の操作をキャンセル"
 	},
 	"scrollToBottom": "チャットの最下部にスクロール",
-	"about": "AI支援でコードを生成、リファクタリング、デバッグします。詳細については、<DocsLink>ドキュメント</DocsLink>をご覧ください。",
-	"onboarding": "最新のエージェント型コーディング能力の進歩により、複雑なソフトウェア開発タスクをステップバイステップで処理できます。ファイルの作成や編集、複雑なプロジェクトの探索、ブラウザの使用、ターミナルコマンドの実行(許可後)を可能にするツールにより、コード補完や技術サポート以上の方法であなたをサポートできます。MCPを使用して新しいツールを作成し、自分の能力を拡張することもできます。",
+	"about": "Roo Codeは、エディタに常駐するAI開発チームです。",
+	"docs": "詳細については、<DocsLink>ドキュメント</DocsLink>をご確認ください。",
+	"onboarding": "このワークスペースのタスクリストは空です。",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "タスクオーケストレーション",
-			"description": "タスクをより小さく、管理しやすい部分に分割します。"
-		},
-		"stickyModels": {
-			"title": "スティッキーモード",
-			"description": "各モードは、最後に使用したモデルを記憶しています"
-		},
-		"tools": {
-			"title": "ツール",
-			"description": "AIがWebの閲覧、コマンドの実行などによって問題を解決できるようにします。"
-		},
 		"customizableModes": {
 			"title": "カスタマイズ可能なモード",
-			"description": "独自の動作と割り当てられたモデルを持つ専門的なペルソナ"
+			"description": "タスクに集中し、成果を出す専門のペルソナ。"
+		},
+		"modelAgnostic": {
+			"title": "独自のモデルを持ち込む",
+			"description": "独自のプロバイダーキーを使用したり、ローカルで推論を実行したりできます — マークアップ、ロックイン、制限はありません"
 		}
 	},
 	"selectMode": "対話モードを選択",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Rooはスラッシュコマンドを実行したい",
 		"didRun": "Rooはスラッシュコマンドを実行しました"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Rooに少し独立性を与えませんか?Roo Code Cloudでどこからでもコントロールできます。<learnMoreLink>詳細</learnMoreLink>。",
 		"longRunningTask": "これには時間がかかるかもしれません。Cloudを使えばどこからでも続けられます。",
-		"taskList": "Roo Code Cloudが登場しました:どこからでもタスクを追跡し、コントロールできます。<learnMoreLink>詳細</learnMoreLink>。"
+		"taskList": "Rooを楽しんでいますか?Roo Code Cloudをチェックしてください:どこからでもタスクを追跡および制御し、自律型クラウドエージェントを実行し、使用状況の統計を取得します。<learnMoreLink>詳細</learnMoreLink>。"
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "最多トークン",
 		"mostRelevant": "最も関連性の高い"
 	},
-	"viewAllHistory": "すべての履歴を表示"
+	"viewAllHistory": "すべて表示"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "현재 작업 취소"
 	},
 	"scrollToBottom": "채팅 하단으로 스크롤",
-	"about": "AI 지원으로 코드를 생성, 리팩터링 및 디버깅합니다. 자세한 내용은 <DocsLink>문서</DocsLink>를 확인하세요.",
-	"onboarding": "<strong>이 작업 공간의 작업 목록이 비어 있습니다.</strong> 아래에 작업을 입력하여 시작하세요. 어떻게 시작해야 할지 모르겠나요? Roo가 무엇을 할 수 있는지 <DocsLink>문서</DocsLink>에서 자세히 알아보세요.",
+	"about": "Roo Code는 편집기 안에 있는 전체 AI 개발팀입니다.",
+	"docs": "더 알아보려면 <DocsLink>문서</DocsLink>를 확인하세요.",
+	"onboarding": "이 작업 공간의 작업 목록이 비어 있습니다.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "작업 오케스트레이션",
-			"description": "작업을 더 작고 관리하기 쉬운 부분으로 나눕니다."
-		},
-		"stickyModels": {
-			"title": "스티키 모드",
-			"description": "각 모드는 마지막으로 사용한 모델을 기억합니다."
-		},
-		"tools": {
-			"title": "도구",
-			"description": "AI가 웹 탐색, 명령 실행 등으로 문제를 해결하도록 허용합니다."
-		},
 		"customizableModes": {
-			"title": "사용자 정의 모드",
-			"description": "고유한 동작과 할당된 모델을 가진 전문 페르소나"
+			"title": "사용자 정의 가능한 모드",
+			"description": "작업에 집중하고 결과를 제공하는 전문화된 페르소나."
+		},
+		"modelAgnostic": {
+			"title": "자신만의 모델 가져오기",
+			"description": "자체 공급자 키를 사용하거나 로컬에서 추론을 실행하세요 — 마크업 없음, 종속 없음, 제한 없음"
 		}
 	},
 	"selectMode": "상호작용 모드 선택",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo가 슬래시 명령어를 실행하려고 합니다",
 		"didRun": "Roo가 슬래시 명령어를 실행했습니다"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Roo에게 약간의 독립성을 부여하시겠습니까? Roo Code Cloud로 어디서든 제어하세요. <learnMoreLink>더 알아보기</learnMoreLink>.",
 		"longRunningTask": "시간이 좀 걸릴 수 있습니다. Cloud로 어디서든 계속하세요.",
-		"taskList": "Roo Code Cloud가 여기 있습니다: 어디서든 작업을 추적하고 제어하세요. <learnMoreLink>더 알아보기</learnMoreLink>."
+		"taskList": "Roo를 즐기고 계신가요? Roo Code Cloud를 확인해보세요: 어디서든 작업을 추적하고 제어하며, 자율적인 클라우드 에이전트를 실행하고, 사용 통계를 얻는 등 다양한 기능을 제공합니다. <learnMoreLink>더 알아보기</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "토큰 많은순",
 		"mostRelevant": "관련성 높은순"
 	},
-	"viewAllHistory": "모든 기록 보기"
+	"viewAllHistory": "모 보기"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Annuleer de huidige bewerking"
 	},
 	"scrollToBottom": "Scroll naar onderaan de chat",
-	"about": "Genereer, refactor en debug code met AI-assistentie. Bekijk onze <DocsLink>documentatie</DocsLink> voor meer informatie.",
+	"about": "Roo Code is een heel AI-ontwikkelteam in je editor.",
+	"docs": "Bekijk onze <DocsLink>documentatie</DocsLink> voor meer informatie.",
 	"onboarding": "Je takenlijst in deze werkruimte is leeg.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Taak Orchestratie",
-			"description": "Splits taken op in kleinere, beheersbare delen"
-		},
-		"stickyModels": {
-			"title": "Vastgezette modellen",
-			"description": "Elke modus onthoudt je laatst gebruikte model"
-		},
-		"tools": {
-			"title": "Tools",
-			"description": "Laat de AI problemen oplossen door te browsen, commando's uit te voeren en meer"
-		},
 		"customizableModes": {
 			"title": "Aanpasbare modi",
-			"description": "Gespecialiseerde persona's met hun eigen gedrag en toegewezen modellen"
+			"description": "Gespecialiseerde persona's die op schema blijven en presteren."
+		},
+		"modelAgnostic": {
+			"title": "Breng je eigen model mee",
+			"description": "Gebruik je eigen providersleutel of voer zelfs lokale inferentie uit — geen opslag, geen lock-in, geen beperkingen"
 		}
 	},
 	"selectMode": "Selecteer modus voor interactie",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo wil een slash commando uitvoeren",
 		"didRun": "Roo heeft een slash commando uitgevoerd"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Roo wat onafhankelijkheid geven? Bedien het overal met Roo Code Cloud. <learnMoreLink>Meer informatie</learnMoreLink>.",
 		"longRunningTask": "Dit kan even duren. Ga overal verder met de Cloud.",
-		"taskList": "Roo Code Cloud is hier: volg en beheer je taken overal. <learnMoreLink>Meer informatie</learnMoreLink>."
+		"taskList": "Geniet je van Roo? Bekijk Roo Code Cloud: volg en beheer je taken overal, voer autonome Cloud-agents uit, krijg gebruiksstatistieken en meer. <learnMoreLink>Meer informatie</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Meeste tokens",
 		"mostRelevant": "Meest relevant"
 	},
-	"viewAllHistory": "Alle geschiedenis bekijken"
+	"viewAllHistory": "Alles bekijken"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Anuluj bieżącą operację"
 	},
 	"scrollToBottom": "Przewiń do dołu czatu",
-	"about": "Generuj, refaktoryzuj i debuguj kod z pomocą sztucznej inteligencji. Sprawdź naszą <DocsLink>dokumentację</DocsLink>, aby dowiedzieć się więcej.",
-	"onboarding": "<strong>Twoja lista zadań w tym obszarze roboczym jest pusta.</strong> Zacznij od wpisania zadania poniżej. Nie wiesz, jak zacząć? Przeczytaj więcej o tym, co Roo może dla Ciebie zrobić w <DocsLink>dokumentacji</DocsLink>.",
+	"about": "Roo Code to cały zespół deweloperów AI w Twoim edytorze.",
+	"docs": "Sprawdź naszą <DocsLink>dokumentację</DocsLink>, aby dowiedzieć się więcej.",
+	"onboarding": "Twoja lista zadań w tym obszarze roboczym jest pusta.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orkiestracja Zadań",
-			"description": "Podziel zadania na mniejsze, łatwiejsze do zarządzania części."
-		},
-		"stickyModels": {
-			"title": "Tryby trwałe",
-			"description": "Każdy tryb zapamiętuje ostatnio używany model"
-		},
-		"tools": {
-			"title": "Narzędzia",
-			"description": "Pozwól sztucznej inteligencji rozwiązywać problemy, przeglądając sieć, uruchamiając polecenia i nie tylko."
-		},
 		"customizableModes": {
 			"title": "Konfigurowalne tryby",
-			"description": "Wyspecjalizowane persona z własnymi zachowaniami i przypisanymi modelami"
+			"description": "Wyspecjalizowane persony, które trzymają się zadania i dostarczają."
+		},
+		"modelAgnostic": {
+			"title": "Przynieś własny model",
+			"description": "Użyj własnego klucza dostawcy lub nawet uruchom lokalne wnioskowanie — bez narzutów, bez blokad, bez ograniczeń"
 		}
 	},
 	"selectMode": "Wybierz tryb interakcji",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo chce uruchomić komendę slash",
 		"didRun": "Roo uruchomił komendę slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Dać Roo trochę niezależności? Kontroluj go z dowolnego miejsca dzięki Roo Code Cloud. <learnMoreLink>Dowiedz się więcej</learnMoreLink>.",
 		"longRunningTask": "To może chwilę potrwać. Kontynuuj z dowolnego miejsca dzięki Chmurze.",
-		"taskList": "Roo Code Cloud jest tutaj: śledź i kontroluj swoje zadania z dowolnego miejsca. <learnMoreLink>Dowiedz się więcej</learnMoreLink>."
+		"taskList": "Podoba ci się Roo? Sprawdź Roo Code Cloud: śledź i kontroluj swoje zadania z dowolnego miejsca, uruchamiaj autonomiczne agenty w chmurze, uzyskuj statystyki użytkowania i wiele więcej. <learnMoreLink>Dowiedz się więcej</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Najwięcej tokenów",
 		"mostRelevant": "Najbardziej trafne"
 	},
-	"viewAllHistory": "Zobacz wszystkie zadania"
+	"viewAllHistory": "Zobacz wszystko"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Cancelar a operação atual"
 	},
 	"scrollToBottom": "Rolar para o final do chat",
-	"about": "Gere, refatore e depure código com assistência de IA. Confira nossa <DocsLink>documentação</DocsLink> para saber mais.",
-	"onboarding": "<strong>Sua lista de tarefas neste espaço de trabalho está vazia.</strong> Comece digitando uma tarefa abaixo. Não sabe como começar? Leia mais sobre o que o Roo pode fazer por você nos <DocsLink>documentos</DocsLink>.",
+	"about": "Roo Code é uma equipe inteira de desenvolvimento de IA em seu editor.",
+	"docs": "Confira nossa <DocsLink>documentação</DocsLink> para saber mais.",
+	"onboarding": "Sua lista de tarefas neste espaço de trabalho está vazia.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Orquestração de Tarefas",
-			"description": "Divida as tarefas em partes menores e gerenciáveis."
-		},
-		"stickyModels": {
-			"title": "Modos Fixos",
-			"description": "Cada modo lembra o seu último modelo usado"
-		},
-		"tools": {
-			"title": "Ferramentas",
-			"description": "Permita que a IA resolva problemas navegando na web, executando comandos e muito mais."
-		},
 		"customizableModes": {
 			"title": "Modos personalizáveis",
-			"description": "Personas especializadas com comportamentos próprios e modelos atribuídos"
+			"description": "Personas especializadas que mantêm o foco na tarefa e entregam resultados."
+		},
+		"modelAgnostic": {
+			"title": "Traga seu próprio modelo",
+			"description": "Use sua própria chave de provedor ou até mesmo execute inferência local — sem acréscimos, sem aprisionamento, sem restrições"
 		}
 	},
 	"selectMode": "Selecionar modo de interação",
@@ -429,5 +422,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo quer executar um comando slash",
 		"didRun": "Roo executou um comando slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Dando um pouco de independência ao Roo? Controle-o de qualquer lugar com o Roo Code Cloud. <learnMoreLink>Saiba mais</learnMoreLink>.",
 		"longRunningTask": "Isso pode levar um tempo. Continue de qualquer lugar com a Nuvem.",
-		"taskList": "O Roo Code Cloud está aqui: acompanhe e controle suas tarefas de qualquer lugar. <learnMoreLink>Saiba mais</learnMoreLink>."
+		"taskList": "Gostando do Roo? Confira o Roo Code Cloud: acompanhe e controle suas tarefas de qualquer lugar, execute agentes de nuvem autônomos, obtenha estatísticas de uso e muito mais. <learnMoreLink>Saiba mais</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Mais tokens",
 		"mostRelevant": "Mais relevantes"
 	},
-	"viewAllHistory": "Ver todo o histórico"
+	"viewAllHistory": "Ver tudo"
 }

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

@@ -85,26 +85,19 @@
 		"tooltip": "Отменить текущую операцию"
 	},
 	"scrollToBottom": "Прокрутить чат вниз",
-	"about": "Создавайте, рефакторите и отлаживайте код с помощью ИИ. Подробнее см. в нашей <DocsLink>документации</DocsLink>.",
+	"about": "Roo Code — это целая команда разработчиков ИИ в вашем редакторе.",
+	"docs": "Ознакомьтесь с нашей <DocsLink>документацией</DocsLink>, чтобы узнать больше.",
+	"onboarding": "Ваш список задач в этом рабочем пространстве пуст.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Оркестрация задач",
-			"description": "Разделяйте задачи на более мелкие, управляемые части"
-		},
-		"stickyModels": {
-			"title": "Липкие режимы",
-			"description": "Каждый режим запоминает вашу последнюю использованную модель"
-		},
-		"tools": {
-			"title": "Инструменты",
-			"description": "Разрешите ИИ решать проблемы, просматривая веб-страницы, выполняя команды и т. д."
-		},
 		"customizableModes": {
 			"title": "Настраиваемые режимы",
-			"description": "Специализированные персонажи с собственным поведением и назначенными моделями"
+			"description": "Специализированные персонажи, которые придерживаются задачи и выполняют ее."
+		},
+		"modelAgnostic": {
+			"title": "Используйте свою собственную модель",
+			"description": "Используйте свой собственный ключ провайдера или даже запускайте локальный вывод — без наценки, без привязки, без ограничений"
 		}
 	},
-	"onboarding": "<strong>Ваш список задач в этом рабочем пространстве пуст.</strong> Начните с ввода задачи ниже. Не знаете, с чего начать? Подробнее о возможностях Roo читайте в <DocsLink>документации</DocsLink>.",
 	"selectMode": "Выберите режим взаимодействия",
 	"selectApiConfig": "Выберите конфигурацию API",
 	"enhancePrompt": "Улучшить запрос с дополнительным контекстом",
@@ -430,5 +423,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo хочет выполнить слеш-команду",
 		"didRun": "Roo выполнил слеш-команду"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Предоставить Roo немного независимости? Управляйте им из любого места с помощью Roo Code Cloud. <learnMoreLink>Узнать больше</learnMoreLink>.",
 		"longRunningTask": "Это может занять некоторое время. Продолжайте из любого места с помощью Облака.",
-		"taskList": "Roo Code Cloud уже здесь: отслеживайте и управляйте своими задачами из любого места. <learnMoreLink>Узнать больше</learnMoreLink>."
+		"taskList": "Нравится Roo? Посмотрите Roo Code Cloud: отслеживайте и контролируйте свои задачи из любого места, запускайте автономных облачных агентов, получайте статистику использования и многое другое. <learnMoreLink>Узнать больше</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Больше всего токенов",
 		"mostRelevant": "Наиболее релевантные"
 	},
-	"viewAllHistory": "Просмотреть всю историю"
+	"viewAllHistory": "Посмотреть все"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Mevcut işlemi iptal et"
 	},
 	"scrollToBottom": "Sohbetin altına kaydır",
-	"about": "AI yardımıyla kod oluşturun, yeniden düzenleyin ve hatalarını ayıklayın. Daha fazla bilgi edinmek için <DocsLink>belgelerimize</DocsLink> göz atın.",
-	"onboarding": "<strong>Bu çalışma alanındaki görev listeniz boş.</strong> Aşağıya bir görev yazarak başlayın. Nasıl başlayacağınızdan emin değil misiniz? Roo'nun sizin için neler yapabileceği hakkında daha fazla bilgiyi <DocsLink>belgelerde</DocsLink> okuyun.",
+	"about": "Roo Code, düzenleyicinizdeki bütün bir yapay zeka geliştirme ekibidir.",
+	"docs": "Daha fazla bilgi için <DocsLink>belgelerimize</DocsLink> göz atın.",
+	"onboarding": "Bu çalışma alanındaki görev listeniz boş.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Görev Orkestrasyonu",
-			"description": "Görevleri daha küçük, yönetilebilir parçalara ayırın."
-		},
-		"stickyModels": {
-			"title": "Yapışkan Modlar",
-			"description": "Her mod, en son kullandığınız modeli hatırlar"
-		},
-		"tools": {
-			"title": "Araçlar",
-			"description": "AI'nın web'e göz atarak, komutlar çalıştırarak ve daha fazlasını yaparak sorunları çözmesine izin verin."
-		},
 		"customizableModes": {
-			"title": "Özelleştirilebilir Modlar",
-			"description": "Kendi davranışları ve atanmış modelleri ile özelleştirilmiş kişilikler"
+			"title": "Özelleştirilebilir modlar",
+			"description": "Göreve odaklanan ve sonuç veren özel kişilikler."
+		},
+		"modelAgnostic": {
+			"title": "Kendi modelinizi getirin",
+			"description": "Kendi sağlayıcı anahtarınızı kullanın veya hatta yerel çıkarım yapın — ek ücret yok, kilitlenme yok, kısıtlama yok"
 		}
 	},
 	"selectMode": "Etkileşim modunu seçin",
@@ -430,5 +423,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo bir slash komutu çalıştırmak istiyor",
 		"didRun": "Roo bir slash komutu çalıştırdı"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Roo'ya biraz bağımsızlık mı veriyorsunuz? Roo Code Cloud ile onu her yerden kontrol edin. <learnMoreLink>Daha fazla bilgi edinin</learnMoreLink>.",
 		"longRunningTask": "Bu biraz zaman alabilir. Bulut ile her yerden devam edin.",
-		"taskList": "Roo Code Cloud burada: görevlerinizi her yerden takip edin ve kontrol edin. <learnMoreLink>Daha fazla bilgi edinin</learnMoreLink>."
+		"taskList": "Roo'dan memnun musunuz? Roo Code Cloud'a göz atın: görevlerinizi her yerden takip edin ve kontrol edin, otonom Bulut ajanlarını çalıştırın, kullanım istatistikleri alın ve daha fazlasını yapın. <learnMoreLink>Daha fazla bilgi edinin</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "En Çok Token",
 		"mostRelevant": "En İlgili"
 	},
-	"viewAllHistory": "Tüm görevleri görüntüle"
+	"viewAllHistory": "Tümünü görüntüle"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "Hủy thao tác hiện tại"
 	},
 	"scrollToBottom": "Cuộn xuống cuối cuộc trò chuyện",
-	"about": "Tạo, tái cấu trúc và gỡ lỗi mã bằng sự hỗ trợ của AI. Kiểm tra <DocsLink>tài liệu</DocsLink> của chúng tôi để tìm hiểu thêm.",
-	"onboarding": "<strong>Danh sách nhiệm vụ của bạn trong không gian làm việc này trống.</strong> Bắt đầu bằng cách nhập nhiệm vụ bên dưới. Bạn không chắc chắn nên bắt đầu như thế nào? Đọc thêm về những gì Roo có thể làm cho bạn trong <DocsLink>tài liệu</DocsLink>.",
+	"about": "Roo Code là một đội ngũ phát triển AI đầy đủ trong trình chỉnh sửa của bạn.",
+	"docs": "Kiểm tra <DocsLink>tài liệu</DocsLink> của chúng tôi để tìm hiểu thêm.",
+	"onboarding": "Danh sách nhiệm vụ của bạn trong không gian làm việc này đang trống.",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "Điều phối Nhiệm vụ",
-			"description": "Chia nhỏ các nhiệm vụ thành các phần nhỏ hơn, dễ quản lý hơn."
-		},
-		"stickyModels": {
-			"title": "Chế độ dính",
-			"description": "Mỗi chế độ ghi nhớ mô hình đã sử dụng cuối cùng của bạn"
-		},
-		"tools": {
-			"title": "Công cụ",
-			"description": "Cho phép AI giải quyết vấn đề bằng cách duyệt web, chạy lệnh, v.v."
-		},
 		"customizableModes": {
-			"title": "Chế độ tùy chỉnh",
-			"description": "Các nhân vật chuyên biệt với hành vi riêng và mô hình được chỉ định"
+			"title": "Chế độ có thể tùy chỉnh",
+			"description": "Các nhân vật chuyên biệt luôn bám sát nhiệm vụ và mang lại hiệu quả."
+		},
+		"modelAgnostic": {
+			"title": "Mang theo mô hình của riêng bạn",
+			"description": "Sử dụng khóa nhà cung cấp của riêng bạn hoặc thậm chí chạy suy luận cục bộ — không phụ phí, không khóa, không hạn chế"
 		}
 	},
 	"selectMode": "Chọn chế độ tương tác",
@@ -430,5 +423,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo muốn chạy lệnh slash",
 		"didRun": "Roo đã chạy lệnh slash"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "Trao cho Roo một chút độc lập? Kiểm soát nó từ mọi nơi với Roo Code Cloud. <learnMoreLink>Tìm hiểu thêm</learnMoreLink>.",
 		"longRunningTask": "Việc này có thể mất một lúc. Tiếp tục từ mọi nơi với Cloud.",
-		"taskList": "Roo Code Cloud đã có mặt: theo dõi và kiểm soát các tác vụ của bạn từ mọi nơi. <learnMoreLink>Tìm hiểu thêm</learnMoreLink>."
+		"taskList": "Bạn có thích Roo không? Hãy xem Roo Code Cloud: theo dõi và kiểm soát các tác vụ của bạn từ mọi nơi, chạy các agent đám mây tự trị, nhận số liệu thống kê sử dụng và hơn thế nữa. <learnMoreLink>Tìm hiểu thêm</learnMoreLink>."
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "Nhiều token nhất",
 		"mostRelevant": "Liên quan nhất"
 	},
-	"viewAllHistory": "Xem tất cả nhiệm vụ"
+	"viewAllHistory": "Xem tất cả"
 }

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

@@ -85,24 +85,17 @@
 		"tooltip": "取消当前操作"
 	},
 	"scrollToBottom": "滚动到聊天底部",
-	"about": "通过 AI 辅助生成、重构和调试代码。查看我们的 <DocsLink>文档</DocsLink> 了解更多信息。",
-	"onboarding": "<strong>此工作区中的任务列表为空。</strong> 请在下方输入任务开始。 不确定如何开始? 在 <DocsLink>文档</DocsLink> 中阅读更多关于 Roo 可以为您做什么的信息。",
+	"about": "Roo Code 是您编辑器中的整个 AI 开发团队。",
+	"docs": "查看我们的 <DocsLink>文档</DocsLink> 了解更多信息。",
+	"onboarding": "此工作区中的任务列表为空。",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "任务编排",
-			"description": "将任务拆分为更小、更易于管理的部分。"
-		},
-		"stickyModels": {
-			"title": "粘性模式",
-			"description": "每个模式 都会记住 您上次使用的模型"
-		},
-		"tools": {
-			"title": "工具",
-			"description": "允许 AI 通过浏览网络、运行命令等方式解决问题。"
-		},
 		"customizableModes": {
-			"title": "自定义模式",
-			"description": "具有专属行为和指定模型的特定角色"
+			"title": "可自定义模式",
+			"description": "专注任务并交付成果的专业角色。"
+		},
+		"modelAgnostic": {
+			"title": "自带模型",
+			"description": "使用您自己的提供商密钥,甚至可以在本地运行推理 — 无加价,无锁定,无限制"
 		}
 	},
 	"selectMode": "选择交互模式",
@@ -430,5 +423,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo 想要运行斜杠命令",
 		"didRun": "Roo 运行了斜杠命令"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "给 Roo 一些独立性?使用 Roo Code Cloud 从任何地方控制它。 <learnMoreLink>了解更多</learnMoreLink>。",
 		"longRunningTask": "这可能需要一段时间。使用 Cloud 从任何地方继续。",
-		"taskList": "Roo Code Cloud 在这里:从任何地方关注和控制您的任务。 <learnMoreLink>了解更多</learnMoreLink>。"
+		"taskList": "喜欢Roo吗?快来看看Roo Code Cloud:随时随地关注和控制您的任务,运行自主云代理,获取使用统计数据等等。 <learnMoreLink>了解更多</learnMoreLink>。"
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "最多 Token",
 		"mostRelevant": "最相关"
 	},
-	"viewAllHistory": "查看所有历史记录"
+	"viewAllHistory": "查看全部"
 }

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

@@ -96,24 +96,17 @@
 		"placeholder": "編輯您的訊息..."
 	},
 	"scrollToBottom": "捲動至聊天室底部",
-	"about": "利用 AI 輔助產生、重構和偵錯程式碼。請參閱我們的<DocsLink>說明文件</DocsLink>以瞭解更多資訊。",
+	"about": "Roo Code 是您編輯器中的整個 AI 開發團隊。",
+	"docs": "請參閱我們的<DocsLink>說明文件</DocsLink>以了解詳細資訊。",
 	"onboarding": "此工作區的工作清單是空的。",
 	"rooTips": {
-		"boomerangTasks": {
-			"title": "工作編排",
-			"description": "將工作拆分為更小、更易於管理的部分。"
-		},
-		"stickyModels": {
-			"title": "記憶模型",
-			"description": "每個模式都會記住您上次使用的模型"
-		},
-		"tools": {
-			"title": "工具",
-			"description": "允許 AI 透過瀏覽網路、執行命令等方式解決問題。"
-		},
 		"customizableModes": {
 			"title": "可自訂模式",
-			"description": "具有專屬行為和指定模型的特定角色"
+			"description": "專注於任務並交付成果的專業角色。"
+		},
+		"modelAgnostic": {
+			"title": "自備模型",
+			"description": "使用您自己的提供商金鑰,甚至可以執行本地推斷 — 無需加價,無鎖定,無限制"
 		}
 	},
 	"selectMode": "選擇互動模式",
@@ -430,5 +423,6 @@
 	"slashCommand": {
 		"wantsToRun": "Roo 想要執行斜線指令",
 		"didRun": "Roo 執行了斜線指令"
-	}
+	},
+	"docs": "Check our <DocsLink>docs</DocsLink> to learn more."
 }

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

@@ -29,6 +29,6 @@
 	"upsell": {
 		"autoApprovePowerUser": "給 Roo 一點獨立性?使用 Roo Code Cloud 隨時隨地控制它。<learnMoreLink>了解更多</learnMoreLink>。",
 		"longRunningTask": "這可能需要一些時間。使用雲端隨時隨地繼續。",
-		"taskList": "Roo Code Cloud 在此:隨時隨地追蹤和控制您的任務。<learnMoreLink>了解更多</learnMoreLink>。"
+		"taskList": "喜歡Roo嗎?快來看看Roo Code Cloud:隨時隨地追蹤和控制您的任務,執行自主雲端代理,取得使用統計數據等等。<learnMoreLink>了解更多</learnMoreLink>。"
 	}
 }

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

@@ -41,5 +41,5 @@
 		"mostTokens": "最多 Token",
 		"mostRelevant": "最相關"
 	},
-	"viewAllHistory": "檢視所有工作"
+	"viewAllHistory": "檢視全部"
 }