feat(app): make the side panel user-directed (#3605)

* feat(app): let the file panel close its tree rail

The file panel's tree rail was permanent on desktop — the changes panel
had a folder-tree toggle in its toolbar, the file toolbar had nothing, so
the rail was there whether you wanted it or not.

The changes panel's private DesktopTreeToggle becomes a shared
TreeRailToggle so both toolbars render the same affordance; that also
drops the treeToggleStyle prop threaded through ChangesToolbarProps,
which recomputed exactly what the component already built internally.
The i18n keys move out of workspace.git.diff into workspace.tree, since a
shared component reaching into the git namespace would rot.

The two rails keep independent flags — the file rail in panel-store, the
changes rail in useChangesPreferences — so closing one leaves the other
alone. FileTreeToggle wires itself to the store rather than taking a
callback: the bar renders several components below FilePanel, where the
rail actually lives.

Both rails also get narrower (320 -> 260 default, 200 -> 180 minimum).
The persist version bump resets treeRailWidth on purpose: nearly every
existing install carries the old 320 default, so without the reset the
narrower rail would only ever reach new users. Anyone who dragged their
rail to a deliberate custom width loses it once.

Note that MIN_CONTENT_WIDTH still clamps the rail to
`containerWidth - 240`, so in a narrow pane the new default never
applies — that floor, not the default, is what sets the width there.

* feat(app): make the side panel an empty workspace surface

The fixed, hideable side panel keeps supporting context beside an agent without seeding content. Pane-local choices stay local, while implicit supporting opens follow a persisted routing preference.

* test(app): exercise side panel policy through its capability boundary

The browser rail journey already covers the real tree-toggle behavior. Side-panel policy tests now pass their platform capability through the public boundary instead of replacing a production module.

* test(app): expect an empty side panel after upgrade

* test(app): expect an empty first split pane

* test(app): account for the empty side panel in split retention

* feat(app): make workspace panel tabs independent

Give explicit New actions fresh tab instances, keep panel state opaque to tab management, preserve File navigation context, and stabilize uncached File transitions.

* fix(app): preserve file conflicts during preview refresh

Keep the current preview mounted for same-target reads and conversions so the editor retains its conflict observation state. Clear retained previews only when the file target changes.
This commit is contained in:
Mohamed Boudra
2026-08-20 21:49:23 +02:00
committed by GitHub
parent 2a0a0ff656
commit 19a7d26349
107 changed files with 5386 additions and 2178 deletions
+3 -4
View File
@@ -412,7 +412,6 @@ describe("translation resources", () => {
});
it("includes workspace tab toast keys for the Batch 4J migration", () => {
expect(en.workspace.tabs.emptyPane).toBe("No tabs in this pane.");
expect(en.workspace.tabs.toasts.copyFailed).toBe("Copy failed");
expect(en.workspace.tabs.toasts.agentIdCopiedLabel).toBe("Agent ID");
expect(en.workspace.tabs.toasts.resumeCommandCopiedLabel).toBe("resume command");
@@ -494,12 +493,12 @@ describe("translation resources", () => {
expect(en.agentList.dateSections.recent).toBe("Recent");
expect(en.message.attachments.imagePreviewUnavailable).toBe("Image preview unavailable.");
expect(en.message.attachments.imagePreviewLoadFailed).toBe("Unable to load image preview.");
expect(en.workspace.tabs.explorer.changes).toBe("Changes");
expect(en.workspace.tabs.explorer.files).toBe("Files");
expect(en.workspace.tabs.sidePanel.changes).toBe("Changes");
expect(en.workspace.tabs.sidePanel.files).toBe("Files");
expect(en.workspace.tabs.actions.maximizePane).toBe("Maximize pane");
expect(en.workspace.tabs.actions.restorePane).toBe("Restore pane");
expect(en.settings.shortcuts.help.toggleExplorerPaneMaximization).toBe(
"Toggle Explorer pane maximization",
"Toggle Side panel maximization",
);
expect(en.branchSwitcher.triggerTooltip).toBe("Switch workspace branch");
expect(en.branchSwitcher.uncommittedTitle).toBe("Uncommitted changes");
+16 -9
View File
@@ -553,7 +553,6 @@ export const ar: TranslationResources = {
loading: "تحميل...",
modified: "تغييرات غير محفوظة",
loadingAgentTitle: "جارٍ تحميل عنوان الوكيل",
emptyPane: "لا توجد علامات تبويب في هذا الجزء.",
fallback: {
newAgent: "وكيل جديد",
setup: "يثبت",
@@ -595,6 +594,7 @@ export const ar: TranslationResources = {
newBrowser: "متصفح جديد",
maximizePane: "تكبير الجزء",
restorePane: "استعادة الجزء",
closePane: "إغلاق الجزء",
exitFocusMode: "إنهاء وضع التركيز",
splitRight: "تقسيم الجزء الأيمن",
splitDown: "تقسيم الجزء لأسفل",
@@ -604,10 +604,10 @@ export const ar: TranslationResources = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "افتح المستكشف",
close: "إغلاق المستكشف",
toggle: "تبديل المستكشف",
sidePanel: {
open: "افتح اللوحة الجانبية",
close: "إغلاق اللوحة الجانبية",
toggle: "تبديل اللوحة الجانبية",
changes: "التغييرات",
files: "ملفات",
},
@@ -710,6 +710,10 @@ export const ar: TranslationResources = {
stopFailed: "فشل إيقاف{{scriptName}}",
},
},
tree: {
showFolderTree: "إظهار شجرة المجلدات",
hideFolderTree: "إخفاء شجرة المجلدات",
},
git: {
actions: {
moreOptions: "المزيد من الخيارات",
@@ -855,8 +859,6 @@ export const ar: TranslationResources = {
split: "فرق جنبًا إلى جنب",
switchToUnified: "التبديل إلى الفرق الموحد",
switchToSplit: "التبديل إلى الفرق جنبًا إلى جنب",
showTreeView: "إظهار شجرة المجلدات",
hideTreeView: "إخفاء شجرة المجلدات",
options: "خيارات الفرق",
hideWhitespace: "إخفاء المسافة البيضاء",
showWhitespace: "إظهار المسافة البيضاء",
@@ -1917,6 +1919,11 @@ export const ar: TranslationResources = {
description: "يتم الاحتفاظ بالخطوط في المخزن المؤقت الطرفي المدمج",
accessibilityLabel: "خطوط التمرير Terminal",
},
sidePanelRouting: {
label: "فتح علامات التبويب المساعدة في اللوحة الجانبية",
description:
"تفتح روابط الملفات وطلبات السحب وتقدم الإعداد بجوار عملك بدلاً من الجزء المركّز عليه",
},
autoExpandReasoning: {
label: "عرض التفكير دائماً",
description: "إظهار تفكير الوكيل وخطوات الاستدلال بشكل كامل بشكل افتراضي",
@@ -2100,11 +2107,11 @@ export const ar: TranslationResources = {
toggleCommandCenter: "تبديل مركز القيادة",
showKeyboardShortcuts: "إظهار اختصارات لوحة المفاتيح",
toggleLeftSidebar: "تبديل الشريط الجانبي الأيسر",
toggleRightSidebar: "تبديل الشريط الجانبي الأيمن",
toggleRightSidebar: "تبديل اللوحة الجانبية",
toggleBothSidebars: "تبديل كلا الشريطين الجانبيين",
toggleSettings: "تبديل الإعدادات",
toggleFocusMode: "تبديل وضع التركيز",
toggleExplorerPaneMaximization: "تبديل تكبير جزء المستكشف",
toggleExplorerPaneMaximization: "تبديل تكبير اللوحة الجانبية",
cycleTheme: "موضوع الدورة",
focusMessageInput: "التركيز على إدخال الرسالة",
cycleAgentMode: "تبديل وضع الوكيل",
+16 -9
View File
@@ -551,7 +551,6 @@ export const en = {
loading: "Loading...",
modified: "Unsaved changes",
loadingAgentTitle: "Loading agent title",
emptyPane: "No tabs in this pane.",
fallback: {
newAgent: "New agent",
setup: "Setup",
@@ -593,6 +592,7 @@ export const en = {
newBrowser: "New browser",
maximizePane: "Maximize pane",
restorePane: "Restore pane",
closePane: "Close pane",
exitFocusMode: "Exit focus mode",
splitRight: "Split pane right",
splitDown: "Split pane down",
@@ -602,10 +602,10 @@ export const en = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "Open explorer",
close: "Close explorer",
toggle: "Toggle explorer",
sidePanel: {
open: "Open side panel",
close: "Close side panel",
toggle: "Toggle side panel",
changes: "Changes",
files: "Files",
},
@@ -706,6 +706,10 @@ export const en = {
stopFailed: "Failed to stop {{scriptName}}",
},
},
tree: {
showFolderTree: "Show folder tree",
hideFolderTree: "Hide folder tree",
},
git: {
actions: {
moreOptions: "More options",
@@ -864,8 +868,6 @@ export const en = {
split: "Side-by-side diff",
switchToUnified: "Switch to unified diff",
switchToSplit: "Switch to side-by-side diff",
showTreeView: "Show folder tree",
hideTreeView: "Hide folder tree",
options: "Diff options",
hideWhitespace: "Hide whitespace",
showWhitespace: "Show whitespace",
@@ -1981,6 +1983,11 @@ export const en = {
description: "Lines kept in the built-in terminal buffer",
accessibilityLabel: "Terminal scrollback lines",
},
sidePanelRouting: {
label: "Open supporting tabs in the Side panel",
description:
"File links, pull requests, and setup progress open beside your work instead of in the focused pane",
},
autoExpandReasoning: {
label: "Always expand reasoning",
description: "Show agent thinking and chain-of-thought blocks fully expanded by default",
@@ -2164,11 +2171,11 @@ export const en = {
toggleCommandCenter: "Toggle command center",
showKeyboardShortcuts: "Show keyboard shortcuts",
toggleLeftSidebar: "Toggle left sidebar",
toggleRightSidebar: "Toggle right sidebar",
toggleRightSidebar: "Toggle side panel",
toggleBothSidebars: "Toggle both sidebars",
toggleSettings: "Toggle settings",
toggleFocusMode: "Toggle focus mode",
toggleExplorerPaneMaximization: "Toggle Explorer pane maximization",
toggleExplorerPaneMaximization: "Toggle Side panel maximization",
cycleTheme: "Cycle theme",
focusMessageInput: "Focus message input",
cycleAgentMode: "Cycle agent mode",
+16 -9
View File
@@ -557,7 +557,6 @@ export const es: TranslationResources = {
loading: "Cargando...",
modified: "Cambios sin guardar",
loadingAgentTitle: "Título del agente de carga",
emptyPane: "No hay pestañas en este panel.",
fallback: {
newAgent: "Nuevo agente",
setup: "Configuración",
@@ -600,6 +599,7 @@ export const es: TranslationResources = {
newBrowser: "Nuevo navegador",
maximizePane: "Maximizar panel",
restorePane: "Restaurar panel",
closePane: "Cerrar panel",
exitFocusMode: "Salir del modo de concentración",
splitRight: "Panel dividido a la derecha",
splitDown: "Dividir panel hacia abajo",
@@ -609,10 +609,10 @@ export const es: TranslationResources = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "Explorador abierto",
close: "Cerrar explorador",
toggle: "Alternar explorador",
sidePanel: {
open: "Abrir panel lateral",
close: "Cerrar panel lateral",
toggle: "Alternar panel lateral",
changes: "Cambios",
files: "Archivos",
},
@@ -716,6 +716,10 @@ export const es: TranslationResources = {
stopFailed: "No se pudo detener{{scriptName}}",
},
},
tree: {
showFolderTree: "Mostrar árbol de carpetas",
hideFolderTree: "Ocultar árbol de carpetas",
},
git: {
actions: {
moreOptions: "Más opciones",
@@ -886,8 +890,6 @@ export const es: TranslationResources = {
split: "Diferencia de lado a lado",
switchToUnified: "Cambiar a diferencia unificada",
switchToSplit: "Cambiar a diferencia lado a lado",
showTreeView: "Mostrar árbol de carpetas",
hideTreeView: "Ocultar árbol de carpetas",
options: "Opciones de diferencia",
hideWhitespace: "Ocultar espacios en blanco",
showWhitespace: "Mostrar espacios en blanco",
@@ -1966,6 +1968,11 @@ export const es: TranslationResources = {
description: "Líneas mantenidas en el búfer de terminal incorporado",
accessibilityLabel: "Líneas del historial de terminal",
},
sidePanelRouting: {
label: "Abrir pestañas de apoyo en el panel lateral",
description:
"Los enlaces a archivos, las solicitudes de incorporación y el progreso de configuración se abren junto a tu trabajo en lugar del panel enfocado",
},
autoExpandReasoning: {
label: "Siempre expandir razonamiento",
description:
@@ -2151,11 +2158,11 @@ export const es: TranslationResources = {
toggleCommandCenter: "Alternar centro de comando",
showKeyboardShortcuts: "Mostrar atajos de teclado",
toggleLeftSidebar: "Alternar barra lateral izquierda",
toggleRightSidebar: "Alternar barra lateral derecha",
toggleRightSidebar: "Alternar panel lateral",
toggleBothSidebars: "Alternar ambas barras laterales",
toggleSettings: "Alternar configuración",
toggleFocusMode: "Alternar modo de enfoque",
toggleExplorerPaneMaximization: "Alternar maximización del panel Explorador",
toggleExplorerPaneMaximization: "Alternar maximización del panel lateral",
cycleTheme: "Tema del ciclo",
focusMessageInput: "Entrada de mensaje de enfoque",
cycleAgentMode: "Alternar modo del agente",
+16 -9
View File
@@ -557,7 +557,6 @@ export const fr: TranslationResources = {
loading: "Chargement...",
modified: "Modifications non enregistrées",
loadingAgentTitle: "Titre d'agent de chargement",
emptyPane: "Aucun onglet dans ce volet.",
fallback: {
newAgent: "Nouvel agent",
setup: "Installation",
@@ -600,6 +599,7 @@ export const fr: TranslationResources = {
newBrowser: "Nouveau navigateur",
maximizePane: "Agrandir le volet",
restorePane: "Restaurer le volet",
closePane: "Fermer le volet",
exitFocusMode: "Quitter le mode concentration",
splitRight: "Volet divisé à droite",
splitDown: "Diviser le volet vers le bas",
@@ -609,10 +609,10 @@ export const fr: TranslationResources = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "Ouvrir l'explorateur",
close: "Fermer l'explorateur",
toggle: "Basculer l'explorateur",
sidePanel: {
open: "Ouvrir le panneau latéral",
close: "Fermer le panneau latéral",
toggle: "Basculer le panneau latéral",
changes: "Changements",
files: "Fichiers",
},
@@ -716,6 +716,10 @@ export const fr: TranslationResources = {
stopFailed: "Échec de l'arrêt de{{scriptName}}",
},
},
tree: {
showFolderTree: "Afficher l'arborescence des dossiers",
hideFolderTree: "Masquer l'arborescence des dossiers",
},
git: {
actions: {
moreOptions: "Plus d'options",
@@ -885,8 +889,6 @@ export const fr: TranslationResources = {
split: "Différent côte à côte",
switchToUnified: "Passer au diff unifié",
switchToSplit: "Passer au diff côte à côte",
showTreeView: "Afficher l'arborescence des dossiers",
hideTreeView: "Masquer l'arborescence des dossiers",
options: "Options du diff",
hideWhitespace: "Masquer les espaces",
showWhitespace: "Afficher les espaces",
@@ -1970,6 +1972,11 @@ export const fr: TranslationResources = {
description: "Lignes conservées dans le tampon du terminal intégré",
accessibilityLabel: "Lignes de défilementTerminal",
},
sidePanelRouting: {
label: "Ouvrir les onglets d'appoint dans le panneau latéral",
description:
"Les liens de fichiers, les pull requests et la progression de la configuration s'ouvrent à côté de votre travail plutôt que dans le volet actif",
},
autoExpandReasoning: {
label: "Toujours afficher le raisonnement",
description: "Afficher le raisonnement de l'agent entièrement développé par défaut",
@@ -2155,11 +2162,11 @@ export const fr: TranslationResources = {
toggleCommandCenter: "Basculer le centre de commande",
showKeyboardShortcuts: "Afficher les raccourcis clavier",
toggleLeftSidebar: "Basculer la barre latérale gauche",
toggleRightSidebar: "Basculer la barre latérale droite",
toggleRightSidebar: "Basculer le panneau latéral",
toggleBothSidebars: "Basculer les deux barres latérales",
toggleSettings: "Basculer les paramètres",
toggleFocusMode: "Basculer le mode de mise au point",
toggleExplorerPaneMaximization: "Basculer l’agrandissement du volet Explorateur",
toggleExplorerPaneMaximization: "Basculer l’agrandissement du panneau latéral",
cycleTheme: "Thème du cycle",
focusMessageInput: "Saisie du message de focus",
cycleAgentMode: "Parcourir les modes de l'agent",
+16 -9
View File
@@ -557,7 +557,6 @@ export const ja: TranslationResources = {
loading: "読み込み中...",
modified: "未保存の変更",
loadingAgentTitle: "エージェントタイトルを読み込み中",
emptyPane: "このペインにタブがありません。",
fallback: {
newAgent: "新しいエージェント",
setup: "セットアップ",
@@ -600,6 +599,7 @@ export const ja: TranslationResources = {
newBrowser: "新しいブラウザ",
maximizePane: "ペインを最大化",
restorePane: "ペインを元に戻す",
closePane: "ペインを閉じる",
exitFocusMode: "フォーカスモードを終了",
splitRight: "右にペインを分割",
splitDown: "下にペインを分割",
@@ -609,10 +609,10 @@ export const ja: TranslationResources = {
terminalProfilesMenu: "ターミナルプロファイル",
editTerminalProfiles: "プロファイルを編集…",
},
explorer: {
open: "エクスプローラーを開く",
close: "エクスプローラーを閉じる",
toggle: "エクスプローラーを切り替え",
sidePanel: {
open: "サイドパネルを開く",
close: "サイドパネルを閉じる",
toggle: "サイドパネルを切り替え",
changes: "変更",
files: "ファイル",
},
@@ -712,6 +712,10 @@ export const ja: TranslationResources = {
stopFailed: "{{scriptName}}の停止に失敗しました",
},
},
tree: {
showFolderTree: "フォルダツリーを表示",
hideFolderTree: "フォルダツリーを非表示",
},
git: {
actions: {
moreOptions: "その他のオプション",
@@ -866,8 +870,6 @@ export const ja: TranslationResources = {
split: "左右比較",
switchToUnified: "ユニファイド差分に切り替え",
switchToSplit: "左右比較差分に切り替え",
showTreeView: "フォルダツリーを表示",
hideTreeView: "フォルダツリーを非表示",
options: "差分オプション",
hideWhitespace: "空白を非表示",
showWhitespace: "空白を表示",
@@ -1934,6 +1936,11 @@ export const ja: TranslationResources = {
description: "組み込みターミナルバッファに保持する行数",
accessibilityLabel: "ターミナルスクロールバック行数",
},
sidePanelRouting: {
label: "補助タブをサイドパネルで開く",
description:
"ファイルリンク、プルリクエスト、セットアップの進行状況が、フォーカス中のペインではなく作業の横に開きます",
},
autoExpandReasoning: {
label: "常に思考プロセスを展開",
description: "デフォルトでAIのエージェント思考・推論ブロックを完全に展開して表示します",
@@ -2118,11 +2125,11 @@ export const ja: TranslationResources = {
toggleCommandCenter: "コマンドセンターを切り替え",
showKeyboardShortcuts: "キーボードショートカットを表示",
toggleLeftSidebar: "左サイドバーを切り替え",
toggleRightSidebar: "右サイドバーを切り替え",
toggleRightSidebar: "サイドパネルを切り替え",
toggleBothSidebars: "両方のサイドバーを切り替え",
toggleSettings: "設定を切り替え",
toggleFocusMode: "フォーカスモードを切り替え",
toggleExplorerPaneMaximization: "エクスプローラーペインの最大化を切り替え",
toggleExplorerPaneMaximization: "サイドパネルの最大化を切り替え",
cycleTheme: "テーマを順に切り替え",
focusMessageInput: "メッセージ入力にフォーカス",
cycleAgentMode: "エージェントモードを順に切り替え",
+16 -9
View File
@@ -554,7 +554,6 @@ export const ko: TranslationResources = {
loading: "불러오는 중...",
modified: "저장되지 않은 변경사항",
loadingAgentTitle: "에이전트 제목 불러오는 중",
emptyPane: "이 창에 탭이 없습니다.",
fallback: {
newAgent: "새 에이전트",
setup: "설정",
@@ -597,6 +596,7 @@ export const ko: TranslationResources = {
newBrowser: "새 브라우저",
maximizePane: "창 최대화",
restorePane: "창 복원",
closePane: "창 닫기",
exitFocusMode: "집중 모드 종료",
splitRight: "창을 오른쪽으로 분할",
splitDown: "창을 아래로 분할",
@@ -606,10 +606,10 @@ export const ko: TranslationResources = {
terminalProfilesMenu: "터미널 프로필",
editTerminalProfiles: "프로필 편집…",
},
explorer: {
open: "탐색기 열기",
close: "탐색기 닫기",
toggle: "탐색기 토글",
sidePanel: {
open: "사이드 패널 열기",
close: "사이드 패널 닫기",
toggle: "사이드 패널 토글",
changes: "변경 사항",
files: "파일",
},
@@ -710,6 +710,10 @@ export const ko: TranslationResources = {
stopFailed: "{{scriptName}}를 중지하지 못했습니다.",
},
},
tree: {
showFolderTree: "폴더 트리 표시",
hideFolderTree: "폴더 트리 숨기기",
},
git: {
actions: {
moreOptions: "옵션 더 보기",
@@ -862,8 +866,6 @@ export const ko: TranslationResources = {
split: "나란히 보기 diff",
switchToUnified: "통합 diff로 전환",
switchToSplit: "나란히 보기 diff로 전환",
showTreeView: "폴더 트리 표시",
hideTreeView: "폴더 트리 숨기기",
options: "Diff 옵션",
hideWhitespace: "공백 숨기기",
showWhitespace: "공백 표시",
@@ -1928,6 +1930,11 @@ export const ko: TranslationResources = {
description: "내장 터미널 버퍼에 보관되는 줄 수",
accessibilityLabel: "터미널 스크롤백 줄 수",
},
sidePanelRouting: {
label: "보조 탭을 사이드 패널에서 열기",
description:
"파일 링크, 풀 리퀘스트, 설정 진행 상황이 포커스된 창이 아니라 작업 옆에서 열립니다",
},
autoExpandReasoning: {
label: "추론 항상 펼치기",
description: "에이전트의 사고 및 추론 블록을 기본적으로 모두 펼쳐 표시합니다.",
@@ -2111,11 +2118,11 @@ export const ko: TranslationResources = {
toggleCommandCenter: "명령 센터 토글",
showKeyboardShortcuts: "키보드 단축키 표시",
toggleLeftSidebar: "왼쪽 사이드바 토글",
toggleRightSidebar: "오른쪽 사이드바 토글",
toggleRightSidebar: "사이드 패널 토글",
toggleBothSidebars: "양쪽 사이드바 토글",
toggleSettings: "설정 토글",
toggleFocusMode: "집중 모드 토글",
toggleExplorerPaneMaximization: "탐색기 창 최대화 전환",
toggleExplorerPaneMaximization: "사이드 패널 최대화 전환",
cycleTheme: "테마 순환",
focusMessageInput: "메시지 입력란에 포커스",
cycleAgentMode: "에이전트 모드 전환",
+16 -9
View File
@@ -557,7 +557,6 @@ export const ptBR: TranslationResources = {
loading: "Carregando...",
modified: "Alterações não salvas",
loadingAgentTitle: "Carregando título do agente",
emptyPane: "Nenhuma aba neste painel.",
fallback: {
newAgent: "Novo agente",
setup: "Configuração",
@@ -599,6 +598,7 @@ export const ptBR: TranslationResources = {
newBrowser: "Novo navegador",
maximizePane: "Maximizar painel",
restorePane: "Restaurar painel",
closePane: "Fechar painel",
exitFocusMode: "Sair do modo de foco",
splitRight: "Dividir painel à direita",
splitDown: "Dividir painel abaixo",
@@ -608,10 +608,10 @@ export const ptBR: TranslationResources = {
terminalProfilesMenu: "Perfis de terminal",
editTerminalProfiles: "Editar perfis…",
},
explorer: {
open: "Abrir explorador",
close: "Fechar explorador",
toggle: "Alternar explorador",
sidePanel: {
open: "Abrir painel lateral",
close: "Fechar painel lateral",
toggle: "Alternar painel lateral",
changes: "Alterações",
files: "Arquivos",
},
@@ -713,6 +713,10 @@ export const ptBR: TranslationResources = {
stopFailed: "Falha ao parar {{scriptName}}",
},
},
tree: {
showFolderTree: "Mostrar árvore de pastas",
hideFolderTree: "Ocultar árvore de pastas",
},
git: {
actions: {
moreOptions: "Mais opções",
@@ -877,8 +881,6 @@ export const ptBR: TranslationResources = {
split: "Diff lado a lado",
switchToUnified: "Alternar para diff unificado",
switchToSplit: "Alternar para diff lado a lado",
showTreeView: "Mostrar árvore de pastas",
hideTreeView: "Ocultar árvore de pastas",
options: "Opções do diff",
hideWhitespace: "Ocultar espaços em branco",
showWhitespace: "Mostrar espaços em branco",
@@ -1950,6 +1952,11 @@ export const ptBR: TranslationResources = {
description: "Linhas mantidas no buffer do terminal integrado",
accessibilityLabel: "Linhas do scrollback do terminal",
},
sidePanelRouting: {
label: "Abrir abas de apoio no painel lateral",
description:
"Links de arquivo, pull requests e progresso da configuração abrem ao lado do seu trabalho em vez do painel em foco",
},
autoExpandReasoning: {
label: "Sempre expandir raciocínio",
description:
@@ -2134,11 +2141,11 @@ export const ptBR: TranslationResources = {
toggleCommandCenter: "Alternar central de comandos",
showKeyboardShortcuts: "Mostrar atalhos de teclado",
toggleLeftSidebar: "Alternar barra lateral esquerda",
toggleRightSidebar: "Alternar barra lateral direita",
toggleRightSidebar: "Alternar painel lateral",
toggleBothSidebars: "Alternar ambas as barras laterais",
toggleSettings: "Alternar Configurações",
toggleFocusMode: "Alternar modo de foco",
toggleExplorerPaneMaximization: "Alternar maximização do painel Explorador",
toggleExplorerPaneMaximization: "Alternar maximização do painel lateral",
cycleTheme: "Alternar tema",
focusMessageInput: "Focar entrada de mensagem",
cycleAgentMode: "Alternar modo do agente",
+16 -9
View File
@@ -557,7 +557,6 @@ export const ru: TranslationResources = {
loading: "Загрузка...",
modified: "Несохранённые изменения",
loadingAgentTitle: "Название агента загрузки",
emptyPane: "На этой панели нет вкладок.",
fallback: {
newAgent: "Новый агент",
setup: "Настраивать",
@@ -599,6 +598,7 @@ export const ru: TranslationResources = {
newBrowser: "Новый браузер",
maximizePane: "Развернуть панель",
restorePane: "Восстановить панель",
closePane: "Закрыть панель",
exitFocusMode: "Выйти из режима фокусировки",
splitRight: "Разделить панель справа",
splitDown: "Разделить панель вниз",
@@ -608,10 +608,10 @@ export const ru: TranslationResources = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "Открыть проводник",
close: "Закрыть проводник",
toggle: "Переключить проводник",
sidePanel: {
open: "Открыть боковую панель",
close: "Закрыть боковую панель",
toggle: "Переключить боковую панель",
changes: "Изменения",
files: "Файлы",
},
@@ -715,6 +715,10 @@ export const ru: TranslationResources = {
stopFailed: "Не удалось остановить{{scriptName}}",
},
},
tree: {
showFolderTree: "Показать дерево папок",
hideFolderTree: "Скрыть дерево папок",
},
git: {
actions: {
moreOptions: "Больше возможностей",
@@ -877,8 +881,6 @@ export const ru: TranslationResources = {
split: "Параллельная разница",
switchToUnified: "Переключить на объединенный diff",
switchToSplit: "Переключить на diff рядом",
showTreeView: "Показать дерево папок",
hideTreeView: "Скрыть дерево папок",
options: "Параметры diff",
hideWhitespace: "Скрыть пробелы",
showWhitespace: "Показать пробелы",
@@ -1953,6 +1955,11 @@ export const ru: TranslationResources = {
description: "Строки, хранящиеся во встроенном буфере терминала.",
accessibilityLabel: "Линии прокрутки Terminal",
},
sidePanelRouting: {
label: "Открывать вспомогательные вкладки в боковой панели",
description:
"Ссылки на файлы, пул-реквесты и ход настройки открываются рядом с вашей работой, а не в активной панели",
},
autoExpandReasoning: {
label: "Всегда разворачивать размышления",
description:
@@ -2140,11 +2147,11 @@ export const ru: TranslationResources = {
toggleCommandCenter: "Переключить командный центр",
showKeyboardShortcuts: "Показать сочетания клавиш",
toggleLeftSidebar: "Переключить левую боковую панель",
toggleRightSidebar: "Переключить правую боковую панель",
toggleRightSidebar: "Переключить боковую панель",
toggleBothSidebars: "Переключить обе боковые панели",
toggleSettings: "Переключить настройки",
toggleFocusMode: "Переключить режим фокусировки",
toggleExplorerPaneMaximization: "Переключить разворачивание панели Проводника",
toggleExplorerPaneMaximization: "Переключить разворачивание боковой панели",
cycleTheme: "Циклическая тема",
focusMessageInput: "Фокус ввода сообщения",
cycleAgentMode: "Переключить режим агента",
+15 -9
View File
@@ -553,7 +553,6 @@ export const zhCN: TranslationResources = {
loading: "正在加载...",
modified: "未保存的更改",
loadingAgentTitle: "正在加载 Agent 标题",
emptyPane: "此窗格中没有标签。",
fallback: {
newAgent: "新建 Agent",
setup: "Setup",
@@ -595,6 +594,7 @@ export const zhCN: TranslationResources = {
newBrowser: "新建浏览器",
maximizePane: "最大化窗格",
restorePane: "还原窗格",
closePane: "关闭窗格",
exitFocusMode: "退出专注模式",
splitRight: "向右拆分窗格",
splitDown: "向下拆分窗格",
@@ -604,10 +604,10 @@ export const zhCN: TranslationResources = {
terminalProfilesMenu: "Terminal profiles",
editTerminalProfiles: "Edit profiles…",
},
explorer: {
open: "打开 explorer",
close: "关闭 explorer",
toggle: "切换 explorer",
sidePanel: {
open: "打开侧边面板",
close: "关闭侧边面板",
toggle: "切换侧边面板",
changes: "变更",
files: "文件",
},
@@ -706,6 +706,10 @@ export const zhCN: TranslationResources = {
stopFailed: "停止 {{scriptName}} 失败",
},
},
tree: {
showFolderTree: "显示文件夹树",
hideFolderTree: "隐藏文件夹树",
},
git: {
actions: {
moreOptions: "更多选项",
@@ -847,8 +851,6 @@ export const zhCN: TranslationResources = {
split: "Side-by-side diff",
switchToUnified: "切换到统一差异视图",
switchToSplit: "切换到并排差异视图",
showTreeView: "显示文件夹树",
hideTreeView: "隐藏文件夹树",
options: "Diff 选项",
hideWhitespace: "隐藏空白差异",
showWhitespace: "显示空白差异",
@@ -1894,6 +1896,10 @@ export const zhCN: TranslationResources = {
description: "内置终端缓冲区保留的行数",
accessibilityLabel: "终端回滚行数",
},
sidePanelRouting: {
label: "在侧边面板中打开辅助标签页",
description: "文件链接、拉取请求和设置进度会在你的工作旁边打开,而不是在聚焦的窗格中",
},
autoExpandReasoning: {
label: "始终展开推理过程",
description: "默认情况下完全展开 AI 的思考和推理过程",
@@ -2076,11 +2082,11 @@ export const zhCN: TranslationResources = {
toggleCommandCenter: "切换命令中心",
showKeyboardShortcuts: "显示键盘快捷键",
toggleLeftSidebar: "切换左侧边栏",
toggleRightSidebar: "切换右侧边栏",
toggleRightSidebar: "切换侧边面板",
toggleBothSidebars: "切换两侧边栏",
toggleSettings: "切换设置",
toggleFocusMode: "切换专注模式",
toggleExplorerPaneMaximization: "切换资源管理器窗格最大化",
toggleExplorerPaneMaximization: "切换侧边面板最大化",
cycleTheme: "循环切换主题",
focusMessageInput: "聚焦消息输入框",
cycleAgentMode: "循环切换代理模式",