From 7b4302282c3553d3480066e5447d816453cd74ba Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 13:50:44 +0100 Subject: [PATCH 01/25] Working chart in CloudView --- packages/cloud/src/CloudAPI.ts | 63 ++++- src/core/webview/webviewMessageHandler.ts | 68 ++++++ src/shared/ExtensionMessage.ts | 2 + src/shared/WebviewMessage.ts | 1 + webview-ui/src/components/cloud/CloudView.tsx | 223 ++++++++++-------- .../src/components/cloud/UsagePreview.tsx | 215 +++++++++++++++++ webview-ui/src/i18n/locales/en/cloud.json | 4 + webview-ui/src/utils/format.ts | 9 + 8 files changed, 478 insertions(+), 107 deletions(-) create mode 100644 webview-ui/src/components/cloud/UsagePreview.tsx diff --git a/packages/cloud/src/CloudAPI.ts b/packages/cloud/src/CloudAPI.ts index d1c3f89c2b8..8e7a14591ee 100644 --- a/packages/cloud/src/CloudAPI.ts +++ b/packages/cloud/src/CloudAPI.ts @@ -6,6 +6,25 @@ import { getRooCodeApiUrl } from "./config.js" import { getUserAgent } from "./utils.js" import { AuthenticationError, CloudAPIError, NetworkError, TaskNotFoundError } from "./errors.js" +// Usage stats schemas +const usageStatsSchema = z.object({ + success: z.boolean(), + data: z.object({ + dates: z.array(z.string()), // Array of date strings + tasks: z.array(z.number()), // Array of task counts + tokens: z.array(z.number()), // Array of token counts + costs: z.array(z.number()), // Array of costs in USD + totals: z.object({ + tasks: z.number(), + tokens: z.number(), + cost: z.number(), // Total cost in USD + }), + }), + period: z.number(), // Period in days (e.g., 30) +}) + +export type UsageStats = z.infer + interface CloudAPIRequestOptions extends Omit { timeout?: number headers?: Record @@ -53,10 +72,14 @@ export class CloudAPI { }) if (!response.ok) { + this.log(`[CloudAPI] Request to ${endpoint} failed with status ${response.status}`) await this.handleErrorResponse(response, endpoint) } + // Log before attempting to read the body + this.log(`[CloudAPI] Reading response body for ${endpoint}`) const data = await response.json() + this.log(`[CloudAPI] Successfully read response body for ${endpoint}`) if (parseResponse) { return parseResponse(data) @@ -86,9 +109,23 @@ export class CloudAPI { let responseBody: unknown try { - responseBody = await response.json() - } catch { - responseBody = await response.text() + // Clone the response before reading to avoid "Body has already been read" error + this.log(`[CloudAPI] Handling error response for ${endpoint}, status: ${response.status}`) + + // Read the body as text first, then try to parse as JSON + const bodyText = await response.text() + this.log(`[CloudAPI] Error response body text: ${bodyText}`) + + try { + responseBody = JSON.parse(bodyText) + this.log(`[CloudAPI] Parsed error response as JSON:`, responseBody) + } catch { + responseBody = bodyText + this.log(`[CloudAPI] Error response is plain text: ${bodyText}`) + } + } catch (error) { + this.log(`[CloudAPI] Failed to read error response body: ${error}`) + responseBody = "Failed to read error response" } switch (response.status) { @@ -134,4 +171,24 @@ export class CloudAPI { .parse(data), }) } + + async getUsagePreview(): Promise { + this.log("[CloudAPI] Fetching usage preview - starting request") + + try { + const response = await this.request("/api/analytics/usage/daily?period=7&format=array", { + method: "GET", + parseResponse: (data) => { + this.log("[CloudAPI] Parsing usage preview response data:", data) + return usageStatsSchema.parse(data) + }, + }) + + this.log("[CloudAPI] Usage preview response successfully received:", response) + return response + } catch (error) { + this.log("[CloudAPI] Error fetching usage preview:", error) + throw error + } + } } diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index af5f9925c35..87526f4fb0f 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -3110,5 +3110,73 @@ export const webviewMessageHandler = async ( }) break } + case "getUsagePreview": { + try { + provider.log("[webviewMessageHandler] Received getUsagePreview request") + + // Get the CloudAPI instance and fetch usage preview + const cloudApi = CloudService.instance.cloudAPI + if (!cloudApi) { + // User is not authenticated + provider.log("[webviewMessageHandler] User not authenticated for usage preview") + await provider.postMessageToWebview({ + type: "usagePreviewData", + error: "Authentication required", + data: null, + }) + break + } + + // Fetch usage preview data + provider.log("[webviewMessageHandler] Calling cloudApi.getUsagePreview()") + const rawUsageData = await cloudApi.getUsagePreview() + provider.log(`[webviewMessageHandler] Raw API response structure: ${JSON.stringify(rawUsageData)}`) + provider.log( + `[webviewMessageHandler] Raw API response has properties: ${Object.keys(rawUsageData).join(", ")}`, + ) + + // Transform the data to match UI expectations + // The API returns data with separate arrays, but UI expects an array of day objects + const transformedData = { + days: + rawUsageData.data?.dates?.map((date: string, index: number) => ({ + date: date, + taskCount: rawUsageData.data.tasks[index] || 0, + tokenCount: rawUsageData.data.tokens[index] || 0, + cost: rawUsageData.data.costs[index] || 0, + })) || [], + totals: rawUsageData.data?.totals || { + tasks: 0, + tokens: 0, + cost: 0, + }, + } + + provider.log(`[webviewMessageHandler] Transformed data for UI: ${JSON.stringify(transformedData)}`) + provider.log(`[webviewMessageHandler] Transformed data has ${transformedData.days.length} days`) + + // Send the transformed data back to the webview + await provider.postMessageToWebview({ + type: "usagePreviewData", + data: transformedData, + error: undefined, + }) + } catch (error) { + provider.log( + `[webviewMessageHandler] Failed to fetch usage preview: ${error instanceof Error ? error.message : String(error)}`, + ) + provider.log( + `[webviewMessageHandler] Error stack trace: ${error instanceof Error ? error.stack : "No stack trace"}`, + ) + + // Send error back to webview + await provider.postMessageToWebview({ + type: "usagePreviewData", + error: error instanceof Error ? error.message : "Failed to load usage data", + data: null, + }) + } + break + } } } diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 66f389f81c1..09e551b34ab 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -126,6 +126,7 @@ export interface ExtensionMessage { | "insertTextIntoTextarea" | "dismissedUpsells" | "organizationSwitchResult" + | "usagePreviewData" text?: string payload?: any // Add a generic payload for now, can refine later action?: @@ -205,6 +206,7 @@ export interface ExtensionMessage { queuedMessages?: QueuedMessage[] list?: string[] // For dismissedUpsells organizationId?: string | null // For organizationSwitchResult + data?: any // For usagePreviewData } export type ExtensionState = Pick< diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index d43a2fce043..97c52ef718e 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -229,6 +229,7 @@ export interface WebviewMessage { | "editQueuedMessage" | "dismissUpsell" | "getDismissedUpsells" + | "getUsagePreview" text?: string editedMessageContent?: string tab?: "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "cloud" diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index de5fdd003b1..35b7f330133 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -9,12 +9,13 @@ import { vscode } from "@src/utils/vscode" import { telemetryClient } from "@src/utils/TelemetryClient" import { ToggleSwitch } from "@/components/ui/toggle-switch" import { renderCloudBenefitsContent } from "./CloudUpsellDialog" -import { CircleAlert, Info, Lock, TriangleAlert } from "lucide-react" +import { CircleAlert, Lock, TriangleAlert } from "lucide-react" import { cn } from "@/lib/utils" import { Tab, TabContent, TabHeader } from "../common/Tab" import { Button } from "@/components/ui/button" import { OrganizationSwitcher } from "./OrganizationSwitcher" import { StandardTooltip } from "../ui" +import { UsagePreview } from "./UsagePreview" // Define the production URL constant locally to avoid importing from cloud package in tests const PRODUCTION_ROO_CODE_API_URL = "https://app.roocode.com" @@ -145,6 +146,11 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga } } + const handleViewUsageStats = () => { + const baseUrl = cloudApiUrl || PRODUCTION_ROO_CODE_API_URL + vscode.postMessage({ type: "openExternal", url: `${baseUrl}/usage` }) + } + const handleRemoteControlToggle = () => { const newValue = !remoteControlEnabled setRemoteControlEnabled(newValue) @@ -164,119 +170,128 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga - + {isAuthenticated ? ( - <> - {userInfo && ( -
-
- {userInfo?.picture ? ( - {t("cloud:profilePicture")} - ) : ( -
- {userInfo?.name?.charAt(0) || userInfo?.email?.charAt(0) || "?"} +
+ {/* Content that scrolls */} +
+ {userInfo && ( +
+ {/* Avatar */} +
+ {userInfo?.picture ? ( + {t("cloud:profilePicture")} + ) : ( +
+ {userInfo?.name?.charAt(0) || userInfo?.email?.charAt(0) || "?"} +
+ )} +
+ + {/* Name, email and org switcher */} +
+ {userInfo.name && ( +

+ {userInfo.name} +

+ )} + {userInfo?.email && ( +

+ {userInfo?.email} +

+ )} + + {/* Organization Switcher */} +
+
- )} +
- {userInfo.name && ( -

{userInfo.name}

- )} - {userInfo?.email && ( -

{userInfo?.email}

- )} + )} - {/* Organization Switcher - moved below email */} -
- +
+ + + {t("cloud:taskSync")} + {userInfo?.organizationId && ( + +
+ +
+
+ )} +
+
+
+ {t("cloud:taskSyncDescription")}
-
- )} - - {/* Task Sync Toggle - Always shown when authenticated */} -
-
- - - {t("cloud:taskSync")} - {userInfo?.organizationId && ( - -
- -
-
- )} -
-
-
- {t("cloud:taskSyncDescription")} -
- {/* Remote Control Toggle - Only shown when both extensionBridgeEnabled and featureRoomoteControlEnabled are true */} - {userInfo?.extensionBridgeEnabled && featureRoomoteControlEnabled && ( - <> -
- - - {t("cloud:remoteControl")} - -
-
- {t("cloud:remoteControlDescription")} - {!taskSyncEnabled && ( -
- - {t("cloud:remoteControlRequiresTaskSync")} -
- )} -
- - )} -
+ {/* Remote Control Toggle - Only shown when both extensionBridgeEnabled and featureRoomoteControlEnabled are true */} + {userInfo?.extensionBridgeEnabled && featureRoomoteControlEnabled && ( + <> +
+ + + {t("cloud:remoteControl")} + +
+
+ {t("cloud:remoteControlDescription")} + {!taskSyncEnabled && ( +
+ + {t("cloud:remoteControlRequiresTaskSync")} +
+ )} +
+ + )} +
-
- - {t("cloud:usageMetricsAlwaysReported")} -
+ {/* Usage Stats Chart Section */} +
+ +
-
- - {t("cloud:visitCloudWebsite")} - - - {t("cloud:logOut")} - +
+ + {t("cloud:visitCloudWebsite")} + + + {t("cloud:logOut")} + +
- +
) : ( - <> +
{renderCloudBenefitsContent(t)}
@@ -329,7 +344,7 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga
)}
- +
)} {cloudApiUrl && cloudApiUrl !== PRODUCTION_ROO_CODE_API_URL && (
diff --git a/webview-ui/src/components/cloud/UsagePreview.tsx b/webview-ui/src/components/cloud/UsagePreview.tsx new file mode 100644 index 00000000000..7109d9b0019 --- /dev/null +++ b/webview-ui/src/components/cloud/UsagePreview.tsx @@ -0,0 +1,215 @@ +import { useEffect, useState } from "react" +import { VSCodeProgressRing } from "@vscode/webview-ui-toolkit/react" +import { CircleAlert, SquareArrowOutUpRight } from "lucide-react" +import { useAppTranslation } from "@src/i18n/TranslationContext" +import { vscode } from "@src/utils/vscode" +import { formatDateShort } from "@/utils/format" + +interface DailyUsage { + date: string // ISO date string + taskCount: number + tokenCount: number + cost: number // in USD +} + +interface UsageStats { + days: DailyUsage[] + totals: { + tasks: number + tokens: number + cost: number + } +} + +interface UsagePreviewProps { + onViewDetails: () => void +} + +export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { + const { t } = useAppTranslation() + const [isLoading, setIsLoading] = useState(true) + const [error, setError] = useState(null) + const [data, setData] = useState(null) + + // Format large numbers (e.g., 14800000 -> "14.8M") + const formatTokenCount = (tokens: number): string => { + if (tokens >= 1_000_000) { + return `${(tokens / 1_000_000).toFixed(1)}M` + } else if (tokens >= 1_000) { + return `${(tokens / 1_000).toFixed(1)}K` + } + return tokens.toString() + } + + // Format cost (e.g., 17.81 -> "$17.81") + const formatCost = (cost: number): string => { + return `$${cost.toFixed(2)}` + } + + // Fetch usage data on mount + useEffect(() => { + setIsLoading(true) + setError(null) + + // Request usage preview data from the extension + vscode.postMessage({ type: "getUsagePreview" }) + + // Listen for the response + const handleMessage = (event: MessageEvent) => { + const message = event.data + + if (message.type === "usagePreviewData") { + console.log("[UsagePreview] Received usagePreviewData:", message) + console.log("[UsagePreview] Data structure:", { + hasData: !!message.data, + dataKeys: message.data ? Object.keys(message.data) : [], + hasDays: message.data?.days !== undefined, + daysIsArray: Array.isArray(message.data?.days), + daysLength: message.data?.days?.length || 0, + }) + + if (message.error) { + console.log("[UsagePreview] Setting error:", message.error) + setError(message.error) + } else if (message.data) { + // Validate the data structure + if (!message.data.days || !Array.isArray(message.data.days)) { + console.error( + "[UsagePreview] Invalid data structure - missing or non-array days:", + message.data, + ) + setError("Invalid data format received") + } else { + console.log("[UsagePreview] Setting valid data with", message.data.days.length, "days") + setData(message.data) + } + } + setIsLoading(false) + } + } + + window.addEventListener("message", handleMessage) + + // Clean up listener after 10 seconds (timeout) + const timeout = setTimeout(() => { + if (isLoading) { + setError("Failed to load usage data") + setIsLoading(false) + } + }, 10000) + + return () => { + clearTimeout(timeout) + window.removeEventListener("message", handleMessage) + } + }, []) // eslint-disable-line react-hooks/exhaustive-deps + + const getBarHeight = (cost: number): number => { + const maxCost = Math.max(...data.days.map((d) => d.cost)) + return Math.max(1, ~~(cost / maxCost) * 100) // Avoid NaN and enforce minimum 10% height for visibility + } + + // Retry loading + const handleRetry = () => { + setError(null) + setIsLoading(true) + vscode.postMessage({ type: "getUsagePreview" }) + } + + // Loading state + if (isLoading) { + return ( +
+
+ {/* Loading spinner centered in chart area */} +
+ +
+
+
+ ) + } + + // Error state + if (error) { + return ( +
+
+ {/* Error message in chart area */} +
+ +

Couldn't load chart:

+

{error}

+

Click to retry

+
+
+
+ ) + } + + // Use placeholder data if no real data available + const displayData = data || { + days: [ + { date: "2025-09-17", taskCount: 2, tokenCount: 3200000, cost: 3.2 }, + { date: "2025-09-18", taskCount: 1, tokenCount: 1600000, cost: 1.6 }, + { date: "2025-09-19", taskCount: 1, tokenCount: 2400000, cost: 2.4 }, + { date: "2025-09-20", taskCount: 0, tokenCount: 1200000, cost: 1.2 }, + { date: "2025-09-21", taskCount: 3, tokenCount: 4000000, cost: 4.0 }, + { date: "2025-09-22", taskCount: 1, tokenCount: 2800000, cost: 2.8 }, + { date: "2025-09-23", taskCount: 1, tokenCount: 2000000, cost: 2.61 }, + ], + totals: { + tasks: 9, + tokens: 14800000, + cost: 17.81, + }, + } + + return ( +
+
+ {/* Chart with daily usage bars */} +
+ {displayData.days && + Array.isArray(displayData.days) && + displayData.days.map((day, index) => ( +
+
+ + {formatDateShort(new Date(day.date).getTime())} + +
+ ))} +
+ + {/* Stats text */} +
+ + {t("cloud:usageStats.pastDays", { count: displayData.days.length })} + + + {displayData.totals.tasks} tasks · {formatTokenCount(displayData.totals.tokens)} tokens ·{" "} + {formatCost(displayData.totals.cost)} + +
+
+ + {/* Hover overlay */} +
+
+ {t("cloud:usageStats.seeMoreStats")} + +
+
+
+ ) +} diff --git a/webview-ui/src/i18n/locales/en/cloud.json b/webview-ui/src/i18n/locales/en/cloud.json index 05220f83336..dcf05fcccea 100644 --- a/webview-ui/src/i18n/locales/en/cloud.json +++ b/webview-ui/src/i18n/locales/en/cloud.json @@ -26,6 +26,10 @@ "personalAccount": "Personal Account", "switchAccount": "Switch Roo Code Cloud Account", "createTeamAccount": "Create Team Account", + "usageStats": { + "pastDays": "Past {{count}} days", + "seeMoreStats": "See more stats in Roo Code Cloud" + }, "upsell": { "autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Roo Code Cloud. Learn more.", "longRunningTask": "This might take a while. Continue from anywhere with Cloud.", diff --git a/webview-ui/src/utils/format.ts b/webview-ui/src/utils/format.ts index 29c7a2c9663..d810bd3e03a 100644 --- a/webview-ui/src/utils/format.ts +++ b/webview-ui/src/utils/format.ts @@ -26,6 +26,15 @@ export const formatDate = (timestamp: number) => { }) } +export const formatDateShort = (timestamp: number) => { + const date = new Date(timestamp) + const locale = i18next.language || "en" + return date.toLocaleDateString(locale, { + month: "numeric", + day: "numeric", + }) +} + export const formatTimeAgo = (timestamp: number) => { const now = Date.now() const diff = now - timestamp From af0a90e5a60f48c89db655a7080e48e7da414268 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 13:55:23 +0100 Subject: [PATCH 02/25] Lint fixes --- webview-ui/src/components/cloud/CloudView.tsx | 2 +- webview-ui/src/components/cloud/UsagePreview.tsx | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index 35b7f330133..7484b0c53bf 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -274,7 +274,7 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga {/* Usage Stats Chart Section */}
- +
diff --git a/webview-ui/src/components/cloud/UsagePreview.tsx b/webview-ui/src/components/cloud/UsagePreview.tsx index 7109d9b0019..b868718f343 100644 --- a/webview-ui/src/components/cloud/UsagePreview.tsx +++ b/webview-ui/src/components/cloud/UsagePreview.tsx @@ -105,8 +105,9 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { }, []) // eslint-disable-line react-hooks/exhaustive-deps const getBarHeight = (cost: number): number => { + if (!data || !data.days || data.days.length === 0) return 1 const maxCost = Math.max(...data.days.map((d) => d.cost)) - return Math.max(1, ~~(cost / maxCost) * 100) // Avoid NaN and enforce minimum 10% height for visibility + return Math.max(1, ~~(cost / maxCost) * 100) // Avoid NaN and enforce minimum height for visibility } // Retry loading From 2c31616e8ade2a3995c3beda2d32d82fac17bf93 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 14:21:57 +0100 Subject: [PATCH 03/25] Actually makes data flow in --- packages/cloud/src/CloudAPI.ts | 39 +++--------- src/core/webview/webviewMessageHandler.ts | 10 --- .../src/components/cloud/UsagePreview.tsx | 61 ++++--------------- 3 files changed, 21 insertions(+), 89 deletions(-) diff --git a/packages/cloud/src/CloudAPI.ts b/packages/cloud/src/CloudAPI.ts index 8e7a14591ee..b0c9806c135 100644 --- a/packages/cloud/src/CloudAPI.ts +++ b/packages/cloud/src/CloudAPI.ts @@ -77,9 +77,7 @@ export class CloudAPI { } // Log before attempting to read the body - this.log(`[CloudAPI] Reading response body for ${endpoint}`) const data = await response.json() - this.log(`[CloudAPI] Successfully read response body for ${endpoint}`) if (parseResponse) { return parseResponse(data) @@ -109,22 +107,14 @@ export class CloudAPI { let responseBody: unknown try { - // Clone the response before reading to avoid "Body has already been read" error - this.log(`[CloudAPI] Handling error response for ${endpoint}, status: ${response.status}`) - - // Read the body as text first, then try to parse as JSON const bodyText = await response.text() - this.log(`[CloudAPI] Error response body text: ${bodyText}`) try { responseBody = JSON.parse(bodyText) - this.log(`[CloudAPI] Parsed error response as JSON:`, responseBody) } catch { responseBody = bodyText - this.log(`[CloudAPI] Error response is plain text: ${bodyText}`) } - } catch (error) { - this.log(`[CloudAPI] Failed to read error response body: ${error}`) + } catch (_error) { responseBody = "Failed to read error response" } @@ -146,15 +136,12 @@ export class CloudAPI { } async shareTask(taskId: string, visibility: ShareVisibility = "organization"): Promise { - this.log(`[CloudAPI] Sharing task ${taskId} with visibility: ${visibility}`) - const response = await this.request("/api/extension/share", { method: "POST", body: JSON.stringify({ taskId, visibility }), parseResponse: (data) => shareResponseSchema.parse(data), }) - this.log("[CloudAPI] Share response:", response) return response } @@ -173,22 +160,12 @@ export class CloudAPI { } async getUsagePreview(): Promise { - this.log("[CloudAPI] Fetching usage preview - starting request") - - try { - const response = await this.request("/api/analytics/usage/daily?period=7&format=array", { - method: "GET", - parseResponse: (data) => { - this.log("[CloudAPI] Parsing usage preview response data:", data) - return usageStatsSchema.parse(data) - }, - }) - - this.log("[CloudAPI] Usage preview response successfully received:", response) - return response - } catch (error) { - this.log("[CloudAPI] Error fetching usage preview:", error) - throw error - } + const response = await this.request("/api/analytics/usage/daily?period=7", { + method: "GET", + parseResponse: (data) => { + return usageStatsSchema.parse(data) + }, + }) + return response } } diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 87526f4fb0f..aace4cc5744 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -3112,8 +3112,6 @@ export const webviewMessageHandler = async ( } case "getUsagePreview": { try { - provider.log("[webviewMessageHandler] Received getUsagePreview request") - // Get the CloudAPI instance and fetch usage preview const cloudApi = CloudService.instance.cloudAPI if (!cloudApi) { @@ -3128,12 +3126,7 @@ export const webviewMessageHandler = async ( } // Fetch usage preview data - provider.log("[webviewMessageHandler] Calling cloudApi.getUsagePreview()") const rawUsageData = await cloudApi.getUsagePreview() - provider.log(`[webviewMessageHandler] Raw API response structure: ${JSON.stringify(rawUsageData)}`) - provider.log( - `[webviewMessageHandler] Raw API response has properties: ${Object.keys(rawUsageData).join(", ")}`, - ) // Transform the data to match UI expectations // The API returns data with separate arrays, but UI expects an array of day objects @@ -3152,9 +3145,6 @@ export const webviewMessageHandler = async ( }, } - provider.log(`[webviewMessageHandler] Transformed data for UI: ${JSON.stringify(transformedData)}`) - provider.log(`[webviewMessageHandler] Transformed data has ${transformedData.days.length} days`) - // Send the transformed data back to the webview await provider.postMessageToWebview({ type: "usagePreviewData", diff --git a/webview-ui/src/components/cloud/UsagePreview.tsx b/webview-ui/src/components/cloud/UsagePreview.tsx index b868718f343..c90c6a5eca0 100644 --- a/webview-ui/src/components/cloud/UsagePreview.tsx +++ b/webview-ui/src/components/cloud/UsagePreview.tsx @@ -59,28 +59,13 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { const message = event.data if (message.type === "usagePreviewData") { - console.log("[UsagePreview] Received usagePreviewData:", message) - console.log("[UsagePreview] Data structure:", { - hasData: !!message.data, - dataKeys: message.data ? Object.keys(message.data) : [], - hasDays: message.data?.days !== undefined, - daysIsArray: Array.isArray(message.data?.days), - daysLength: message.data?.days?.length || 0, - }) - if (message.error) { - console.log("[UsagePreview] Setting error:", message.error) setError(message.error) } else if (message.data) { // Validate the data structure if (!message.data.days || !Array.isArray(message.data.days)) { - console.error( - "[UsagePreview] Invalid data structure - missing or non-array days:", - message.data, - ) setError("Invalid data format received") } else { - console.log("[UsagePreview] Setting valid data with", message.data.days.length, "days") setData(message.data) } } @@ -106,8 +91,8 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { const getBarHeight = (cost: number): number => { if (!data || !data.days || data.days.length === 0) return 1 - const maxCost = Math.max(...data.days.map((d) => d.cost)) - return Math.max(1, ~~(cost / maxCost) * 100) // Avoid NaN and enforce minimum height for visibility + const maxCost = ~~Math.max(...data.days.map((d) => d.cost)) // Avoid NaN + return Math.max(1, ~~(cost / maxCost) * 100) // Enforce minimum height for visibility } // Retry loading @@ -134,7 +119,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { } // Error state - if (error) { + if (error || !data) { return (
{ ) } - // Use placeholder data if no real data available - const displayData = data || { - days: [ - { date: "2025-09-17", taskCount: 2, tokenCount: 3200000, cost: 3.2 }, - { date: "2025-09-18", taskCount: 1, tokenCount: 1600000, cost: 1.6 }, - { date: "2025-09-19", taskCount: 1, tokenCount: 2400000, cost: 2.4 }, - { date: "2025-09-20", taskCount: 0, tokenCount: 1200000, cost: 1.2 }, - { date: "2025-09-21", taskCount: 3, tokenCount: 4000000, cost: 4.0 }, - { date: "2025-09-22", taskCount: 1, tokenCount: 2800000, cost: 2.8 }, - { date: "2025-09-23", taskCount: 1, tokenCount: 2000000, cost: 2.61 }, - ], - totals: { - tasks: 9, - tokens: 14800000, - cost: 17.81, - }, - } - return ( -
+
{/* Chart with daily usage bars */}
- {displayData.days && - Array.isArray(displayData.days) && - displayData.days.map((day, index) => ( + {data && + Array.isArray(data.days) && + data.days.map((day, index) => (
{
{/* Stats text */} -
+
- {t("cloud:usageStats.pastDays", { count: displayData.days.length })} + {t("cloud:usageStats.pastDays", { count: data.days.length })} - {displayData.totals.tasks} tasks · {formatTokenCount(displayData.totals.tokens)} tokens ·{" "} - {formatCost(displayData.totals.cost)} + {data.totals.tasks} tasks · {formatTokenCount(data.totals.tokens)} tokens ·{" "} + {formatCost(data.totals.cost)}
{/* Hover overlay */} -
+
{t("cloud:usageStats.seeMoreStats")} - +
From d84e031f4cb80ffd74f9195d878b10566d6e9156 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 14:40:01 +0100 Subject: [PATCH 04/25] i18n --- .../src/components/cloud/UsagePreview.tsx | 17 ++++++++++------- webview-ui/src/i18n/locales/ca/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/de/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/en/cloud.json | 13 ++++++++++--- webview-ui/src/i18n/locales/es/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/fr/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/hi/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/id/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/it/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/ja/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/ko/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/nl/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/pl/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/pt-BR/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/ru/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/tr/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/vi/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/zh-CN/cloud.json | 11 +++++++++++ webview-ui/src/i18n/locales/zh-TW/cloud.json | 11 +++++++++++ 19 files changed, 207 insertions(+), 10 deletions(-) diff --git a/webview-ui/src/components/cloud/UsagePreview.tsx b/webview-ui/src/components/cloud/UsagePreview.tsx index c90c6a5eca0..3f7ef64daf9 100644 --- a/webview-ui/src/components/cloud/UsagePreview.tsx +++ b/webview-ui/src/components/cloud/UsagePreview.tsx @@ -64,7 +64,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { } else if (message.data) { // Validate the data structure if (!message.data.days || !Array.isArray(message.data.days)) { - setError("Invalid data format received") + setError(t("cloud:usagePreview.invalidDataFormat")) } else { setData(message.data) } @@ -78,7 +78,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { // Clean up listener after 10 seconds (timeout) const timeout = setTimeout(() => { if (isLoading) { - setError("Failed to load usage data") + setError(t("cloud:usagePreview.failedToLoad")) setIsLoading(false) } }, 10000) @@ -128,9 +128,9 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { {/* Error message in chart area */}
-

Couldn't load chart:

+

{t("cloud:usagePreview.couldNotLoadChart")}

{error}

-

Click to retry

+

{t("cloud:usagePreview.clickToRetry")}

@@ -160,10 +160,13 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { {/* Stats text */}
- {t("cloud:usageStats.pastDays", { count: data.days.length })} + {t("cloud:usagePreview.costPastDays", { count: data.days.length })} - {data.totals.tasks} tasks · {formatTokenCount(data.totals.tokens)} tokens ·{" "} + {t("cloud:usagePreview.tasks", { count: data.totals.tasks })} + · + {t("cloud:usagePreview.tokens", { count: formatTokenCount(data.totals.tokens) })} + · {formatCost(data.totals.cost)}
@@ -172,7 +175,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { {/* Hover overlay */}
- {t("cloud:usageStats.seeMoreStats")} + {t("cloud:usagePreview.seeMoreStats")}
diff --git a/webview-ui/src/i18n/locales/ca/cloud.json b/webview-ui/src/i18n/locales/ca/cloud.json index e255a4e95db..ac64c3d9d93 100644 --- a/webview-ui/src/i18n/locales/ca/cloud.json +++ b/webview-ui/src/i18n/locales/ca/cloud.json @@ -26,6 +26,17 @@ "personalAccount": "Compte Personal", "createTeamAccount": "Crear Compte d'Equip", "switchAccount": "Canviar Compte de Roo Code Cloud", + "usagePreview": { + "costPastDays": "Cost diari dels darrers {{count}} dies", + "seeMoreStats": "Consulta més estadístiques a Roo Code Cloud", + "invalidDataFormat": "S'ha rebut un format de dades no vàlid", + "failedToLoad": "No s'han pogut carregar les dades d'ús", + "couldNotLoadChart": "No s'ha pogut carregar el gràfic:", + "clickToRetry": "Fes clic per tornar a intentar-ho", + "tasks_one": "{{count}} tasca", + "tasks_other": "{{count}} tasques", + "tokens": "{{count}} tokens" + }, "upsell": { "autoApprovePowerUser": "Donant-li una mica d'independència a Roo? Controla'l des de qualsevol lloc amb Roo Code Cloud. Més informació.", "longRunningTask": "Això pot trigar una estona. Continua des de qualsevol lloc amb Cloud.", diff --git a/webview-ui/src/i18n/locales/de/cloud.json b/webview-ui/src/i18n/locales/de/cloud.json index 2a3a3b1ea4f..2553660f744 100644 --- a/webview-ui/src/i18n/locales/de/cloud.json +++ b/webview-ui/src/i18n/locales/de/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Roo Code Cloud Konto wechseln", "createTeamAccount": "Team-Konto erstellen", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "Tägliche Kosten der letzten {{count}} Tage", + "seeMoreStats": "Weitere Statistiken in Roo Code Cloud anzeigen", + "invalidDataFormat": "Ungültiges Datenformat empfangen", + "failedToLoad": "Nutzungsdaten konnten nicht geladen werden", + "couldNotLoadChart": "Diagramm konnte nicht geladen werden:", + "clickToRetry": "Klicken, um es erneut zu versuchen", + "tasks_one": "{{count}} Aufgabe", + "tasks_other": "{{count}} Aufgaben", + "tokens": "{{count}} Tokens" + }, "upsell": { "autoApprovePowerUser": "Roo etwas Unabhängigkeit geben? Kontrolliere es von überall mit Roo Code Cloud. Mehr erfahren.", "longRunningTask": "Das könnte eine Weile dauern. Mit Cloud von überall weitermachen.", diff --git a/webview-ui/src/i18n/locales/en/cloud.json b/webview-ui/src/i18n/locales/en/cloud.json index dcf05fcccea..19c842b192e 100644 --- a/webview-ui/src/i18n/locales/en/cloud.json +++ b/webview-ui/src/i18n/locales/en/cloud.json @@ -26,9 +26,16 @@ "personalAccount": "Personal Account", "switchAccount": "Switch Roo Code Cloud Account", "createTeamAccount": "Create Team Account", - "usageStats": { - "pastDays": "Past {{count}} days", - "seeMoreStats": "See more stats in Roo Code Cloud" + "usagePreview": { + "costPastDays": "Daily cost past {{count}} days", + "seeMoreStats": "See more stats in Roo Code Cloud", + "invalidDataFormat": "Invalid data format received", + "failedToLoad": "Failed to load usage data", + "couldNotLoadChart": "Couldn't load chart:", + "clickToRetry": "Click to retry", + "tasks_one": "{{count}} task", + "tasks_other": "{{count}} tasks", + "tokens": "{{count}} tokens" }, "upsell": { "autoApprovePowerUser": "Giving Roo some independence? Control it from anywhere with Roo Code Cloud. Learn more.", diff --git a/webview-ui/src/i18n/locales/es/cloud.json b/webview-ui/src/i18n/locales/es/cloud.json index 9d5830d2393..76688d19760 100644 --- a/webview-ui/src/i18n/locales/es/cloud.json +++ b/webview-ui/src/i18n/locales/es/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Cambiar Cuenta de Roo Code Cloud", "createTeamAccount": "Crear Cuenta de Equipo", "cloudUrlPillLabel": "URL de Roo Code Cloud", + "usagePreview": { + "costPastDays": "Costo diario de los últimos {{count}} días", + "seeMoreStats": "Ver más estadísticas en Roo Code Cloud", + "invalidDataFormat": "Formato de datos recibido no válido", + "failedToLoad": "No se pudieron cargar los datos de uso", + "couldNotLoadChart": "No se pudo cargar el gráfico:", + "clickToRetry": "Haz clic para reintentar", + "tasks_one": "{{count}} tarea", + "tasks_other": "{{count}} tareas", + "tokens": "{{count}} tokens" + }, "upsell": { "autoApprovePowerUser": "¿Dándole a Roo un poco de independencia? Contrólalo desde cualquier lugar con Roo Code Cloud. Saber más.", "longRunningTask": "Esto podría tardar un poco. Continúa desde cualquier lugar con la Nube.", diff --git a/webview-ui/src/i18n/locales/fr/cloud.json b/webview-ui/src/i18n/locales/fr/cloud.json index e6e6912be2a..e24d1f0cb9d 100644 --- a/webview-ui/src/i18n/locales/fr/cloud.json +++ b/webview-ui/src/i18n/locales/fr/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Changer de Compte Roo Code Cloud", "createTeamAccount": "Créer un Compte d'Équipe", "cloudUrlPillLabel": "URL de Roo Code Cloud", + "usagePreview": { + "costPastDays": "Coût quotidien des {{count}} derniers jours", + "seeMoreStats": "Voir plus de statistiques dans Roo Code Cloud", + "invalidDataFormat": "Format de données reçu invalide", + "failedToLoad": "Échec du chargement des données d'utilisation", + "couldNotLoadChart": "Impossible de charger le graphique :", + "clickToRetry": "Cliquez pour réessayer", + "tasks_one": "{{count}} tâche", + "tasks_other": "{{count}} tâches", + "tokens": "{{count}} jetons" + }, "upsell": { "autoApprovePowerUser": "Donner à Roo un peu d'indépendance ? Contrôlez-le de n'importe où avec Roo Code Cloud. En savoir plus.", "longRunningTask": "Cela peut prendre un certain temps. Continuez de n'importe où avec le Cloud.", diff --git a/webview-ui/src/i18n/locales/hi/cloud.json b/webview-ui/src/i18n/locales/hi/cloud.json index dd1b1ebca5a..a62fd75a8c2 100644 --- a/webview-ui/src/i18n/locales/hi/cloud.json +++ b/webview-ui/src/i18n/locales/hi/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Roo Code Cloud खाता बदलें", "createTeamAccount": "टीम खाता बनाएं", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "पिछले {{count}} दिनों की दैनिक लागत", + "seeMoreStats": "रू कोड क्लाउड में और आँकड़े देखें", + "invalidDataFormat": "अमान्य डेटा प्रारूप प्राप्त हुआ", + "failedToLoad": "उपयोग डेटा लोड करने में विफल", + "couldNotLoadChart": "चार्ट लोड नहीं हो सका:", + "clickToRetry": "पुनः प्रयास करने के लिए क्लिक करें", + "tasks_one": "{{count}} कार्य", + "tasks_other": "{{count}} कार्य", + "tokens": "{{count}} टोकन" + }, "upsell": { "autoApprovePowerUser": "रू को थोड़ी स्वतंत्रता दे रहे हैं? रू कोड क्लाउड के साथ इसे कहीं से भी नियंत्रित करें। और जानें।", "longRunningTask": "इसमें थोड़ा समय लग सकता है। क्लाउड के साथ कहीं से भी जारी रखें।", diff --git a/webview-ui/src/i18n/locales/id/cloud.json b/webview-ui/src/i18n/locales/id/cloud.json index 40d4c1e7b3e..131429ba5d9 100644 --- a/webview-ui/src/i18n/locales/id/cloud.json +++ b/webview-ui/src/i18n/locales/id/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Ganti Akun Roo Code Cloud", "createTeamAccount": "Buat Akun Tim", "cloudUrlPillLabel": "URL Roo Code Cloud", + "usagePreview": { + "costPastDays": "Biaya harian {{count}} hari terakhir", + "seeMoreStats": "Lihat statistik lainnya di Roo Code Cloud", + "invalidDataFormat": "Format data yang diterima tidak valid", + "failedToLoad": "Gagal memuat data penggunaan", + "couldNotLoadChart": "Tidak dapat memuat bagan:", + "clickToRetry": "Klik untuk mencoba lagi", + "tasks_one": "{{count}} tugas", + "tasks_other": "{{count}} tugas", + "tokens": "{{count}} token" + }, "upsell": { "autoApprovePowerUser": "Memberi Roo sedikit kebebasan? Kendalikan dari mana saja dengan Roo Code Cloud. Pelajari lebih lanjut.", "longRunningTask": "Ini mungkin akan memakan waktu cukup lama. Lanjutkan dari mana saja dengan Cloud.", diff --git a/webview-ui/src/i18n/locales/it/cloud.json b/webview-ui/src/i18n/locales/it/cloud.json index 944e4dd2d4b..7e087aa4a5b 100644 --- a/webview-ui/src/i18n/locales/it/cloud.json +++ b/webview-ui/src/i18n/locales/it/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Cambia Account Roo Code Cloud", "createTeamAccount": "Crea Account del Team", "cloudUrlPillLabel": "URL di Roo Code Cloud", + "usagePreview": { + "costPastDays": "Costo giornaliero degli ultimi {{count}} giorni", + "seeMoreStats": "Vedi altre statistiche in Roo Code Cloud", + "invalidDataFormat": "Formato dati ricevuto non valido", + "failedToLoad": "Impossibile caricare i dati di utilizzo", + "couldNotLoadChart": "Impossibile caricare il grafico:", + "clickToRetry": "Clicca per riprovare", + "tasks_one": "{{count}} attività", + "tasks_other": "{{count}} attività", + "tokens": "{{count}} token" + }, "upsell": { "autoApprovePowerUser": "Vuoi dare un po' di indipendenza a Roo? Controllalo da qualsiasi luogo con Roo Code Cloud. Scopri di più.", "longRunningTask": "Potrebbe volerci un po' di tempo. Continua da qualsiasi luogo con il Cloud.", diff --git a/webview-ui/src/i18n/locales/ja/cloud.json b/webview-ui/src/i18n/locales/ja/cloud.json index 6959602b174..a3b4c321910 100644 --- a/webview-ui/src/i18n/locales/ja/cloud.json +++ b/webview-ui/src/i18n/locales/ja/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Roo Code Cloud アカウントを切り替え", "createTeamAccount": "チームアカウントを作成", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "過去{{count}}日間の日次コスト", + "seeMoreStats": "Roo Code Cloudでさらに統計を見る", + "invalidDataFormat": "無効なデータ形式を受信しました", + "failedToLoad": "使用状況データの読み込みに失敗しました", + "couldNotLoadChart": "チャートを読み込めませんでした:", + "clickToRetry": "クリックして再試行", + "tasks_one": "{{count}}タスク", + "tasks_other": "{{count}}タスク", + "tokens": "{{count}}トークン" + }, "upsell": { "autoApprovePowerUser": "Rooに少し独立性を与えませんか?Roo Code Cloudでどこからでもコントロールできます。詳細。", "longRunningTask": "これには時間がかかるかもしれません。Cloudを使えばどこからでも続けられます。", diff --git a/webview-ui/src/i18n/locales/ko/cloud.json b/webview-ui/src/i18n/locales/ko/cloud.json index 962d5e872ab..4fb99e5e146 100644 --- a/webview-ui/src/i18n/locales/ko/cloud.json +++ b/webview-ui/src/i18n/locales/ko/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Roo Code Cloud 계정 전환", "createTeamAccount": "팀 계정 만들기", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "지난 {{count}}일간의 일일 비용", + "seeMoreStats": "Roo Code Cloud에서 더 많은 통계 보기", + "invalidDataFormat": "잘못된 데이터 형식을 받았습니다", + "failedToLoad": "사용 데이터를 로드하지 못했습니다", + "couldNotLoadChart": "차트를 로드할 수 없습니다:", + "clickToRetry": "클릭하여 다시 시도", + "tasks_one": "{{count}}개 작업", + "tasks_other": "{{count}}개 작업", + "tokens": "{{count}}개 토큰" + }, "upsell": { "autoApprovePowerUser": "Roo에게 약간의 독립성을 부여하시겠습니까? Roo Code Cloud로 어디서든 제어하세요. 더 알아보기.", "longRunningTask": "시간이 좀 걸릴 수 있습니다. Cloud로 어디서든 계속하세요.", diff --git a/webview-ui/src/i18n/locales/nl/cloud.json b/webview-ui/src/i18n/locales/nl/cloud.json index dc582e719b7..d3a0e487fa9 100644 --- a/webview-ui/src/i18n/locales/nl/cloud.json +++ b/webview-ui/src/i18n/locales/nl/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Wissel van Roo Code Cloud Account", "createTeamAccount": "Teamaccount aanmaken", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "Dagelijkse kosten afgelopen {{count}} dagen", + "seeMoreStats": "Bekijk meer statistieken in Roo Code Cloud", + "invalidDataFormat": "Ongeldig dataformaat ontvangen", + "failedToLoad": "Laden van gebruiksgegevens mislukt", + "couldNotLoadChart": "Grafiek kon niet geladen worden:", + "clickToRetry": "Klik om opnieuw te proberen", + "tasks_one": "{{count}} taak", + "tasks_other": "{{count}} taken", + "tokens": "{{count}} tokens" + }, "upsell": { "autoApprovePowerUser": "Roo wat onafhankelijkheid geven? Bedien het overal met Roo Code Cloud. Meer informatie.", "longRunningTask": "Dit kan even duren. Ga overal verder met de Cloud.", diff --git a/webview-ui/src/i18n/locales/pl/cloud.json b/webview-ui/src/i18n/locales/pl/cloud.json index 790d2cdf741..f0aa9665533 100644 --- a/webview-ui/src/i18n/locales/pl/cloud.json +++ b/webview-ui/src/i18n/locales/pl/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Przełącz Konto Roo Code Cloud", "createTeamAccount": "Utwórz Konto Zespołu", "cloudUrlPillLabel": "URL Roo Code Cloud", + "usagePreview": { + "costPastDays": "Dzienny koszt w ciągu ostatnich {{count}} dni", + "seeMoreStats": "Zobacz więcej statystyk w Roo Code Cloud", + "invalidDataFormat": "Otrzymano nieprawidłowy format danych", + "failedToLoad": "Nie udało się załadować danych o użytkowaniu", + "couldNotLoadChart": "Nie można załadować wykresu:", + "clickToRetry": "Kliknij, aby ponowić próbę", + "tasks_one": "{{count}} zadanie", + "tasks_other": "{{count}} zadania", + "tokens": "{{count}} tokeny" + }, "upsell": { "autoApprovePowerUser": "Dać Roo trochę niezależności? Kontroluj go z dowolnego miejsca dzięki Roo Code Cloud. Dowiedz się więcej.", "longRunningTask": "To może chwilę potrwać. Kontynuuj z dowolnego miejsca dzięki Chmurze.", diff --git a/webview-ui/src/i18n/locales/pt-BR/cloud.json b/webview-ui/src/i18n/locales/pt-BR/cloud.json index 1d979d46d74..7b9bbff6b36 100644 --- a/webview-ui/src/i18n/locales/pt-BR/cloud.json +++ b/webview-ui/src/i18n/locales/pt-BR/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Alternar Conta do Roo Code Cloud", "createTeamAccount": "Criar Conta de Equipe", "cloudUrlPillLabel": "URL do Roo Code Cloud ", + "usagePreview": { + "costPastDays": "Custo diário dos últimos {{count}} dias", + "seeMoreStats": "Veja mais estatísticas no Roo Code Cloud", + "invalidDataFormat": "Formato de dados recebido inválido", + "failedToLoad": "Falha ao carregar dados de uso", + "couldNotLoadChart": "Não foi possível carregar o gráfico:", + "clickToRetry": "Clique para tentar novamente", + "tasks_one": "{{count}} tarefa", + "tasks_other": "{{count}} tarefas", + "tokens": "{{count}} tokens" + }, "upsell": { "autoApprovePowerUser": "Dando um pouco de independência ao Roo? Controle-o de qualquer lugar com o Roo Code Cloud. Saiba mais.", "longRunningTask": "Isso pode levar um tempo. Continue de qualquer lugar com a Nuvem.", diff --git a/webview-ui/src/i18n/locales/ru/cloud.json b/webview-ui/src/i18n/locales/ru/cloud.json index 99313da1fcf..1a49e8fabd3 100644 --- a/webview-ui/src/i18n/locales/ru/cloud.json +++ b/webview-ui/src/i18n/locales/ru/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Переключить аккаунт Roo Code Cloud", "createTeamAccount": "Создать командный аккаунт", "cloudUrlPillLabel": "URL Roo Code Cloud", + "usagePreview": { + "costPastDays": "Ежедневная стоимость за последние {{count}} дней", + "seeMoreStats": "Смотреть больше статистики в Roo Code Cloud", + "invalidDataFormat": "Получен неверный формат данных", + "failedToLoad": "Не удалось загрузить данные об использовании", + "couldNotLoadChart": "Не удалось загрузить диаграмму:", + "clickToRetry": "Нажмите, чтобы повторить попытку", + "tasks_one": "{{count}} задача", + "tasks_other": "{{count}} задачи", + "tokens": "{{count}} токенов" + }, "upsell": { "autoApprovePowerUser": "Предоставить Roo немного независимости? Управляйте им из любого места с помощью Roo Code Cloud. Узнать больше.", "longRunningTask": "Это может занять некоторое время. Продолжайте из любого места с помощью Облака.", diff --git a/webview-ui/src/i18n/locales/tr/cloud.json b/webview-ui/src/i18n/locales/tr/cloud.json index daf90da84d3..2de37002e02 100644 --- a/webview-ui/src/i18n/locales/tr/cloud.json +++ b/webview-ui/src/i18n/locales/tr/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Roo Code Cloud Hesabını Değiştir", "createTeamAccount": "Takım Hesabı Oluştur", "cloudUrlPillLabel": "Roo Code Cloud URL'si", + "usagePreview": { + "costPastDays": "Son {{count}} günün günlük maliyeti", + "seeMoreStats": "Roo Code Cloud'da daha fazla istatistik görün", + "invalidDataFormat": "Geçersiz veri formatı alındı", + "failedToLoad": "Kullanım verileri yüklenemedi", + "couldNotLoadChart": "Grafik yüklenemedi:", + "clickToRetry": "Yeniden denemek için tıklayın", + "tasks_one": "{{count}} görev", + "tasks_other": "{{count}} görev", + "tokens": "{{count}} token" + }, "upsell": { "autoApprovePowerUser": "Roo'ya biraz bağımsızlık mı veriyorsunuz? Roo Code Cloud ile onu her yerden kontrol edin. Daha fazla bilgi edinin.", "longRunningTask": "Bu biraz zaman alabilir. Bulut ile her yerden devam edin.", diff --git a/webview-ui/src/i18n/locales/vi/cloud.json b/webview-ui/src/i18n/locales/vi/cloud.json index a3ad623da98..c50766ef09f 100644 --- a/webview-ui/src/i18n/locales/vi/cloud.json +++ b/webview-ui/src/i18n/locales/vi/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "Chuyển Tài Khoản Roo Code Cloud", "createTeamAccount": "Tạo Tài Khoản Nhóm", "cloudUrlPillLabel": "URL Roo Code Cloud", + "usagePreview": { + "costPastDays": "Chi phí hàng ngày trong {{count}} ngày qua", + "seeMoreStats": "Xem thêm số liệu thống kê trong Roo Code Cloud", + "invalidDataFormat": "Định dạng dữ liệu nhận được không hợp lệ", + "failedToLoad": "Không thể tải dữ liệu sử dụng", + "couldNotLoadChart": "Không thể tải biểu đồ:", + "clickToRetry": "Nhấp để thử lại", + "tasks_one": "{{count}} nhiệm vụ", + "tasks_other": "{{count}} nhiệm vụ", + "tokens": "{{count}} token" + }, "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. Tìm hiểu thêm.", "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.", diff --git a/webview-ui/src/i18n/locales/zh-CN/cloud.json b/webview-ui/src/i18n/locales/zh-CN/cloud.json index 1fce239f63d..c49b1894197 100644 --- a/webview-ui/src/i18n/locales/zh-CN/cloud.json +++ b/webview-ui/src/i18n/locales/zh-CN/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "切换 Roo Code Cloud 账户", "createTeamAccount": "创建团队账户", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "过去 {{count}} 天的每日费用", + "seeMoreStats": "在 Roo Code Cloud 中查看更多统计信息", + "invalidDataFormat": "收到的数据格式无效", + "failedToLoad": "无法加载使用数据", + "couldNotLoadChart": "无法加载图表:", + "clickToRetry": "点击重试", + "tasks_one": "{{count}} 个任务", + "tasks_other": "{{count}} 个任务", + "tokens": "{{count}} token" + }, "upsell": { "autoApprovePowerUser": "给 Roo 一些独立性?使用 Roo Code Cloud 从任何地方控制它。 了解更多。", "longRunningTask": "这可能需要一段时间。使用 Cloud 从任何地方继续。", diff --git a/webview-ui/src/i18n/locales/zh-TW/cloud.json b/webview-ui/src/i18n/locales/zh-TW/cloud.json index 54cecf1af2a..77a909a3b9f 100644 --- a/webview-ui/src/i18n/locales/zh-TW/cloud.json +++ b/webview-ui/src/i18n/locales/zh-TW/cloud.json @@ -26,6 +26,17 @@ "switchAccount": "切換 Roo Code Cloud 帳戶", "createTeamAccount": "創建團隊帳戶", "cloudUrlPillLabel": "Roo Code Cloud URL", + "usagePreview": { + "costPastDays": "過去 {{count}} 天的每日費用", + "seeMoreStats": "在 Roo Code Cloud 中查看更多統計訊息", + "invalidDataFormat": "收到的資料格式無效", + "failedToLoad": "無法載入使用資料", + "couldNotLoadChart": "無法載入圖表:", + "clickToRetry": "點擊重試", + "tasks_one": "{{count}} 個任務", + "tasks_other": "{{count}} 個任務", + "tokens": "{{count}} 個 token" + }, "upsell": { "autoApprovePowerUser": "給 Roo 一點獨立性?使用 Roo Code Cloud 隨時隨地控制它。了解更多。", "longRunningTask": "這可能需要一些時間。使用雲端隨時隨地繼續。", From eda8cae7d056a82181d6b6ce04e087231c906d21 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 14:54:22 +0100 Subject: [PATCH 05/25] Adds utm params --- webview-ui/src/components/cloud/CloudView.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webview-ui/src/components/cloud/CloudView.tsx b/webview-ui/src/components/cloud/CloudView.tsx index 7484b0c53bf..821f3914108 100644 --- a/webview-ui/src/components/cloud/CloudView.tsx +++ b/webview-ui/src/components/cloud/CloudView.tsx @@ -148,7 +148,10 @@ export const CloudView = ({ userInfo, isAuthenticated, cloudApiUrl, onDone, orga const handleViewUsageStats = () => { const baseUrl = cloudApiUrl || PRODUCTION_ROO_CODE_API_URL - vscode.postMessage({ type: "openExternal", url: `${baseUrl}/usage` }) + vscode.postMessage({ + type: "openExternal", + url: `${baseUrl}/usage?utm_source=extension&utm_medium=stats_preview&utm_campaign=stats_preview`, + }) } const handleRemoteControlToggle = () => { From c33cc2992f1f2b06001e9cc7cc268e4cd5ab594a Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 14:56:47 +0100 Subject: [PATCH 06/25] Adds links to CloudView from mentions of cost elsewhere if the user is authenticated --- webview-ui/src/components/chat/ChatRow.tsx | 20 ++++++++++++++--- webview-ui/src/components/chat/TaskHeader.tsx | 22 +++++++++++++++++-- webview-ui/src/i18n/locales/en/chat.json | 3 ++- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index 26bc71074ad..2114b2493f9 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -132,7 +132,8 @@ export const ChatRowContent = ({ }: ChatRowContentProps) => { const { t } = useTranslation() - const { mcpServers, alwaysAllowMcp, currentCheckpoint, mode, apiConfiguration } = useExtensionState() + const { mcpServers, alwaysAllowMcp, currentCheckpoint, mode, apiConfiguration, cloudIsAuthenticated } = + useExtensionState() const { info: model } = useSelectedModel(apiConfiguration) const [isEditing, setIsEditing] = useState(false) const [editedContent, setEditedContent] = useState("") @@ -1074,8 +1075,21 @@ export const ChatRowContent = ({ {title}
0 ? 1 : 0 }}> + className={cn( + "text-xs text-vscode-dropdown-foreground border-vscode-dropdown-border/50 border px-1.5 py-0.5 rounded-lg", + cloudIsAuthenticated && + "cursor-pointer hover:bg-vscode-dropdown-background hover:border-vscode-dropdown-border transition-colors", + )} + style={{ opacity: cost !== null && cost !== undefined && cost > 0 ? 1 : 0 }} + onClick={ + cloudIsAuthenticated + ? (e) => { + e.stopPropagation() // Prevent parent onClick from firing + vscode.postMessage({ type: "switchTab", tab: "cloud" }) + } + : undefined + } + title={cloudIsAuthenticated ? t("chat:apiRequest.viewTokenUsage") : undefined}> ${Number(cost || 0)?.toFixed(4)}
diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index aef0bc5eee9..11ba60db93d 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next" import { useCloudUpsell } from "@src/hooks/useCloudUpsell" import { CloudUpsellDialog } from "@src/components/cloud/CloudUpsellDialog" import DismissibleUpsell from "@src/components/common/DismissibleUpsell" -import { FoldVertical, ChevronUp, ChevronDown } from "lucide-react" +import { FoldVertical, ChevronUp, ChevronDown, ChartColumn } from "lucide-react" import prettyBytes from "pretty-bytes" import type { ClineMessage } from "@roo-code/types" @@ -50,7 +50,7 @@ const TaskHeader = ({ todos, }: TaskHeaderProps) => { const { t } = useTranslation() - const { apiConfiguration, currentTaskItem, clineMessages } = useExtensionState() + const { apiConfiguration, currentTaskItem, clineMessages, cloudIsAuthenticated } = useExtensionState() const { id: modelId, info: model } = useSelectedModel(apiConfiguration) const [isTaskExpanded, setIsTaskExpanded] = useState(false) const [showLongRunningTaskMessage, setShowLongRunningTaskMessage] = useState(false) @@ -302,6 +302,24 @@ const TaskHeader = ({ ${totalCost?.toFixed(2)} + {cloudIsAuthenticated ? ( + + { + e.stopPropagation() + import("@src/utils/vscode").then(({ vscode }) => { + vscode.postMessage({ + type: "switchTab", + tab: "cloud", + }) + }) + }} + /> + + ) : ( + + )} )} diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 9ab37b11497..5a42957974b 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -147,7 +147,8 @@ "failed": "API Request Failed", "streaming": "API Request...", "cancelled": "API Request Cancelled", - "streamingFailed": "API Streaming Failed" + "streamingFailed": "API Streaming Failed", + "viewTokenUsage": "View token usage" }, "checkpoint": { "regular": "Checkpoint", From 70a2478494f3e3be73945425ba09250a84c8d5c7 Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 14:58:30 +0100 Subject: [PATCH 07/25] Removes requirement of user being authenticated for links to cloud --- webview-ui/src/components/chat/ChatRow.tsx | 12 +++---- webview-ui/src/components/chat/TaskHeader.tsx | 32 ++++++++----------- webview-ui/src/i18n/locales/en/chat.json | 2 +- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/webview-ui/src/components/chat/ChatRow.tsx b/webview-ui/src/components/chat/ChatRow.tsx index 2114b2493f9..6fb05d1a5f7 100644 --- a/webview-ui/src/components/chat/ChatRow.tsx +++ b/webview-ui/src/components/chat/ChatRow.tsx @@ -1081,14 +1081,10 @@ export const ChatRowContent = ({ "cursor-pointer hover:bg-vscode-dropdown-background hover:border-vscode-dropdown-border transition-colors", )} style={{ opacity: cost !== null && cost !== undefined && cost > 0 ? 1 : 0 }} - onClick={ - cloudIsAuthenticated - ? (e) => { - e.stopPropagation() // Prevent parent onClick from firing - vscode.postMessage({ type: "switchTab", tab: "cloud" }) - } - : undefined - } + onClick={(e) => { + e.stopPropagation() // Prevent parent onClick from firing + vscode.postMessage({ type: "switchTab", tab: "cloud" }) + }} title={cloudIsAuthenticated ? t("chat:apiRequest.viewTokenUsage") : undefined}> ${Number(cost || 0)?.toFixed(4)}
diff --git a/webview-ui/src/components/chat/TaskHeader.tsx b/webview-ui/src/components/chat/TaskHeader.tsx index 11ba60db93d..af4569a8605 100644 --- a/webview-ui/src/components/chat/TaskHeader.tsx +++ b/webview-ui/src/components/chat/TaskHeader.tsx @@ -50,7 +50,7 @@ const TaskHeader = ({ todos, }: TaskHeaderProps) => { const { t } = useTranslation() - const { apiConfiguration, currentTaskItem, clineMessages, cloudIsAuthenticated } = useExtensionState() + const { apiConfiguration, currentTaskItem, clineMessages } = useExtensionState() const { id: modelId, info: model } = useSelectedModel(apiConfiguration) const [isTaskExpanded, setIsTaskExpanded] = useState(false) const [showLongRunningTaskMessage, setShowLongRunningTaskMessage] = useState(false) @@ -302,24 +302,20 @@ const TaskHeader = ({ ${totalCost?.toFixed(2)} - {cloudIsAuthenticated ? ( - - { - e.stopPropagation() - import("@src/utils/vscode").then(({ vscode }) => { - vscode.postMessage({ - type: "switchTab", - tab: "cloud", - }) + + { + e.stopPropagation() + import("@src/utils/vscode").then(({ vscode }) => { + vscode.postMessage({ + type: "switchTab", + tab: "cloud", }) - }} - /> - - ) : ( - - )} + }) + }} + /> + )} diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index 5a42957974b..3041e7b5a74 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -148,7 +148,7 @@ "streaming": "API Request...", "cancelled": "API Request Cancelled", "streamingFailed": "API Streaming Failed", - "viewTokenUsage": "View token usage" + "viewTokenUsage": "View token usage stats" }, "checkpoint": { "regular": "Checkpoint", From d1e71920e1b6c1f36e19523b680bf32a6172e11b Mon Sep 17 00:00:00 2001 From: Bruno Bergher Date: Tue, 30 Sep 2025 15:04:32 +0100 Subject: [PATCH 08/25] Adds missing translations --- webview-ui/src/i18n/locales/ca/chat.json | 3 ++- webview-ui/src/i18n/locales/de/chat.json | 3 ++- webview-ui/src/i18n/locales/es/chat.json | 3 ++- webview-ui/src/i18n/locales/fr/chat.json | 3 ++- webview-ui/src/i18n/locales/hi/chat.json | 3 ++- webview-ui/src/i18n/locales/id/chat.json | 3 ++- webview-ui/src/i18n/locales/it/chat.json | 3 ++- webview-ui/src/i18n/locales/ja/chat.json | 3 ++- webview-ui/src/i18n/locales/ko/chat.json | 3 ++- webview-ui/src/i18n/locales/nl/chat.json | 3 ++- webview-ui/src/i18n/locales/pl/chat.json | 3 ++- webview-ui/src/i18n/locales/pt-BR/chat.json | 3 ++- webview-ui/src/i18n/locales/ru/chat.json | 3 ++- webview-ui/src/i18n/locales/tr/chat.json | 3 ++- webview-ui/src/i18n/locales/vi/chat.json | 3 ++- webview-ui/src/i18n/locales/zh-CN/chat.json | 3 ++- webview-ui/src/i18n/locales/zh-TW/chat.json | 3 ++- 17 files changed, 34 insertions(+), 17 deletions(-) diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 4d392ee3bf6..74d5176f48a 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -141,7 +141,8 @@ "failed": "Sol·licitud API ha fallat", "streaming": "Sol·licitud API...", "cancelled": "Sol·licitud API cancel·lada", - "streamingFailed": "Transmissió API ha fallat" + "streamingFailed": "Transmissió API ha fallat", + "viewTokenUsage": "Veure les estadístiques d'ús de fitxes" }, "checkpoint": { "regular": "Punt de control", diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 65934ab5a29..5ad6302b836 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -141,7 +141,8 @@ "failed": "API-Anfrage fehlgeschlagen", "streaming": "API-Anfrage...", "cancelled": "API-Anfrage abgebrochen", - "streamingFailed": "API-Streaming fehlgeschlagen" + "streamingFailed": "API-Streaming fehlgeschlagen", + "viewTokenUsage": "Token-Nutzungsstatistiken anzeigen" }, "checkpoint": { "regular": "Checkpoint", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 30693285db2..3fec46fa7dc 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -141,7 +141,8 @@ "failed": "Solicitud API falló", "streaming": "Solicitud API...", "cancelled": "Solicitud API cancelada", - "streamingFailed": "Transmisión API falló" + "streamingFailed": "Transmisión API falló", + "viewTokenUsage": "Ver estadísticas de uso de tokens" }, "checkpoint": { "regular": "Punto de control", diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index d5dae24a791..9ec0427a59e 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -141,7 +141,8 @@ "failed": "Échec de la requête API", "streaming": "Requête API...", "cancelled": "Requête API annulée", - "streamingFailed": "Échec du streaming API" + "streamingFailed": "Échec du streaming API", + "viewTokenUsage": "Voir les statistiques d'utilisation des tokens" }, "checkpoint": { "regular": "Point de contrôle", diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index 0ec9cd7c7e9..8d3c4581dad 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -141,7 +141,8 @@ "failed": "API अनुरोध विफल हुआ", "streaming": "API अनुरोध...", "cancelled": "API अनुरोध रद्द किया गया", - "streamingFailed": "API स्ट्रीमिंग विफल हुई" + "streamingFailed": "API स्ट्रीमिंग विफल हुई", + "viewTokenUsage": "टोकन उपयोग आँकड़े देखें" }, "checkpoint": { "regular": "चेकपॉइंट", diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index a2c5377691e..8fb90dfcf2d 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -150,7 +150,8 @@ "failed": "Permintaan API Gagal", "streaming": "Permintaan API...", "cancelled": "Permintaan API Dibatalkan", - "streamingFailed": "Streaming API Gagal" + "streamingFailed": "Streaming API Gagal", + "viewTokenUsage": "Lihat statistik penggunaan token" }, "checkpoint": { "regular": "Checkpoint", diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index a176be1f2fb..134d157eb4b 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -144,7 +144,8 @@ "failed": "Richiesta API fallita", "streaming": "Richiesta API...", "cancelled": "Richiesta API annullata", - "streamingFailed": "Streaming API fallito" + "streamingFailed": "Streaming API fallito", + "viewTokenUsage": "Visualizza le statistiche di utilizzo dei token" }, "checkpoint": { "regular": "Checkpoint", diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index 0e940b17eca..37472739e5d 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -141,7 +141,8 @@ "failed": "APIリクエスト失敗", "streaming": "APIリクエスト...", "cancelled": "APIリクエストキャンセル", - "streamingFailed": "APIストリーミング失敗" + "streamingFailed": "APIストリーミング失敗", + "viewTokenUsage": "トークン使用状況の統計を表示" }, "checkpoint": { "regular": "チェックポイント", diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index 6fa7c5692ac..43db8803b92 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -141,7 +141,8 @@ "failed": "API 요청 실패", "streaming": "API 요청...", "cancelled": "API 요청 취소됨", - "streamingFailed": "API 스트리밍 실패" + "streamingFailed": "API 스트리밍 실패", + "viewTokenUsage": "토큰 사용 통계 보기" }, "checkpoint": { "regular": "체크포인트", diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index 2be312228d2..79f470d5f2b 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -136,7 +136,8 @@ "failed": "API-verzoek mislukt", "streaming": "API-verzoek...", "cancelled": "API-verzoek geannuleerd", - "streamingFailed": "API-streaming mislukt" + "streamingFailed": "API-streaming mislukt", + "viewTokenUsage": "Bekijk tokengebruikstatistieken" }, "checkpoint": { "regular": "Checkpoint", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index e60ec330db2..f658c0a35fd 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -141,7 +141,8 @@ "failed": "Zapytanie API nie powiodło się", "streaming": "Zapytanie API...", "cancelled": "Zapytanie API anulowane", - "streamingFailed": "Strumieniowanie API nie powiodło się" + "streamingFailed": "Strumieniowanie API nie powiodło się", + "viewTokenUsage": "Wyświetl statystyki użycia tokenów" }, "checkpoint": { "regular": "Punkt kontrolny", diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 3408f3a1aa9..6d31bd45a19 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -141,7 +141,8 @@ "failed": "Requisição API falhou", "streaming": "Requisição API...", "cancelled": "Requisição API cancelada", - "streamingFailed": "Streaming API falhou" + "streamingFailed": "Streaming API falhou", + "viewTokenUsage": "Ver estatísticas de uso de token" }, "checkpoint": { "regular": "Ponto de verificação", diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index 5018f817aff..c596fde8dea 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -136,7 +136,8 @@ "failed": "API-запрос не выполнен", "streaming": "API-запрос...", "cancelled": "API-запрос отменен", - "streamingFailed": "Ошибка потокового API-запроса" + "streamingFailed": "Ошибка потокового API-запроса", + "viewTokenUsage": "Посмотреть статистику использования токенов" }, "checkpoint": { "regular": "Точка сохранения", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 2290a85f6df..d213b2b6bf5 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -141,7 +141,8 @@ "failed": "API İsteği Başarısız", "streaming": "API İsteği...", "cancelled": "API İsteği İptal Edildi", - "streamingFailed": "API Akışı Başarısız" + "streamingFailed": "API Akışı Başarısız", + "viewTokenUsage": "Token kullanım istatistiklerini görüntüle" }, "checkpoint": { "regular": "Kontrol Noktası", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index d9362ea39dd..4225aeb51db 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -141,7 +141,8 @@ "failed": "Yêu cầu API thất bại", "streaming": "Yêu cầu API...", "cancelled": "Yêu cầu API đã hủy", - "streamingFailed": "Streaming API thất bại" + "streamingFailed": "Streaming API thất bại", + "viewTokenUsage": "Xem thống kê sử dụng token" }, "checkpoint": { "regular": "Điểm kiểm tra", diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 850f79e6303..8c7252844b8 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -141,7 +141,8 @@ "failed": "API请求失败", "streaming": "API请求...", "cancelled": "API请求已取消", - "streamingFailed": "API流式传输失败" + "streamingFailed": "API流式传输失败", + "viewTokenUsage": "查看 Token 使用情况统计" }, "checkpoint": { "regular": "检查点", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index 24a67b13a9a..f013ac53757 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -147,7 +147,8 @@ "failed": "API 請求失敗", "streaming": "正在處理 API 請求...", "cancelled": "API 請求已取消", - "streamingFailed": "API 串流處理失敗" + "streamingFailed": "API 串流處理失敗", + "viewTokenUsage": "檢視權杖使用情況統計" }, "checkpoint": { "regular": "檢查點", From f70062dfd114b24e159be377560fc8a433219775 Mon Sep 17 00:00:00 2001 From: Roo Code Date: Tue, 30 Sep 2025 14:15:55 +0000 Subject: [PATCH 09/25] =?UTF-8?q?fix(cloud):=20usage=20preview=20fixes=20?= =?UTF-8?q?=E2=80=94=20clear=20timeout=20on=20response;=20correct=20bar=20?= =?UTF-8?q?height=20calc;=20robust=20array=20transform?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .review/pr-8274 | 1 + src/core/webview/webviewMessageHandler.ts | 19 ++++++++++++------- tmp/pr-8287-Roo-Code | 1 + tmp/pr-8412 | 1 + .../src/components/cloud/UsagePreview.tsx | 18 ++++++++++++++---- 5 files changed, 29 insertions(+), 11 deletions(-) create mode 160000 .review/pr-8274 create mode 160000 tmp/pr-8287-Roo-Code create mode 160000 tmp/pr-8412 diff --git a/.review/pr-8274 b/.review/pr-8274 new file mode 160000 index 00000000000..e46929b8d8a --- /dev/null +++ b/.review/pr-8274 @@ -0,0 +1 @@ +Subproject commit e46929b8d8add0cd3c412d69f8ac882c405a4ba9 diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index aace4cc5744..e7cc9f96aaa 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -3130,14 +3130,19 @@ export const webviewMessageHandler = async ( // Transform the data to match UI expectations // The API returns data with separate arrays, but UI expects an array of day objects + const dates = rawUsageData.data?.dates ?? [] + const tasks = rawUsageData.data?.tasks ?? [] + const tokens = rawUsageData.data?.tokens ?? [] + const costs = rawUsageData.data?.costs ?? [] + const len = Math.min(dates.length, tasks.length, tokens.length, costs.length) + const transformedData = { - days: - rawUsageData.data?.dates?.map((date: string, index: number) => ({ - date: date, - taskCount: rawUsageData.data.tasks[index] || 0, - tokenCount: rawUsageData.data.tokens[index] || 0, - cost: rawUsageData.data.costs[index] || 0, - })) || [], + days: Array.from({ length: len }).map((_, index) => ({ + date: dates[index] ?? "", + taskCount: tasks[index] ?? 0, + tokenCount: tokens[index] ?? 0, + cost: costs[index] ?? 0, + })), totals: rawUsageData.data?.totals || { tasks: 0, tokens: 0, diff --git a/tmp/pr-8287-Roo-Code b/tmp/pr-8287-Roo-Code new file mode 160000 index 00000000000..88a473b017a --- /dev/null +++ b/tmp/pr-8287-Roo-Code @@ -0,0 +1 @@ +Subproject commit 88a473b017af37091c85ce3056e444e856f80d6e diff --git a/tmp/pr-8412 b/tmp/pr-8412 new file mode 160000 index 00000000000..1339c7cc8ba --- /dev/null +++ b/tmp/pr-8412 @@ -0,0 +1 @@ +Subproject commit 1339c7cc8bad17f95532117f36049d84a9ee8266 diff --git a/webview-ui/src/components/cloud/UsagePreview.tsx b/webview-ui/src/components/cloud/UsagePreview.tsx index 3f7ef64daf9..806f7e4944c 100644 --- a/webview-ui/src/components/cloud/UsagePreview.tsx +++ b/webview-ui/src/components/cloud/UsagePreview.tsx @@ -55,10 +55,16 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { vscode.postMessage({ type: "getUsagePreview" }) // Listen for the response + let timeoutId: ReturnType | null = null const handleMessage = (event: MessageEvent) => { const message = event.data if (message.type === "usagePreviewData") { + // Clear timeout on success/error to avoid stale timeout flipping UI into error + if (timeoutId) { + clearTimeout(timeoutId) + } + if (message.error) { setError(message.error) } else if (message.data) { @@ -76,7 +82,7 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { window.addEventListener("message", handleMessage) // Clean up listener after 10 seconds (timeout) - const timeout = setTimeout(() => { + timeoutId = setTimeout(() => { if (isLoading) { setError(t("cloud:usagePreview.failedToLoad")) setIsLoading(false) @@ -84,15 +90,19 @@ export const UsagePreview = ({ onViewDetails }: UsagePreviewProps) => { }, 10000) return () => { - clearTimeout(timeout) + if (timeoutId) { + clearTimeout(timeoutId) + } window.removeEventListener("message", handleMessage) } }, []) // eslint-disable-line react-hooks/exhaustive-deps const getBarHeight = (cost: number): number => { if (!data || !data.days || data.days.length === 0) return 1 - const maxCost = ~~Math.max(...data.days.map((d) => d.cost)) // Avoid NaN - return Math.max(1, ~~(cost / maxCost) * 100) // Enforce minimum height for visibility + const maxCost = Math.max(...data.days.map((d) => d.cost)) + if (!Number.isFinite(maxCost) || maxCost <= 0) return 1 + // Compute percentage first, then round; enforce minimum height for visibility + return Math.max(1, Math.round((cost / maxCost) * 100)) } // Retry loading From 7ab010a0b6d59639fe0125098450e06c5162d09c Mon Sep 17 00:00:00 2001 From: "roomote[bot]" <219738659+roomote[bot]@users.noreply.github.com> Date: Tue, 30 Sep 2025 09:26:34 -0400 Subject: [PATCH 10/25] feat: add GLM-4.6 model support for z.ai provider (#8408) Co-authored-by: Roo Code --- packages/types/src/providers/zai.ts | 50 +++++++++++++++++++++++++ src/api/providers/__tests__/zai.spec.ts | 26 +++++++++++++ 2 files changed, 76 insertions(+) diff --git a/packages/types/src/providers/zai.ts b/packages/types/src/providers/zai.ts index b3838c1406a..de8c6cd4e49 100644 --- a/packages/types/src/providers/zai.ts +++ b/packages/types/src/providers/zai.ts @@ -32,6 +32,18 @@ export const internationalZAiModels = { description: "GLM-4.5-Air is the lightweight version of GLM-4.5. It balances performance and cost-effectiveness, and can flexibly switch to hybrid thinking models.", }, + "glm-4.6": { + maxTokens: 98_304, + contextWindow: 204_800, + supportsImages: false, + supportsPromptCache: true, + inputPrice: 0.6, + outputPrice: 2.2, + cacheWritesPrice: 0, + cacheReadsPrice: 0.11, + description: + "GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.", + }, } as const satisfies Record export type MainlandZAiModelId = keyof typeof mainlandZAiModels @@ -101,6 +113,44 @@ export const mainlandZAiModels = { }, ], }, + "glm-4.6": { + maxTokens: 98_304, + contextWindow: 204_800, + supportsImages: false, + supportsPromptCache: true, + inputPrice: 0.29, + outputPrice: 1.14, + cacheWritesPrice: 0, + cacheReadsPrice: 0.057, + description: + "GLM-4.6 is Zhipu's newest model with an extended context window of up to 200k tokens, providing enhanced capabilities for processing longer documents and conversations.", + tiers: [ + { + contextWindow: 32_000, + inputPrice: 0.21, + outputPrice: 1.0, + cacheReadsPrice: 0.043, + }, + { + contextWindow: 128_000, + inputPrice: 0.29, + outputPrice: 1.14, + cacheReadsPrice: 0.057, + }, + { + contextWindow: 200_000, + inputPrice: 0.29, + outputPrice: 1.14, + cacheReadsPrice: 0.057, + }, + { + contextWindow: Infinity, + inputPrice: 0.29, + outputPrice: 1.14, + cacheReadsPrice: 0.057, + }, + ], + }, } as const satisfies Record export const ZAI_DEFAULT_TEMPERATURE = 0 diff --git a/src/api/providers/__tests__/zai.spec.ts b/src/api/providers/__tests__/zai.spec.ts index 7928a4298da..383394b703c 100644 --- a/src/api/providers/__tests__/zai.spec.ts +++ b/src/api/providers/__tests__/zai.spec.ts @@ -71,6 +71,19 @@ describe("ZAiHandler", () => { expect(model.id).toBe(testModelId) expect(model.info).toEqual(internationalZAiModels[testModelId]) }) + + it("should return GLM-4.6 international model with correct configuration", () => { + const testModelId: InternationalZAiModelId = "glm-4.6" + const handlerWithModel = new ZAiHandler({ + apiModelId: testModelId, + zaiApiKey: "test-zai-api-key", + zaiApiLine: "international", + }) + const model = handlerWithModel.getModel() + expect(model.id).toBe(testModelId) + expect(model.info).toEqual(internationalZAiModels[testModelId]) + expect(model.info.contextWindow).toBe(204_800) + }) }) describe("China Z AI", () => { @@ -108,6 +121,19 @@ describe("ZAiHandler", () => { expect(model.id).toBe(testModelId) expect(model.info).toEqual(mainlandZAiModels[testModelId]) }) + + it("should return GLM-4.6 China model with correct configuration", () => { + const testModelId: MainlandZAiModelId = "glm-4.6" + const handlerWithModel = new ZAiHandler({ + apiModelId: testModelId, + zaiApiKey: "test-zai-api-key", + zaiApiLine: "china", + }) + const model = handlerWithModel.getModel() + expect(model.id).toBe(testModelId) + expect(model.info).toEqual(mainlandZAiModels[testModelId]) + expect(model.info.contextWindow).toBe(204_800) + }) }) describe("Default behavior", () => { From b66c5ec45bfc5b6f0eecb9aeebabe1aa7308d1c0 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Tue, 30 Sep 2025 09:33:50 -0400 Subject: [PATCH 11/25] chore: add changeset for v3.28.14 (#8413) --- .changeset/v3.28.14.md | 7 +++++++ releases/3.28.14-release.png | Bin 0 -> 1249765 bytes 2 files changed, 7 insertions(+) create mode 100644 .changeset/v3.28.14.md create mode 100644 releases/3.28.14-release.png diff --git a/.changeset/v3.28.14.md b/.changeset/v3.28.14.md new file mode 100644 index 00000000000..de592c426b4 --- /dev/null +++ b/.changeset/v3.28.14.md @@ -0,0 +1,7 @@ +--- +"roo-cline": patch +--- + +![3.28.14 Release - GLM-4.6 Model Support](/releases/3.28.14-release.png) + +- Add support for GLM-4.6 model for z.ai provider (#8406 by @dmarkey, PR by @roomote) diff --git a/releases/3.28.14-release.png b/releases/3.28.14-release.png new file mode 100644 index 0000000000000000000000000000000000000000..4ef1acc70219af437dcd87035884db5eb5a01d0b GIT binary patch literal 1249765 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%0DGsBZOvpasRYq*VphS4vF0G#m!D)DUUG;iy&y zbtMYDb-&#nUPZln2FJ-(DnPK3nPt{G>9j!^WmxjKq%x3IHV--0P}$raG&j=9@Y6I2S z2(gq6%PCM$DNyq4Co#Kk;$h`$B$P2m@2Kp)tP_O*-)Ni)qgoyAAn+}=45$HSQ{uhP zwyE=JiTw6`p9qeOzN}3d+x6`;mNuZ_gS$m`VrSpBBKL@fC3&k1poChnWg&zoqa;-cpph{&>V&dWp6whI-jufg@ zQtca_dSud?j`(2!Sf{|kOj1dOiR>TV<5Wa22&*UtPyuU})VEn_j#=i-b=<-3*(5s_ zR~5!S)O)Rm3dR&5ZWdbud2fXFtr ze7K=)%}DK8@0Nk`nE~nzQhXr@Z|tH{(+Qsebn5!Kpmz8YrqF>Xr%>b0zA5Cfp|+Tv zUrWSH)}m6q$V3C2=-D{HMMG6I3Cpt7RFNJS-SAOf$WB@gBmWg|Qfi zqs4ew%9=4KsBp0!HVP`l0~ZTOnB7uUFovN(tw1#tWJS$YQ3{x7C^V=p$5My}(lujQ za7V|g#Eim#ma@b!g20P~E|%Z|W?1b!3|KBv2B27D0+2b>EL@0LhC#02v!Lkiiu*oZ=e%b$JwIvh*j>C~ z9JOJXd5kBE^54nD%tiD=o*J@B@PZy5+iJ!)vl3l%_WYYpPklVU__S!eDN({q1$9&0 zWi?WM0Oi&}VBryJH*X*wT8Q6aI6EvG<_vq=6Kk$U9Bd8rEN2Tn%>I5I`y5!o*w#F2zYdU}2Zo>B;D5H|mH5d#Ko} zH)(8LM4Tr4`9zDReQ}$7Or5Rp&SVvM6jhCTaj~M71Q5MKo5H5tHJP{T zd$Kv;aYVC!Vri1L-(byt0Y69`9frxan6s*^-8b?rB(Itgui%mD0WcRxNY+$9u24@Y zI&@6g?Pfn7uQ~gTWHzkoair5*mmvGwqoyIHu|S$ZSM8yZF%3izOb$ z<*=RjGBJ>a?rd>v?-!r=8T9R1A+3 z{eotK%(!w8dLN}HoBOwn&N>Uq2~mJb8IKQ+AKtz9?N^V!`1$V&btOu-g)`F9FtYJ;N{}&y(%#|k?tJ~_gD=0ncjv+B$*sfn(P~_j;thU%4Ad!; zW`*#u6%LZ>8Z=g;3gdHV9%tGDkzewgc|R879sg8u5AeC_LM zCq%vUzr^Kj*%KdQx%^Fc2~C&-7i`5WKun8L)(3~H#X_ZCUVnP`;p1kzsns1WCe9Mg zK8Jv|)VGGgWW~7D!6XaUsOnsI%ltS&tw4q<5u)#-Kc&UJ9ito_D7_u@QI_WJD1p4{ zy*f~QUMD4hE`-AyYLnL8?&A9De7m`9?RK3QQ(AW4s7*8oN~qp!XPWC)WJ2L_dAMHR z7?(#}mc&`n00IV+P$4R?qszofRHFzppgfFiu{?(39z12>D{QR-5S?}#g;4lu3d(~0 zt>>prtk>J}J}VRj15($>rJ3CqbS6dw>z@~U`HckiJ9?Tho~A#heBaUpVzfAf>zpPt zcUypl=lK~kr{U}dJZQU1s+~oMgR}%NQGP0Kry)d$Sai!(0x%aVT{c$W*Rhf&Kk_4*Yo6Y0t_xD4T9hQE9F9tyR=S%2x zxGiqKD9@=SozTF)m^<=)VF$pjsIZ!BdAug5Lc2RcF3^p!3BHMD*te8d*4X6lrh;14 z0^~B7lKPCt^pH<~NP(|RSTZYu?=Pi^4aIb;ijd~ci?fIZaR?ba^&X;D*4Xo3{Ybd) z84*Q=bcX?IC(-gXPi5!P&hVUw(7@H{N{x>c5 zcKNgtbgIP!OUDV7MmDiYU_I0RT?9?V!!>LV4T#*-O6ep8%mAa6iExE3vO#-7!u>l{ApT zP&a38f19xXJ8PQd9FbR=N+TW#HcGZJnf(>PC<3X5J;Wpg2oZAk-laF8qM<*Pph%xOHFbH@_6A<6Xw{nfta=o>71$_?F_oCcnK3Rsb?v~LYW;^W>PEJPldrsRjGoCYPI9T8Ua_+ar?UFfjXmq z5Ji<~5?K^o5RVMCJZYapzko)Tgc?X_oK*5d)ST=fG{xtzutHQz8Hq^hEOmyeLh7ta zq9RmA#sIdfbmgMEEq$a$v=}6rwE2R1bV-}pLA0RE&&R?ym!pwEDpZsW!5LJw*4@>G z%+tKv&GQUWW(t88}Dhj$yI zQikQYI%HZOA03luF5bHp@L+!Vyz)H}8#aacBYAFnr(YJAx8Ej13w?YBJz+9!mS_-)R1OXM8s|tv@hypas zs5NVr1tP#{BWmEI@ zfGf3Fi-C(0B0k=B+Ep}aWUEs+Rcp`;f(LPWD(}=O?nS|{39W($<>%WYaA139Ark+) z2tbIj8#901McJx0i>Oq00#!(>${ZV6)~?76klRX%@xzPNIvg;EpG>Z8+DN;0s&3cu zQ>9KAVp72QhzR8RY*DEDM|#v2{j||gF15dBjjP~htk@Y-ArL$XDYK3<=tjtk+xV*{ z7{~5?U`c#i)rCVXUor(KwrPY={+(&ahm8NJg;K+XjO7o$XP+=FvW)YtZjTj^lqxcLEZ&xdnafC2y!a0f&a6V& zG~mwWz(a^W{wzMK@Q#;uh*qP#o5X>G>Zc8)noctnwtW9mK+M*u-pNp_y%q4q(JsQ5 zg7(+iR5LhfgNTeHgy5*HDuGk!f^VgxVre=-E;a2s<+^idw5wycOl}=g-~1ZgW#C&Q z&LZ~cN-*Q>8ymtO;H=RIdKj07tE01nle6{V$?EWUeR#B3te9B+a1XlavP;|P^Pqff zR$%d{WQ~-5yCUKP3@_9{AyerY`Anq&ifL*(?TJ*`?K2otAYkr$P#5B`Frp@k5qv{J zrPeylyY0N&*4?J=Hd-gBTGyqN4!8rr?!sHOO+<}gZ|xiD<4~rO9e$a>?8h&MVR3qV z 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