From aad6807e062ebaf31cc29f409800e59c825d1c13 Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Fri, 28 Nov 2025 15:57:16 -0700 Subject: [PATCH 1/3] feat: add debug buttons to view API and UI history - Add roo-cline.debug package.json setting (default: false) - Add debug property to ExtensionState for webview - Add Open API History and Open UI History buttons in TaskActions - Buttons appear when debug=true and task has ID - Opens prettified JSON in temporary file for debugging - Add tests for new debug button functionality --- src/core/webview/ClineProvider.ts | 1 + src/core/webview/webviewMessageHandler.ts | 57 ++++++++++ src/package.json | 5 + src/package.nls.json | 3 +- src/shared/ExtensionMessage.ts | 1 + src/shared/WebviewMessage.ts | 2 + .../src/components/chat/TaskActions.tsx | 18 ++- .../chat/__tests__/TaskActions.spec.tsx | 105 ++++++++++++++++++ 8 files changed, 190 insertions(+), 2 deletions(-) diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 5927324860..4aab25bcb7 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -2101,6 +2101,7 @@ export class ClineProvider openRouterImageGenerationSelectedModel, openRouterUseMiddleOutTransform, featureRoomoteControlEnabled, + debug: vscode.workspace.getConfiguration(Package.name).get("debug", false), } } diff --git a/src/core/webview/webviewMessageHandler.ts b/src/core/webview/webviewMessageHandler.ts index 986dd40470..21a515b610 100644 --- a/src/core/webview/webviewMessageHandler.ts +++ b/src/core/webview/webviewMessageHandler.ts @@ -3043,6 +3043,63 @@ export const webviewMessageHandler = async ( }) break } + + case "openDebugApiHistory": + case "openDebugUiHistory": { + const currentTask = provider.getCurrentTask() + if (!currentTask) { + vscode.window.showErrorMessage("No active task to view history for") + break + } + + try { + const { getTaskDirectoryPath } = await import("../../utils/storage") + const globalStoragePath = provider.contextProxy.globalStorageUri.fsPath + const taskDirPath = await getTaskDirectoryPath(globalStoragePath, currentTask.taskId) + + const fileName = + message.type === "openDebugApiHistory" ? "api_conversation_history.json" : "ui_messages.json" + const sourceFilePath = path.join(taskDirPath, fileName) + + // Check if file exists + if (!(await fileExistsAtPath(sourceFilePath))) { + vscode.window.showErrorMessage(`File not found: ${fileName}`) + break + } + + // Read the source file + const content = await fs.readFile(sourceFilePath, "utf8") + let jsonContent: unknown + + try { + jsonContent = JSON.parse(content) + } catch { + vscode.window.showErrorMessage(`Failed to parse ${fileName}`) + break + } + + // Prettify the JSON + const prettifiedContent = JSON.stringify(jsonContent, null, 2) + + // Create a temporary file + const tmpDir = os.tmpdir() + const timestamp = Date.now() + const tempFileName = `roo-debug-${message.type === "openDebugApiHistory" ? "api" : "ui"}-${currentTask.taskId.slice(0, 8)}-${timestamp}.json` + const tempFilePath = path.join(tmpDir, tempFileName) + + await fs.writeFile(tempFilePath, prettifiedContent, "utf8") + + // Open the temp file in VS Code + const doc = await vscode.workspace.openTextDocument(tempFilePath) + await vscode.window.showTextDocument(doc, { preview: true }) + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error) + provider.log(`Error opening debug history: ${errorMessage}`) + vscode.window.showErrorMessage(`Failed to open debug history: ${errorMessage}`) + } + break + } + default: { // console.log(`Unhandled message type: ${message.type}`) // diff --git a/src/package.json b/src/package.json index 9ac1119fb2..c5ff528b73 100644 --- a/src/package.json +++ b/src/package.json @@ -436,6 +436,11 @@ "minimum": 1, "maximum": 200, "description": "%settings.codeIndex.embeddingBatchSize.description%" + }, + "roo-cline.debug": { + "type": "boolean", + "default": false, + "description": "%settings.debug.description%" } } } diff --git a/src/package.nls.json b/src/package.nls.json index 42443e1716..ab4c8b0834 100644 --- a/src/package.nls.json +++ b/src/package.nls.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Enable loading of AGENTS.md files for agent-specific rules (see https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maximum time in seconds to wait for API responses (0 = no timeout, 1-3600s, default: 600s). Higher values are recommended for local providers like LM Studio and Ollama that may need more processing time.", "settings.newTaskRequireTodos.description": "Require todos parameter when creating new tasks with the new_task tool", - "settings.codeIndex.embeddingBatchSize.description": "The batch size for embedding operations during code indexing. Adjust this based on your API provider's limits. Default is 60." + "settings.codeIndex.embeddingBatchSize.description": "The batch size for embedding operations during code indexing. Adjust this based on your API provider's limits. Default is 60.", + "settings.debug.description": "Enable debug mode to show additional buttons for viewing API conversation history and UI messages as prettified JSON in temporary files." } diff --git a/src/shared/ExtensionMessage.ts b/src/shared/ExtensionMessage.ts index 53327df720..9342cf2127 100644 --- a/src/shared/ExtensionMessage.ts +++ b/src/shared/ExtensionMessage.ts @@ -358,6 +358,7 @@ export type ExtensionState = Pick< remoteControlEnabled: boolean taskSyncEnabled: boolean featureRoomoteControlEnabled: boolean + debug?: boolean } export interface ClineSayTool { diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index d79a2ae504..eeae8e70cb 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -173,6 +173,8 @@ export interface WebviewMessage { | "showBrowserSessionPanelAtStep" | "refreshBrowserSessionPanel" | "browserPanelDidLaunch" + | "openDebugApiHistory" + | "openDebugUiHistory" text?: string editedMessageContent?: string tab?: "settings" | "history" | "mcp" | "modes" | "chat" | "marketplace" | "cloud" diff --git a/webview-ui/src/components/chat/TaskActions.tsx b/webview-ui/src/components/chat/TaskActions.tsx index 70a8c62c03..5c6df2558a 100644 --- a/webview-ui/src/components/chat/TaskActions.tsx +++ b/webview-ui/src/components/chat/TaskActions.tsx @@ -5,11 +5,12 @@ import type { HistoryItem } from "@roo-code/types" import { vscode } from "@/utils/vscode" import { useCopyToClipboard } from "@/utils/clipboard" +import { useExtensionState } from "@/context/ExtensionStateContext" import { DeleteTaskDialog } from "../history/DeleteTaskDialog" import { ShareButton } from "./ShareButton" import { CloudTaskButton } from "./CloudTaskButton" -import { CopyIcon, DownloadIcon, Trash2Icon } from "lucide-react" +import { CopyIcon, DownloadIcon, Trash2Icon, FileJsonIcon, MessageSquareCodeIcon } from "lucide-react" import { LucideIconButton } from "./LucideIconButton" interface TaskActionsProps { @@ -21,6 +22,7 @@ export const TaskActions = ({ item, buttonsDisabled }: TaskActionsProps) => { const [deleteTaskId, setDeleteTaskId] = useState(null) const { t } = useTranslation() const { copyWithFeedback } = useCopyToClipboard() + const { debug } = useExtensionState() return (
@@ -63,6 +65,20 @@ export const TaskActions = ({ item, buttonsDisabled }: TaskActionsProps) => { )} + {debug && item?.id && ( + <> + vscode.postMessage({ type: "openDebugApiHistory" })} + /> + vscode.postMessage({ type: "openDebugUiHistory" })} + /> + + )}
) } diff --git a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx index e7b1c85434..1929e7d4ee 100644 --- a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx +++ b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx @@ -380,4 +380,109 @@ describe("TaskActions", () => { expect(deleteButton).toBeDisabled() }) }) + + describe("Debug Buttons", () => { + it("does not render debug buttons when debug is false", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + debug: false, + } as any) + + render() + + const apiHistoryButton = screen.queryByLabelText("Open API History") + const uiHistoryButton = screen.queryByLabelText("Open UI History") + + expect(apiHistoryButton).not.toBeInTheDocument() + expect(uiHistoryButton).not.toBeInTheDocument() + }) + + it("does not render debug buttons when debug is undefined", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + } as any) + + render() + + const apiHistoryButton = screen.queryByLabelText("Open API History") + const uiHistoryButton = screen.queryByLabelText("Open UI History") + + expect(apiHistoryButton).not.toBeInTheDocument() + expect(uiHistoryButton).not.toBeInTheDocument() + }) + + it("renders debug buttons when debug is true and item has id", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + debug: true, + } as any) + + render() + + const apiHistoryButton = screen.getByLabelText("Open API History") + const uiHistoryButton = screen.getByLabelText("Open UI History") + + expect(apiHistoryButton).toBeInTheDocument() + expect(uiHistoryButton).toBeInTheDocument() + }) + + it("does not render debug buttons when debug is true but item has no id", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + debug: true, + } as any) + + render() + + const apiHistoryButton = screen.queryByLabelText("Open API History") + const uiHistoryButton = screen.queryByLabelText("Open UI History") + + expect(apiHistoryButton).not.toBeInTheDocument() + expect(uiHistoryButton).not.toBeInTheDocument() + }) + + it("sends openDebugApiHistory message when Open API History button is clicked", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + debug: true, + } as any) + + render() + + const apiHistoryButton = screen.getByLabelText("Open API History") + fireEvent.click(apiHistoryButton) + + expect(mockPostMessage).toHaveBeenCalledWith({ + type: "openDebugApiHistory", + }) + }) + + it("sends openDebugUiHistory message when Open UI History button is clicked", () => { + mockUseExtensionState.mockReturnValue({ + sharingEnabled: true, + cloudIsAuthenticated: true, + cloudUserInfo: { organizationName: "Test Organization" }, + debug: true, + } as any) + + render() + + const uiHistoryButton = screen.getByLabelText("Open UI History") + fireEvent.click(uiHistoryButton) + + expect(mockPostMessage).toHaveBeenCalledWith({ + type: "openDebugUiHistory", + }) + }) + }) }) From 7d2804456029d6f7056c76fd5aba022890b18b56 Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Fri, 28 Nov 2025 16:11:47 -0700 Subject: [PATCH 2/3] i18n: Add translations for debug history buttons - Add 'settings.debug.description' translation to all 17 package.nls.*.json files - Add 'task.openApiHistory' and 'task.openUiHistory' translations to all 17 webview-ui chat.json locale files - Update TaskActions.tsx to use i18n translation keys instead of hardcoded strings - Update TaskActions.spec.tsx with mock translations for new keys --- src/package.nls.ca.json | 3 ++- src/package.nls.de.json | 3 ++- src/package.nls.es.json | 3 ++- src/package.nls.fr.json | 3 ++- src/package.nls.hi.json | 3 ++- src/package.nls.id.json | 3 ++- src/package.nls.it.json | 3 ++- src/package.nls.ja.json | 3 ++- src/package.nls.ko.json | 3 ++- src/package.nls.nl.json | 3 ++- src/package.nls.pl.json | 3 ++- src/package.nls.pt-BR.json | 3 ++- src/package.nls.ru.json | 3 ++- src/package.nls.tr.json | 3 ++- src/package.nls.vi.json | 3 ++- src/package.nls.zh-CN.json | 3 ++- src/package.nls.zh-TW.json | 3 ++- webview-ui/src/components/chat/TaskActions.tsx | 4 ++-- webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx | 2 ++ webview-ui/src/i18n/locales/ca/chat.json | 4 +++- webview-ui/src/i18n/locales/de/chat.json | 4 +++- webview-ui/src/i18n/locales/en/chat.json | 4 +++- webview-ui/src/i18n/locales/es/chat.json | 4 +++- webview-ui/src/i18n/locales/fr/chat.json | 4 +++- webview-ui/src/i18n/locales/hi/chat.json | 4 +++- webview-ui/src/i18n/locales/id/chat.json | 4 +++- webview-ui/src/i18n/locales/it/chat.json | 4 +++- webview-ui/src/i18n/locales/ja/chat.json | 4 +++- webview-ui/src/i18n/locales/ko/chat.json | 4 +++- webview-ui/src/i18n/locales/nl/chat.json | 4 +++- webview-ui/src/i18n/locales/pl/chat.json | 4 +++- webview-ui/src/i18n/locales/pt-BR/chat.json | 4 +++- webview-ui/src/i18n/locales/ru/chat.json | 4 +++- webview-ui/src/i18n/locales/tr/chat.json | 4 +++- webview-ui/src/i18n/locales/vi/chat.json | 4 +++- webview-ui/src/i18n/locales/zh-CN/chat.json | 4 +++- webview-ui/src/i18n/locales/zh-TW/chat.json | 4 +++- 37 files changed, 92 insertions(+), 37 deletions(-) diff --git a/src/package.nls.ca.json b/src/package.nls.ca.json index 22d3f633a6..4a934782b3 100644 --- a/src/package.nls.ca.json +++ b/src/package.nls.ca.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Activa la càrrega de fitxers AGENTS.md per a regles específiques de l'agent (vegeu https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Temps màxim en segons per esperar les respostes de l'API (0 = sense temps d'espera, 1-3600s, per defecte: 600s). Es recomanen valors més alts per a proveïdors locals com LM Studio i Ollama que poden necessitar més temps de processament.", "settings.newTaskRequireTodos.description": "Requerir el paràmetre de tasques pendents quan es creïn noves tasques amb l'eina new_task", - "settings.codeIndex.embeddingBatchSize.description": "La mida del lot per a operacions d'incrustació durant la indexació de codi. Ajusta això segons els límits del teu proveïdor d'API. Per defecte és 60." + "settings.codeIndex.embeddingBatchSize.description": "La mida del lot per a operacions d'incrustació durant la indexació de codi. Ajusta això segons els límits del teu proveïdor d'API. Per defecte és 60.", + "settings.debug.description": "Activa el mode de depuració per mostrar botons addicionals per veure l'historial de conversa de l'API i els missatges de la interfície d'usuari com a JSON embellert en fitxers temporals." } diff --git a/src/package.nls.de.json b/src/package.nls.de.json index 3931ba000e..9cbce1f443 100644 --- a/src/package.nls.de.json +++ b/src/package.nls.de.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Aktiviert das Laden von AGENTS.md-Dateien für agentenspezifische Regeln (siehe https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maximale Wartezeit in Sekunden auf API-Antworten (0 = kein Timeout, 1-3600s, Standard: 600s). Höhere Werte werden für lokale Anbieter wie LM Studio und Ollama empfohlen, die möglicherweise mehr Verarbeitungszeit benötigen.", "settings.newTaskRequireTodos.description": "Todos-Parameter beim Erstellen neuer Aufgaben mit dem new_task-Tool erfordern", - "settings.codeIndex.embeddingBatchSize.description": "Die Batch-Größe für Embedding-Operationen während der Code-Indexierung. Passe dies an die Limits deines API-Anbieters an. Standard ist 60." + "settings.codeIndex.embeddingBatchSize.description": "Die Batch-Größe für Embedding-Operationen während der Code-Indexierung. Passe dies an die Limits deines API-Anbieters an. Standard ist 60.", + "settings.debug.description": "Aktiviere den Debug-Modus, um zusätzliche Schaltflächen zum Anzeigen des API-Konversationsverlaufs und der UI-Nachrichten als formatiertes JSON in temporären Dateien anzuzeigen." } diff --git a/src/package.nls.es.json b/src/package.nls.es.json index 0c22cdf904..0720a09cb7 100644 --- a/src/package.nls.es.json +++ b/src/package.nls.es.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Habilita la carga de archivos AGENTS.md para reglas específicas del agente (ver https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tiempo máximo en segundos de espera para las respuestas de la API (0 = sin tiempo de espera, 1-3600s, por defecto: 600s). Se recomiendan valores más altos para proveedores locales como LM Studio y Ollama que puedan necesitar más tiempo de procesamiento.", "settings.newTaskRequireTodos.description": "Requerir el parámetro todos al crear nuevas tareas con la herramienta new_task", - "settings.codeIndex.embeddingBatchSize.description": "El tamaño del lote para operaciones de embedding durante la indexación de código. Ajusta esto según los límites de tu proveedor de API. Por defecto es 60." + "settings.codeIndex.embeddingBatchSize.description": "El tamaño del lote para operaciones de embedding durante la indexación de código. Ajusta esto según los límites de tu proveedor de API. Por defecto es 60.", + "settings.debug.description": "Activa el modo de depuración para mostrar botones adicionales para ver el historial de conversación de API y los mensajes de la interfaz de usuario como JSON embellecido en archivos temporales." } diff --git a/src/package.nls.fr.json b/src/package.nls.fr.json index 422db27820..911de50e4f 100644 --- a/src/package.nls.fr.json +++ b/src/package.nls.fr.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Activer le chargement des fichiers AGENTS.md pour les règles spécifiques à l'agent (voir https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Temps maximum en secondes d'attente pour les réponses de l'API (0 = pas de timeout, 1-3600s, par défaut : 600s). Des valeurs plus élevées sont recommandées pour les fournisseurs locaux comme LM Studio et Ollama qui peuvent nécessiter plus de temps de traitement.", "settings.newTaskRequireTodos.description": "Exiger le paramètre todos lors de la création de nouvelles tâches avec l'outil new_task", - "settings.codeIndex.embeddingBatchSize.description": "La taille du lot pour les opérations d'embedding lors de l'indexation du code. Ajustez ceci selon les limites de votre fournisseur d'API. Par défaut, c'est 60." + "settings.codeIndex.embeddingBatchSize.description": "La taille du lot pour les opérations d'embedding lors de l'indexation du code. Ajustez ceci selon les limites de votre fournisseur d'API. Par défaut, c'est 60.", + "settings.debug.description": "Active le mode debug pour afficher des boutons supplémentaires permettant de visualiser l'historique de conversation de l'API et les messages de l'interface utilisateur sous forme de JSON formaté dans des fichiers temporaires." } diff --git a/src/package.nls.hi.json b/src/package.nls.hi.json index 6337e9e1a3..f61dff9a02 100644 --- a/src/package.nls.hi.json +++ b/src/package.nls.hi.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "एजेंट-विशिष्ट नियमों के लिए AGENTS.md फ़ाइलों को लोड करना सक्षम करें (देखें https://agent-rules.org/)", "settings.apiRequestTimeout.description": "एपीआई प्रतिक्रियाओं की प्रतीक्षा करने के लिए सेकंड में अधिकतम समय (0 = कोई टाइमआउट नहीं, 1-3600s, डिफ़ॉल्ट: 600s)। एलएम स्टूडियो और ओलामा जैसे स्थानीय प्रदाताओं के लिए उच्च मानों की सिफारिश की जाती है जिन्हें अधिक प्रसंस्करण समय की आवश्यकता हो सकती है।", "settings.newTaskRequireTodos.description": "new_task टूल के साथ नए कार्य बनाते समय टूडू पैरामीटर की आवश्यकता होती है", - "settings.codeIndex.embeddingBatchSize.description": "कोड इंडेक्सिंग के दौरान एम्बेडिंग ऑपरेशन के लिए बैच साइज़। इसे अपने API प्रदाता की सीमाओं के अनुसार समायोजित करें। डिफ़ॉल्ट 60 है।" + "settings.codeIndex.embeddingBatchSize.description": "कोड इंडेक्सिंग के दौरान एम्बेडिंग ऑपरेशन के लिए बैच साइज़। इसे अपने API प्रदाता की सीमाओं के अनुसार समायोजित करें। डिफ़ॉल्ट 60 है।", + "settings.debug.description": "API conversation history और UI messages को temporary files में prettified JSON के रूप में देखने के लिए अतिरिक्त बटन दिखाने के लिए debug mode सक्षम करें।" } diff --git a/src/package.nls.id.json b/src/package.nls.id.json index 1c3025a09d..9b758f2376 100644 --- a/src/package.nls.id.json +++ b/src/package.nls.id.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Aktifkan pemuatan file AGENTS.md untuk aturan khusus agen (lihat https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Waktu maksimum dalam detik untuk menunggu respons API (0 = tidak ada batas waktu, 1-3600s, default: 600s). Nilai yang lebih tinggi disarankan untuk penyedia lokal seperti LM Studio dan Ollama yang mungkin memerlukan lebih banyak waktu pemrosesan.", "settings.newTaskRequireTodos.description": "Memerlukan parameter todos saat membuat tugas baru dengan alat new_task", - "settings.codeIndex.embeddingBatchSize.description": "Ukuran batch untuk operasi embedding selama pengindeksan kode. Sesuaikan ini berdasarkan batas penyedia API kamu. Default adalah 60." + "settings.codeIndex.embeddingBatchSize.description": "Ukuran batch untuk operasi embedding selama pengindeksan kode. Sesuaikan ini berdasarkan batas penyedia API kamu. Default adalah 60.", + "settings.debug.description": "Aktifkan mode debug untuk menampilkan tombol tambahan untuk melihat riwayat percakapan API dan pesan UI sebagai JSON yang diformat dalam file sementara." } diff --git a/src/package.nls.it.json b/src/package.nls.it.json index d0c130e00b..be5eecb45d 100644 --- a/src/package.nls.it.json +++ b/src/package.nls.it.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Abilita il caricamento dei file AGENTS.md per regole specifiche dell'agente (vedi https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tempo massimo in secondi di attesa per le risposte API (0 = nessun timeout, 1-3600s, predefinito: 600s). Valori più alti sono consigliati per provider locali come LM Studio e Ollama che potrebbero richiedere più tempo di elaborazione.", "settings.newTaskRequireTodos.description": "Richiedere il parametro todos quando si creano nuove attività con lo strumento new_task", - "settings.codeIndex.embeddingBatchSize.description": "La dimensione del batch per le operazioni di embedding durante l'indicizzazione del codice. Regola questo in base ai limiti del tuo provider API. Il valore predefinito è 60." + "settings.codeIndex.embeddingBatchSize.description": "La dimensione del batch per le operazioni di embedding durante l'indicizzazione del codice. Regola questo in base ai limiti del tuo provider API. Il valore predefinito è 60.", + "settings.debug.description": "Abilita la modalità debug per mostrare pulsanti aggiuntivi per visualizzare la cronologia delle conversazioni API e i messaggi dell'interfaccia utente come JSON formattato in file temporanei." } diff --git a/src/package.nls.ja.json b/src/package.nls.ja.json index 05251f4aed..aa21d857d1 100644 --- a/src/package.nls.ja.json +++ b/src/package.nls.ja.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "エージェント固有のルールのためにAGENTS.mdファイルの読み込みを有効にします(参照:https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API応答を待機する最大時間(秒)(0 = タイムアウトなし、1-3600秒、デフォルト: 600秒)。LM StudioやOllamaのような、より多くの処理時間を必要とする可能性のあるローカルプロバイダーには、より高い値が推奨されます。", "settings.newTaskRequireTodos.description": "new_taskツールで新しいタスクを作成する際にtodosパラメータを必須にする", - "settings.codeIndex.embeddingBatchSize.description": "コードインデックス作成中のエンベディング操作のバッチサイズ。APIプロバイダーの制限に基づいてこれを調整してください。デフォルトは60です。" + "settings.codeIndex.embeddingBatchSize.description": "コードインデックス作成中のエンベディング操作のバッチサイズ。APIプロバイダーの制限に基づいてこれを調整してください。デフォルトは60です。", + "settings.debug.description": "デバッグモードを有効にして、API会話履歴とUIメッセージをフォーマットされたJSONとして一時ファイルで表示するための追加ボタンを表示します。" } diff --git a/src/package.nls.ko.json b/src/package.nls.ko.json index dd933733f7..8f3f26cd8c 100644 --- a/src/package.nls.ko.json +++ b/src/package.nls.ko.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "에이전트별 규칙에 대한 AGENTS.md 파일 로드를 활성화합니다 (참조: https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API 응답을 기다리는 최대 시간(초) (0 = 시간 초과 없음, 1-3600초, 기본값: 600초). 더 많은 처리 시간이 필요할 수 있는 LM Studio 및 Ollama와 같은 로컬 공급자에게는 더 높은 값을 사용하는 것이 좋습니다.", "settings.newTaskRequireTodos.description": "new_task 도구로 새 작업을 생성할 때 todos 매개변수 필요", - "settings.codeIndex.embeddingBatchSize.description": "코드 인덱싱 중 임베딩 작업의 배치 크기입니다. API 공급자의 제한에 따라 이를 조정하세요. 기본값은 60입니다." + "settings.codeIndex.embeddingBatchSize.description": "코드 인덱싱 중 임베딩 작업의 배치 크기입니다. API 공급자의 제한에 따라 이를 조정하세요. 기본값은 60입니다.", + "settings.debug.description": "디버그 모드를 활성화하여 API 대화 기록과 UI 메시지를 임시 파일에 포맷된 JSON으로 보기 위한 추가 버튼을 표시합니다." } diff --git a/src/package.nls.nl.json b/src/package.nls.nl.json index c5f52e5571..42d63b8661 100644 --- a/src/package.nls.nl.json +++ b/src/package.nls.nl.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Laden van AGENTS.md-bestanden voor agentspecifieke regels inschakelen (zie https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maximale tijd in seconden om te wachten op API-reacties (0 = geen time-out, 1-3600s, standaard: 600s). Hogere waarden worden aanbevolen voor lokale providers zoals LM Studio en Ollama die mogelijk meer verwerkingstijd nodig hebben.", "settings.newTaskRequireTodos.description": "Todos-parameter vereisen bij het maken van nieuwe taken met de new_task tool", - "settings.codeIndex.embeddingBatchSize.description": "De batchgrootte voor embedding-operaties tijdens code-indexering. Pas dit aan op basis van de limieten van je API-provider. Standaard is 60." + "settings.codeIndex.embeddingBatchSize.description": "De batchgrootte voor embedding-operaties tijdens code-indexering. Pas dit aan op basis van de limieten van je API-provider. Standaard is 60.", + "settings.debug.description": "Schakel debug-modus in om extra knoppen te tonen voor het bekijken van API-conversatiegeschiedenis en UI-berichten als opgemaakte JSON in tijdelijke bestanden." } diff --git a/src/package.nls.pl.json b/src/package.nls.pl.json index 1178336d68..46fd2c7e01 100644 --- a/src/package.nls.pl.json +++ b/src/package.nls.pl.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Włącz wczytywanie plików AGENTS.md dla reguł specyficznych dla agenta (zobacz https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Maksymalny czas w sekundach oczekiwania na odpowiedzi API (0 = brak limitu czasu, 1-3600s, domyślnie: 600s). Wyższe wartości są zalecane dla lokalnych dostawców, takich jak LM Studio i Ollama, którzy mogą potrzebować więcej czasu na przetwarzanie.", "settings.newTaskRequireTodos.description": "Wymagaj parametru todos podczas tworzenia nowych zadań za pomocą narzędzia new_task", - "settings.codeIndex.embeddingBatchSize.description": "Rozmiar partii dla operacji osadzania podczas indeksowania kodu. Dostosuj to w oparciu o limity twojego dostawcy API. Domyślnie to 60." + "settings.codeIndex.embeddingBatchSize.description": "Rozmiar partii dla operacji osadzania podczas indeksowania kodu. Dostosuj to w oparciu o limity twojego dostawcy API. Domyślnie to 60.", + "settings.debug.description": "Włącz tryb debugowania, aby wyświetlić dodatkowe przyciski do przeglądania historii rozmów API i komunikatów interfejsu użytkownika jako sformatowany JSON w plikach tymczasowych." } diff --git a/src/package.nls.pt-BR.json b/src/package.nls.pt-BR.json index dfed1c8fb1..12ecdfeb5d 100644 --- a/src/package.nls.pt-BR.json +++ b/src/package.nls.pt-BR.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Habilita o carregamento de arquivos AGENTS.md para regras específicas do agente (consulte https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Tempo máximo em segundos de espera pelas respostas da API (0 = sem tempo limite, 1-3600s, padrão: 600s). Valores mais altos são recomendados para provedores locais como LM Studio e Ollama que podem precisar de mais tempo de processamento.", "settings.newTaskRequireTodos.description": "Exigir parâmetro todos ao criar novas tarefas com a ferramenta new_task", - "settings.codeIndex.embeddingBatchSize.description": "O tamanho do lote para operações de embedding durante a indexação de código. Ajuste isso com base nos limites do seu provedor de API. O padrão é 60." + "settings.codeIndex.embeddingBatchSize.description": "O tamanho do lote para operações de embedding durante a indexação de código. Ajuste isso com base nos limites do seu provedor de API. O padrão é 60.", + "settings.debug.description": "Ativa o modo de depuração para mostrar botões adicionais para visualizar o histórico de conversas da API e mensagens da interface como JSON formatado em arquivos temporários." } diff --git a/src/package.nls.ru.json b/src/package.nls.ru.json index c2284af369..b685c4fd7c 100644 --- a/src/package.nls.ru.json +++ b/src/package.nls.ru.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Включить загрузку файлов AGENTS.md для специфичных для агента правил (см. https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Максимальное время в секундах для ожидания ответов API (0 = нет тайм-аута, 1-3600 с, по умолчанию: 600 с). Рекомендуются более высокие значения для локальных провайдеров, таких как LM Studio и Ollama, которым может потребоваться больше времени на обработку.", "settings.newTaskRequireTodos.description": "Требовать параметр todos при создании новых задач с помощью инструмента new_task", - "settings.codeIndex.embeddingBatchSize.description": "Размер пакета для операций встраивания во время индексации кода. Настройте это в соответствии с ограничениями вашего API-провайдера. По умолчанию 60." + "settings.codeIndex.embeddingBatchSize.description": "Размер пакета для операций встраивания во время индексации кода. Настройте это в соответствии с ограничениями вашего API-провайдера. По умолчанию 60.", + "settings.debug.description": "Включи режим отладки, чтобы отображать дополнительные кнопки для просмотра истории разговоров API и сообщений интерфейса в виде форматированного JSON во временных файлах." } diff --git a/src/package.nls.tr.json b/src/package.nls.tr.json index 21d9a1db93..f353fbbf45 100644 --- a/src/package.nls.tr.json +++ b/src/package.nls.tr.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Aracıya özgü kurallar için AGENTS.md dosyalarının yüklenmesini etkinleştirin (bkz. https://agent-rules.org/)", "settings.apiRequestTimeout.description": "API yanıtları için beklenecek maksimum süre (saniye cinsinden) (0 = zaman aşımı yok, 1-3600s, varsayılan: 600s). LM Studio ve Ollama gibi daha fazla işlem süresi gerektirebilecek yerel sağlayıcılar için daha yüksek değerler önerilir.", "settings.newTaskRequireTodos.description": "new_task aracıyla yeni görevler oluştururken todos parametresini gerekli kıl", - "settings.codeIndex.embeddingBatchSize.description": "Kod indeksleme sırasında gömme işlemleri için toplu iş boyutu. Bunu API sağlayıcınızın sınırlarına göre ayarlayın. Varsayılan 60'tır." + "settings.codeIndex.embeddingBatchSize.description": "Kod indeksleme sırasında gömme işlemleri için toplu iş boyutu. Bunu API sağlayıcınızın sınırlarına göre ayarlayın. Varsayılan 60'tır.", + "settings.debug.description": "API konuşma geçmişini ve kullanıcı arayüzü mesajlarını geçici dosyalarda biçimlendirilmiş JSON olarak görüntülemek için ek düğmeler göstermek üzere hata ayıklama modunu etkinleştir." } diff --git a/src/package.nls.vi.json b/src/package.nls.vi.json index 795f8549cf..74dd7ef8d9 100644 --- a/src/package.nls.vi.json +++ b/src/package.nls.vi.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "Bật tải tệp AGENTS.md cho các quy tắc dành riêng cho tác nhân (xem https://agent-rules.org/)", "settings.apiRequestTimeout.description": "Thời gian tối đa tính bằng giây để đợi phản hồi API (0 = không có thời gian chờ, 1-3600 giây, mặc định: 600 giây). Nên sử dụng các giá trị cao hơn cho các nhà cung cấp cục bộ như LM Studio và Ollama có thể cần thêm thời gian xử lý.", "settings.newTaskRequireTodos.description": "Yêu cầu tham số todos khi tạo nhiệm vụ mới với công cụ new_task", - "settings.codeIndex.embeddingBatchSize.description": "Kích thước lô cho các hoạt động nhúng trong quá trình lập chỉ mục mã. Điều chỉnh điều này dựa trên giới hạn của nhà cung cấp API của bạn. Mặc định là 60." + "settings.codeIndex.embeddingBatchSize.description": "Kích thước lô cho các hoạt động nhúng trong quá trình lập chỉ mục mã. Điều chỉnh điều này dựa trên giới hạn của nhà cung cấp API của bạn. Mặc định là 60.", + "settings.debug.description": "Bật chế độ gỡ lỗi để hiển thị các nút bổ sung để xem lịch sử hội thoại API và thông điệp giao diện người dùng dưới dạng JSON được định dạng trong các tệp tạm thời." } diff --git a/src/package.nls.zh-CN.json b/src/package.nls.zh-CN.json index 1112abab7d..167e016ed9 100644 --- a/src/package.nls.zh-CN.json +++ b/src/package.nls.zh-CN.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "为特定于代理的规则启用 AGENTS.md 文件的加载(请参阅 https://agent-rules.org/)", "settings.apiRequestTimeout.description": "等待 API 响应的最长时间(秒)(0 = 无超时,1-3600秒,默认值:600秒)。对于像 LM Studio 和 Ollama 这样可能需要更多处理时间的本地提供商,建议使用更高的值。", "settings.newTaskRequireTodos.description": "使用 new_task 工具创建新任务时需要 todos 参数", - "settings.codeIndex.embeddingBatchSize.description": "代码索引期间嵌入操作的批处理大小。根据 API 提供商的限制调整此设置。默认值为 60。" + "settings.codeIndex.embeddingBatchSize.description": "代码索引期间嵌入操作的批处理大小。根据 API 提供商的限制调整此设置。默认值为 60。", + "settings.debug.description": "启用调试模式以显示额外按钮,用于在临时文件中以格式化 JSON 查看 API 对话历史和 UI 消息。" } diff --git a/src/package.nls.zh-TW.json b/src/package.nls.zh-TW.json index a212a7a353..43395adccf 100644 --- a/src/package.nls.zh-TW.json +++ b/src/package.nls.zh-TW.json @@ -43,5 +43,6 @@ "settings.useAgentRules.description": "為特定於代理的規則啟用 AGENTS.md 檔案的載入(請參閱 https://agent-rules.org/)", "settings.apiRequestTimeout.description": "等待 API 回應的最長時間(秒)(0 = 無超時,1-3600秒,預設值:600秒)。對於像 LM Studio 和 Ollama 這樣可能需要更多處理時間的本地提供商,建議使用更高的值。", "settings.newTaskRequireTodos.description": "使用 new_task 工具建立新工作時需要 todos 參數", - "settings.codeIndex.embeddingBatchSize.description": "程式碼索引期間嵌入操作的批次大小。根據 API 提供商的限制調整此設定。預設值為 60。" + "settings.codeIndex.embeddingBatchSize.description": "程式碼索引期間嵌入操作的批次大小。根據 API 提供商的限制調整此設定。預設值為 60。", + "settings.debug.description": "啟用偵錯模式以顯示額外按鈕,用於在暫存檔案中以格式化 JSON 檢視 API 對話歷史紀錄和使用者介面訊息。" } diff --git a/webview-ui/src/components/chat/TaskActions.tsx b/webview-ui/src/components/chat/TaskActions.tsx index 5c6df2558a..74575ddc28 100644 --- a/webview-ui/src/components/chat/TaskActions.tsx +++ b/webview-ui/src/components/chat/TaskActions.tsx @@ -69,12 +69,12 @@ export const TaskActions = ({ item, buttonsDisabled }: TaskActionsProps) => { <> vscode.postMessage({ type: "openDebugApiHistory" })} /> vscode.postMessage({ type: "openDebugUiHistory" })} /> diff --git a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx index 1929e7d4ee..4115afaa55 100644 --- a/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx +++ b/webview-ui/src/components/chat/__tests__/TaskActions.spec.tsx @@ -42,6 +42,8 @@ vi.mock("react-i18next", () => ({ "chat:task.connectToCloud": "Connect to Cloud", "chat:task.connectToCloudDescription": "Sign in to Roo Code Cloud to share tasks", "chat:task.sharingDisabledByOrganization": "Sharing disabled by organization", + "chat:task.openApiHistory": "Open API History", + "chat:task.openUiHistory": "Open UI History", "cloud:cloudBenefitsTitle": "Connect to Roo Code Cloud", "cloud:cloudBenefitHistory": "Access your task history from anywhere", "cloud:cloudBenefitSharing": "Share tasks with your team", diff --git a/webview-ui/src/i18n/locales/ca/chat.json b/webview-ui/src/i18n/locales/ca/chat.json index 1e863458d5..1999f8ab76 100644 --- a/webview-ui/src/i18n/locales/ca/chat.json +++ b/webview-ui/src/i18n/locales/ca/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Enllaç d'organització copiat al porta-retalls", "shareSuccessPublic": "Enllaç públic copiat al porta-retalls", "openInCloud": "Obrir tasca a Roo Code Cloud", - "openInCloudIntro": "Continua monitoritzant o interactuant amb Roo des de qualsevol lloc. Escaneja, fes clic o copia per obrir." + "openInCloudIntro": "Continua monitoritzant o interactuant amb Roo des de qualsevol lloc. Escaneja, fes clic o copia per obrir.", + "openApiHistory": "Obrir historial d'API", + "openUiHistory": "Obrir historial d'UI" }, "unpin": "Desfixar", "pin": "Fixar", diff --git a/webview-ui/src/i18n/locales/de/chat.json b/webview-ui/src/i18n/locales/de/chat.json index 75820258e3..f77b07f716 100644 --- a/webview-ui/src/i18n/locales/de/chat.json +++ b/webview-ui/src/i18n/locales/de/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Organisationslink in die Zwischenablage kopiert", "shareSuccessPublic": "Öffentlicher Link in die Zwischenablage kopiert", "openInCloud": "Aufgabe in Roo Code Cloud öffnen", - "openInCloudIntro": "Überwache oder interagiere mit Roo von überall aus. Scanne, klicke oder kopiere zum Öffnen." + "openInCloudIntro": "Überwache oder interagiere mit Roo von überall aus. Scanne, klicke oder kopiere zum Öffnen.", + "openApiHistory": "API-Verlauf öffnen", + "openUiHistory": "UI-Verlauf öffnen" }, "unpin": "Lösen von oben", "pin": "Anheften", diff --git a/webview-ui/src/i18n/locales/en/chat.json b/webview-ui/src/i18n/locales/en/chat.json index f38b684632..bbe3386d31 100644 --- a/webview-ui/src/i18n/locales/en/chat.json +++ b/webview-ui/src/i18n/locales/en/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Organization link copied to clipboard", "shareSuccessPublic": "Public link copied to clipboard", "openInCloud": "Open task in Roo Code Cloud", - "openInCloudIntro": "Keep monitoring or interacting with Roo from anywhere. Scan, click or copy to open." + "openInCloudIntro": "Keep monitoring or interacting with Roo from anywhere. Scan, click or copy to open.", + "openApiHistory": "Open API History", + "openUiHistory": "Open UI History" }, "unpin": "Unpin", "pin": "Pin", diff --git a/webview-ui/src/i18n/locales/es/chat.json b/webview-ui/src/i18n/locales/es/chat.json index 312f3a0637..2134be9aef 100644 --- a/webview-ui/src/i18n/locales/es/chat.json +++ b/webview-ui/src/i18n/locales/es/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Enlace de organización copiado al portapapeles", "shareSuccessPublic": "Enlace público copiado al portapapeles", "openInCloud": "Abrir tarea en Roo Code Cloud", - "openInCloudIntro": "Continúa monitoreando o interactuando con Roo desde cualquier lugar. Escanea, haz clic o copia para abrir." + "openInCloudIntro": "Continúa monitoreando o interactuando con Roo desde cualquier lugar. Escanea, haz clic o copia para abrir.", + "openApiHistory": "Abrir historial de API", + "openUiHistory": "Abrir historial de UI" }, "unpin": "Desfijar", "pin": "Fijar", diff --git a/webview-ui/src/i18n/locales/fr/chat.json b/webview-ui/src/i18n/locales/fr/chat.json index cf07cdc233..e0b4e515cf 100644 --- a/webview-ui/src/i18n/locales/fr/chat.json +++ b/webview-ui/src/i18n/locales/fr/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Lien d'organisation copié dans le presse-papiers", "shareSuccessPublic": "Lien public copié dans le presse-papiers", "openInCloud": "Ouvrir la tâche dans Roo Code Cloud", - "openInCloudIntro": "Continue à surveiller ou interagir avec Roo depuis n'importe où. Scanne, clique ou copie pour ouvrir." + "openInCloudIntro": "Continue à surveiller ou interagir avec Roo depuis n'importe où. Scanne, clique ou copie pour ouvrir.", + "openApiHistory": "Ouvrir l'historique de l'API", + "openUiHistory": "Ouvrir l'historique de l'UI" }, "unpin": "Désépingler", "pin": "Épingler", diff --git a/webview-ui/src/i18n/locales/hi/chat.json b/webview-ui/src/i18n/locales/hi/chat.json index fb73f57ea1..0f42002c54 100644 --- a/webview-ui/src/i18n/locales/hi/chat.json +++ b/webview-ui/src/i18n/locales/hi/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "संगठन लिंक क्लिपबोर्ड में कॉपी किया गया", "shareSuccessPublic": "सार्वजनिक लिंक क्लिपबोर्ड में कॉपी किया गया", "openInCloud": "Roo Code Cloud में कार्य खोलें", - "openInCloudIntro": "कहीं से भी Roo की निगरानी या इंटरैक्ट करना जारी रखें। खोलने के लिए स्कैन करें, क्लिक करें या कॉपी करें।" + "openInCloudIntro": "कहीं से भी Roo की निगरानी या इंटरैक्ट करना जारी रखें। खोलने के लिए स्कैन करें, क्लिक करें या कॉपी करें।", + "openApiHistory": "API इतिहास खोलें", + "openUiHistory": "UI इतिहास खोलें" }, "unpin": "पिन करें", "pin": "अवपिन करें", diff --git a/webview-ui/src/i18n/locales/id/chat.json b/webview-ui/src/i18n/locales/id/chat.json index 9db5b0dd74..9cc8fd6a92 100644 --- a/webview-ui/src/i18n/locales/id/chat.json +++ b/webview-ui/src/i18n/locales/id/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Tautan organisasi disalin ke clipboard", "shareSuccessPublic": "Tautan publik disalin ke clipboard", "openInCloud": "Buka tugas di Roo Code Cloud", - "openInCloudIntro": "Terus pantau atau berinteraksi dengan Roo dari mana saja. Pindai, klik atau salin untuk membuka." + "openInCloudIntro": "Terus pantau atau berinteraksi dengan Roo dari mana saja. Pindai, klik atau salin untuk membuka.", + "openApiHistory": "Buka Riwayat API", + "openUiHistory": "Buka Riwayat UI" }, "history": { "title": "Riwayat" diff --git a/webview-ui/src/i18n/locales/it/chat.json b/webview-ui/src/i18n/locales/it/chat.json index eb7963bb08..c97e2171b4 100644 --- a/webview-ui/src/i18n/locales/it/chat.json +++ b/webview-ui/src/i18n/locales/it/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Link organizzazione copiato negli appunti", "shareSuccessPublic": "Link pubblico copiato negli appunti", "openInCloud": "Apri attività in Roo Code Cloud", - "openInCloudIntro": "Continua a monitorare o interagire con Roo da qualsiasi luogo. Scansiona, clicca o copia per aprire." + "openInCloudIntro": "Continua a monitorare o interagire con Roo da qualsiasi luogo. Scansiona, clicca o copia per aprire.", + "openApiHistory": "Apri cronologia API", + "openUiHistory": "Apri cronologia UI" }, "unpin": "Rilascia", "pin": "Fissa", diff --git a/webview-ui/src/i18n/locales/ja/chat.json b/webview-ui/src/i18n/locales/ja/chat.json index b621b19b9d..5ba692c1db 100644 --- a/webview-ui/src/i18n/locales/ja/chat.json +++ b/webview-ui/src/i18n/locales/ja/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "組織リンクをクリップボードにコピーしました", "shareSuccessPublic": "公開リンクをクリップボードにコピーしました", "openInCloud": "Roo Code Cloudでタスクを開く", - "openInCloudIntro": "どこからでもRooの監視や操作を続けられます。スキャン、クリック、またはコピーして開いてください。" + "openInCloudIntro": "どこからでもRooの監視や操作を続けられます。スキャン、クリック、またはコピーして開いてください。", + "openApiHistory": "API履歴を開く", + "openUiHistory": "UI履歴を開く" }, "unpin": "ピン留めを解除", "pin": "ピン留め", diff --git a/webview-ui/src/i18n/locales/ko/chat.json b/webview-ui/src/i18n/locales/ko/chat.json index 4cb85f4155..0ad288a264 100644 --- a/webview-ui/src/i18n/locales/ko/chat.json +++ b/webview-ui/src/i18n/locales/ko/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "조직 링크가 클립보드에 복사되었습니다", "shareSuccessPublic": "공개 링크가 클립보드에 복사되었습니다", "openInCloud": "Roo Code Cloud에서 작업 열기", - "openInCloudIntro": "어디서나 Roo를 계속 모니터링하거나 상호작용할 수 있습니다. 스캔, 클릭 또는 복사하여 열기." + "openInCloudIntro": "어디서나 Roo를 계속 모니터링하거나 상호작용할 수 있습니다. 스캔, 클릭 또는 복사하여 열기.", + "openApiHistory": "API 기록 열기", + "openUiHistory": "UI 기록 열기" }, "unpin": "고정 해제하기", "pin": "고정하기", diff --git a/webview-ui/src/i18n/locales/nl/chat.json b/webview-ui/src/i18n/locales/nl/chat.json index 1927ef7755..4abbab0086 100644 --- a/webview-ui/src/i18n/locales/nl/chat.json +++ b/webview-ui/src/i18n/locales/nl/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Organisatielink gekopieerd naar klembord", "shareSuccessPublic": "Openbare link gekopieerd naar klembord", "openInCloud": "Taak openen in Roo Code Cloud", - "openInCloudIntro": "Blijf Roo vanaf elke locatie monitoren of ermee interacteren. Scan, klik of kopieer om te openen." + "openInCloudIntro": "Blijf Roo vanaf elke locatie monitoren of ermee interacteren. Scan, klik of kopieer om te openen.", + "openApiHistory": "API-geschiedenis openen", + "openUiHistory": "UI-geschiedenis openen" }, "unpin": "Losmaken", "pin": "Vastmaken", diff --git a/webview-ui/src/i18n/locales/pl/chat.json b/webview-ui/src/i18n/locales/pl/chat.json index 3d8ac0f004..7e14ec0e17 100644 --- a/webview-ui/src/i18n/locales/pl/chat.json +++ b/webview-ui/src/i18n/locales/pl/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Link organizacji skopiowany do schowka", "shareSuccessPublic": "Link publiczny skopiowany do schowka", "openInCloud": "Otwórz zadanie w Roo Code Cloud", - "openInCloudIntro": "Kontynuuj monitorowanie lub interakcję z Roo z dowolnego miejsca. Zeskanuj, kliknij lub skopiuj, aby otworzyć." + "openInCloudIntro": "Kontynuuj monitorowanie lub interakcję z Roo z dowolnego miejsca. Zeskanuj, kliknij lub skopiuj, aby otworzyć.", + "openApiHistory": "Otwórz historię API", + "openUiHistory": "Otwórz historię UI" }, "unpin": "Odepnij", "pin": "Przypnij", diff --git a/webview-ui/src/i18n/locales/pt-BR/chat.json b/webview-ui/src/i18n/locales/pt-BR/chat.json index 4b07c65f56..262c4246bc 100644 --- a/webview-ui/src/i18n/locales/pt-BR/chat.json +++ b/webview-ui/src/i18n/locales/pt-BR/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Link da organização copiado para a área de transferência", "shareSuccessPublic": "Link público copiado para a área de transferência", "openInCloud": "Abrir tarefa no Roo Code Cloud", - "openInCloudIntro": "Continue monitorando ou interagindo com Roo de qualquer lugar. Escaneie, clique ou copie para abrir." + "openInCloudIntro": "Continue monitorando ou interagindo com Roo de qualquer lugar. Escaneie, clique ou copie para abrir.", + "openApiHistory": "Abrir histórico da API", + "openUiHistory": "Abrir histórico da UI" }, "unpin": "Desfixar", "pin": "Fixar", diff --git a/webview-ui/src/i18n/locales/ru/chat.json b/webview-ui/src/i18n/locales/ru/chat.json index 74190794a4..3de1697fb7 100644 --- a/webview-ui/src/i18n/locales/ru/chat.json +++ b/webview-ui/src/i18n/locales/ru/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Ссылка организации скопирована в буфер обмена", "shareSuccessPublic": "Публичная ссылка скопирована в буфер обмена", "openInCloud": "Открыть задачу в Roo Code Cloud", - "openInCloudIntro": "Продолжай отслеживать или взаимодействовать с Roo откуда угодно. Отсканируй, нажми или скопируй для открытия." + "openInCloudIntro": "Продолжай отслеживать или взаимодействовать с Roo откуда угодно. Отсканируй, нажми или скопируй для открытия.", + "openApiHistory": "Открыть историю API", + "openUiHistory": "Открыть историю UI" }, "unpin": "Открепить", "pin": "Закрепить", diff --git a/webview-ui/src/i18n/locales/tr/chat.json b/webview-ui/src/i18n/locales/tr/chat.json index 2d847d5e3e..6f8d360b57 100644 --- a/webview-ui/src/i18n/locales/tr/chat.json +++ b/webview-ui/src/i18n/locales/tr/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Organizasyon bağlantısı panoya kopyalandı", "shareSuccessPublic": "Genel bağlantı panoya kopyalandı", "openInCloud": "Görevi Roo Code Cloud'da aç", - "openInCloudIntro": "Roo'yu her yerden izlemeye veya etkileşime devam et. Açmak için tara, tıkla veya kopyala." + "openInCloudIntro": "Roo'yu her yerden izlemeye veya etkileşime devam et. Açmak için tara, tıkla veya kopyala.", + "openApiHistory": "API Geçmişini Aç", + "openUiHistory": "UI Geçmişini Aç" }, "unpin": "Sabitlemeyi iptal et", "pin": "Sabitle", diff --git a/webview-ui/src/i18n/locales/vi/chat.json b/webview-ui/src/i18n/locales/vi/chat.json index 1057cc198e..dce5e12241 100644 --- a/webview-ui/src/i18n/locales/vi/chat.json +++ b/webview-ui/src/i18n/locales/vi/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "Liên kết tổ chức đã được sao chép vào clipboard", "shareSuccessPublic": "Liên kết công khai đã được sao chép vào clipboard", "openInCloud": "Mở tác vụ trong Roo Code Cloud", - "openInCloudIntro": "Tiếp tục theo dõi hoặc tương tác với Roo từ bất cứ đâu. Quét, nhấp hoặc sao chép để mở." + "openInCloudIntro": "Tiếp tục theo dõi hoặc tương tác với Roo từ bất cứ đâu. Quét, nhấp hoặc sao chép để mở.", + "openApiHistory": "Mở lịch sử API", + "openUiHistory": "Mở lịch sử UI" }, "unpin": "Bỏ ghim khỏi đầu", "pin": "Ghim lên đầu", diff --git a/webview-ui/src/i18n/locales/zh-CN/chat.json b/webview-ui/src/i18n/locales/zh-CN/chat.json index 19cd80694c..11d947102b 100644 --- a/webview-ui/src/i18n/locales/zh-CN/chat.json +++ b/webview-ui/src/i18n/locales/zh-CN/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "组织链接已复制到剪贴板", "shareSuccessPublic": "公开链接已复制到剪贴板", "openInCloud": "在 Roo Code Cloud 中打开任务", - "openInCloudIntro": "从任何地方继续监控或与 Roo 交互。扫描、点击或复制以打开。" + "openInCloudIntro": "从任何地方继续监控或与 Roo 交互。扫描、点击或复制以打开。", + "openApiHistory": "打开 API 历史", + "openUiHistory": "打开 UI 历史" }, "unpin": "取消置顶", "pin": "置顶", diff --git a/webview-ui/src/i18n/locales/zh-TW/chat.json b/webview-ui/src/i18n/locales/zh-TW/chat.json index 2e93f08f2d..54f8ae9bd7 100644 --- a/webview-ui/src/i18n/locales/zh-TW/chat.json +++ b/webview-ui/src/i18n/locales/zh-TW/chat.json @@ -26,7 +26,9 @@ "shareSuccessOrganization": "組織連結已複製到剪貼簿", "shareSuccessPublic": "公開連結已複製到剪貼簿", "openInCloud": "在 Roo Code Cloud 中開啟工作", - "openInCloudIntro": "從任何地方繼續監控或與 Roo 互動。掃描、點擊或複製以開啟。" + "openInCloudIntro": "從任何地方繼續監控或與 Roo 互動。掃描、點擊或複製以開啟。", + "openApiHistory": "開啟 API 歷史紀錄", + "openUiHistory": "開啟 UI 歷史紀錄" }, "unpin": "取消釘選", "pin": "釘選", From b2ea384987d9b5f661b84cd27aa14685b636f69d Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Fri, 28 Nov 2025 16:25:43 -0700 Subject: [PATCH 3/3] Update src/package.nls.ru.json Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- src/package.nls.ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package.nls.ru.json b/src/package.nls.ru.json index b685c4fd7c..420816a01a 100644 --- a/src/package.nls.ru.json +++ b/src/package.nls.ru.json @@ -44,5 +44,5 @@ "settings.apiRequestTimeout.description": "Максимальное время в секундах для ожидания ответов API (0 = нет тайм-аута, 1-3600 с, по умолчанию: 600 с). Рекомендуются более высокие значения для локальных провайдеров, таких как LM Studio и Ollama, которым может потребоваться больше времени на обработку.", "settings.newTaskRequireTodos.description": "Требовать параметр todos при создании новых задач с помощью инструмента new_task", "settings.codeIndex.embeddingBatchSize.description": "Размер пакета для операций встраивания во время индексации кода. Настройте это в соответствии с ограничениями вашего API-провайдера. По умолчанию 60.", - "settings.debug.description": "Включи режим отладки, чтобы отображать дополнительные кнопки для просмотра истории разговоров API и сообщений интерфейса в виде форматированного JSON во временных файлах." + "settings.debug.description": "Включить режим отладки, чтобы отображать дополнительные кнопки для просмотра истории разговоров API и сообщений интерфейса в виде форматированного JSON во временных файлах." }