diff --git a/src/mobile/settingsSections.ts b/src/mobile/settingsSections.ts index 732e411c..25669cee 100644 --- a/src/mobile/settingsSections.ts +++ b/src/mobile/settingsSections.ts @@ -27,8 +27,8 @@ export const MOBILE_SETTINGS_SECTION_LABELS: Record { />, ); - expect(screen.getByText("AI")).toBeInTheDocument(); + expect(screen.getByText("AI Helpers")).toBeInTheDocument(); expect(screen.getByText("Schedules")).toBeInTheDocument(); expect(screen.getByText("Agents")).toBeInTheDocument(); expect(screen.getByText("Archived Threads")).toBeInTheDocument(); - expect(screen.getByText("Usage")).toBeInTheDocument(); + expect(screen.getByText("Provider Usage")).toBeInTheDocument(); expect(screen.queryByText("Appearance")).not.toBeInTheDocument(); expect(screen.queryByText("Notifications")).not.toBeInTheDocument(); }); @@ -90,7 +90,7 @@ describe("mobile SettingsView", () => { />, ); - fireEvent.click(screen.getByText("Usage")); + fireEvent.click(screen.getByText("Provider Usage")); expect(onSectionChange).toHaveBeenCalledWith("usage"); }); diff --git a/src/renderer/locales/de/messages.po b/src/renderer/locales/de/messages.po index 5bd6efc0..2fb9ddcb 100644 --- a/src/renderer/locales/de/messages.po +++ b/src/renderer/locales/de/messages.po @@ -897,13 +897,12 @@ msgstr "Agenten" msgid "Agents · General" msgstr "Agenten · Allgemein" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "KI" +#~ msgid "AI" +#~ msgstr "KI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "KI-Agenten-Orchestrator – Codierungsagenten über Terminal und natives msgid "AI git actions" msgstr "KI-Git-Aktionen" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "KI-Helfer" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "<0>{0} erkannt" msgid "Detecting agents…" msgstr "Agenten werden erkannt…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Ausstehende Lenkung" msgid "permission" msgstr "Berechtigung" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Persönlich" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Der Anbieter hat keine Token-Nutzung gemeldet." msgid "Provider presets" msgstr "Anbieter-Voreinstellungen" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Anbieternutzung" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Browserseite neu laden" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Remote" @@ -10709,7 +10724,6 @@ msgstr "URL ist erforderlich." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "URL ist erforderlich." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Nutzung" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Arbeiten…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Arbeitsbereich" diff --git a/src/renderer/locales/en/messages.po b/src/renderer/locales/en/messages.po index 3737001f..672ed9a3 100644 --- a/src/renderer/locales/en/messages.po +++ b/src/renderer/locales/en/messages.po @@ -897,13 +897,12 @@ msgstr "Agents" msgid "Agents · General" msgstr "Agents · General" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "AI agent orchestrator — manage coding agents via Terminal and Native A msgid "AI git actions" msgstr "AI git actions" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI Helpers" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Detected <0>{0}" msgid "Detecting agents…" msgstr "Detecting agents…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Pending steer" msgid "permission" msgstr "permission" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Personal" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Provider has not reported token usage." msgid "Provider presets" msgstr "Provider presets" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Provider Usage" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Reload browser page" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Remote" @@ -10709,7 +10724,6 @@ msgstr "URL is required." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "URL is required." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Usage" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Working…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Workspace" diff --git a/src/renderer/locales/es/messages.po b/src/renderer/locales/es/messages.po index bd3b03a7..689d2791 100644 --- a/src/renderer/locales/es/messages.po +++ b/src/renderer/locales/es/messages.po @@ -897,13 +897,12 @@ msgstr "Agentes" msgid "Agents · General" msgstr "Agentes · General" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "IA" +#~ msgid "AI" +#~ msgstr "IA" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Orquestador de agentes de IA: gestiona agentes de programación mediante msgid "AI git actions" msgstr "Acciones de git con IA" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Ayudantes de IA" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Detectado <0>{0}" msgid "Detecting agents…" msgstr "Detectando agentes…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Dirección pendiente" msgid "permission" msgstr "permiso" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Personal" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "El proveedor no ha informado del uso de tokens." msgid "Provider presets" msgstr "Preajustes de proveedor" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Uso de proveedores" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Recargar página del navegador" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Remoto" @@ -10709,7 +10724,6 @@ msgstr "La URL es obligatoria." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "La URL es obligatoria." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Uso" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Trabajando…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Espacio de trabajo" diff --git a/src/renderer/locales/fr/messages.po b/src/renderer/locales/fr/messages.po index 32a64668..a239f3a4 100644 --- a/src/renderer/locales/fr/messages.po +++ b/src/renderer/locales/fr/messages.po @@ -897,13 +897,12 @@ msgstr "Agents" msgid "Agents · General" msgstr "Agents · Général" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "IA" +#~ msgid "AI" +#~ msgstr "IA" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Orchestrateur d'agents IA : gérez les agents de codage via Terminal et msgid "AI git actions" msgstr "Actions git IA" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Assistants IA" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Détecté <0>{0}" msgid "Detecting agents…" msgstr "Détection des agents…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7100,6 +7103,10 @@ msgstr "En attente de direction" msgid "permission" msgstr "autorisation" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Personnel" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7428,6 +7435,13 @@ msgstr "Le fournisseur n'a pas signalé l'utilisation des jetons." msgid "Provider presets" msgstr "Préréglages de fournisseur" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Utilisation des fournisseurs" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7731,6 +7745,7 @@ msgid "Reload browser page" msgstr "Recharger la page du navigateur" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "À distance" @@ -10708,7 +10723,6 @@ msgstr "L’URL est obligatoire." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10716,8 +10730,6 @@ msgstr "L’URL est obligatoire." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Utilisation" @@ -11175,6 +11187,7 @@ msgid "Working…" msgstr "En cours…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Espace de travail" diff --git a/src/renderer/locales/ja/messages.po b/src/renderer/locales/ja/messages.po index adafc66a..bbe71e75 100644 --- a/src/renderer/locales/ja/messages.po +++ b/src/renderer/locales/ja/messages.po @@ -896,13 +896,12 @@ msgstr "エージェント" msgid "Agents · General" msgstr "エージェント · 一般" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -912,6 +911,13 @@ msgstr "AI エージェント オーケストレーター — ターミナルお msgid "AI git actions" msgstr "AIによるgit操作" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI ヘルパー" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3269,9 +3275,6 @@ msgstr "<0>{0} を検出しました" msgid "Detecting agents…" msgstr "エージェントを検出中…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7099,6 +7102,10 @@ msgstr "保留中のステアリング" msgid "permission" msgstr "許可" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "個人" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7427,6 +7434,13 @@ msgstr "プロバイダーはトークンの使用状況を報告していませ msgid "Provider presets" msgstr "プロバイダープリセット" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "プロバイダーの使用量" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7730,6 +7744,7 @@ msgid "Reload browser page" msgstr "ブラウザのページをリロード" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "リモート" @@ -10707,7 +10722,6 @@ msgstr "URLは必須です。" #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10715,8 +10729,6 @@ msgstr "URLは必須です。" #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "使用量" @@ -11174,6 +11186,7 @@ msgid "Working…" msgstr "実行中…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "ワークスペース" diff --git a/src/renderer/locales/ko/messages.po b/src/renderer/locales/ko/messages.po index f66a4620..05e46c75 100644 --- a/src/renderer/locales/ko/messages.po +++ b/src/renderer/locales/ko/messages.po @@ -897,13 +897,12 @@ msgstr "에이전트" msgid "Agents · General" msgstr "에이전트 · 일반" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "AI 에이전트 오케스트레이터 — 터미널 및 기본 ACP를 msgid "AI git actions" msgstr "AI git 작업" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI 도우미" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "<0>{0} 감지됨" msgid "Detecting agents…" msgstr "에이전트 감지 중…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "조정 대기 중" msgid "permission" msgstr "권한" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "개인" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "공급자가 토큰 사용을 보고하지 않았습니다." msgid "Provider presets" msgstr "제공자 프리셋" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "공급자 사용량" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "브라우저 페이지 새로고침" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "원격" @@ -10709,7 +10724,6 @@ msgstr "URL을 입력해야 합니다." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "URL을 입력해야 합니다." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "사용량" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "작업 중…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "작업 영역" diff --git a/src/renderer/locales/pl/messages.po b/src/renderer/locales/pl/messages.po index 71d87134..8a538e15 100644 --- a/src/renderer/locales/pl/messages.po +++ b/src/renderer/locales/pl/messages.po @@ -897,13 +897,12 @@ msgstr "Agenci" msgid "Agents · General" msgstr "Agenci · Ogólne" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Koordynator agentów AI — zarządzaj agentami kodującymi za pośredni msgid "AI git actions" msgstr "Akcje AI w git" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Pomocnicy AI" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Wykryto <0>{0}" msgid "Detecting agents…" msgstr "Wykrywanie agentów…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Oczekujące sterowanie" msgid "permission" msgstr "pozwolenie" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Osobiste" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Dostawca nie zgłosił użycia tokenów." msgid "Provider presets" msgstr "Predefiniowani dostawcy" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Użycie dostawców" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Załaduj ponownie stronę przeglądarki" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Zdalny" @@ -10709,7 +10724,6 @@ msgstr "Adres URL jest wymagany." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "Adres URL jest wymagany." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Użycie" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Pracuję…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Obszar roboczy" diff --git a/src/renderer/locales/pt-BR/messages.po b/src/renderer/locales/pt-BR/messages.po index 8a16c50c..710ca08f 100644 --- a/src/renderer/locales/pt-BR/messages.po +++ b/src/renderer/locales/pt-BR/messages.po @@ -897,13 +897,12 @@ msgstr "Agentes" msgid "Agents · General" msgstr "Agentes · Geral" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "IA" +#~ msgid "AI" +#~ msgstr "IA" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Orquestrador de agentes de IA — gerencie agentes de codificação via msgid "AI git actions" msgstr "Ações de git com IA" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Assistentes de IA" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Detectado <0>{0}" msgid "Detecting agents…" msgstr "Detectando agentes…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Orientação pendente" msgid "permission" msgstr "permissão" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Pessoal" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "O provedor não relatou o uso de token." msgid "Provider presets" msgstr "Predefinições de provedor" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Uso de provedores" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Recarregar página do navegador" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Remoto" @@ -10709,7 +10724,6 @@ msgstr "A URL é obrigatória." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "A URL é obrigatória." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Uso" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Trabalhando…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Espaço de trabalho" diff --git a/src/renderer/locales/ru/messages.po b/src/renderer/locales/ru/messages.po index 2bd6f18d..5da47f13 100644 --- a/src/renderer/locales/ru/messages.po +++ b/src/renderer/locales/ru/messages.po @@ -897,13 +897,12 @@ msgstr "Агенты" msgid "Agents · General" msgstr "Агенты · Общие" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Оркестратор AI-агентов — управление код msgid "AI git actions" msgstr "Действия ИИ в Git" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI-помощники" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Обнаружено <0>{0}" msgid "Detecting agents…" msgstr "Обнаружение агентов…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Ожидающее направление" msgid "permission" msgstr "разрешение" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Личное" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Провайдер не сообщил об использовании msgid "Provider presets" msgstr "Пресеты провайдеров" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Использование провайдеров" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Перезагрузить страницу браузера" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Удалённый" @@ -10709,7 +10724,6 @@ msgstr "URL обязателен." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "URL обязателен." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Использование" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Выполняется…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Рабочая область" diff --git a/src/renderer/locales/tr/messages.po b/src/renderer/locales/tr/messages.po index 8e2bd2b6..4d69392b 100644 --- a/src/renderer/locales/tr/messages.po +++ b/src/renderer/locales/tr/messages.po @@ -897,13 +897,12 @@ msgstr "Temsilciler" msgid "Agents · General" msgstr "Temsilciler · Genel" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "Yapay Zeka" +#~ msgid "AI" +#~ msgstr "Yapay Zeka" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "AI aracı orkestratörü — kodlama aracılarını Terminal ve Yerel AC msgid "AI git actions" msgstr "Yapay zeka git işlemleri" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Yapay Zeka Yardımcıları" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Algılandı <0>{0}" msgid "Detecting agents…" msgstr "Aracılar algılanıyor…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Yönlendirme bekleniyor" msgid "permission" msgstr "izin" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Kişisel" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Sağlayıcı token kullanımını bildirmedi." msgid "Provider presets" msgstr "Sağlayıcı hazır ayarları" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Sağlayıcı kullanımı" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Tarayıcı sayfasını yeniden yükle" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Uzak" @@ -10709,7 +10724,6 @@ msgstr "URL gereklidir." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "URL gereklidir." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Kullanım" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Çalışıyor…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Çalışma alanı" diff --git a/src/renderer/locales/uk/messages.po b/src/renderer/locales/uk/messages.po index ff063177..91ce13fa 100644 --- a/src/renderer/locales/uk/messages.po +++ b/src/renderer/locales/uk/messages.po @@ -897,13 +897,12 @@ msgstr "Агенти" msgid "Agents · General" msgstr "Агенти · Загальні" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Оркестратор AI-агентів — керуйте агента msgid "AI git actions" msgstr "Дії AI у git" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI-помічники" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Виявлено <0>{0}" msgid "Detecting agents…" msgstr "Виявлення агентів…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Очікуване скерування" msgid "permission" msgstr "дозвіл" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Особисте" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Провайдер не повідомив про використанн msgid "Provider presets" msgstr "Пресети провайдерів" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Використання провайдерів" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Перезавантажити сторінку браузера" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Віддалений" @@ -10709,7 +10724,6 @@ msgstr "Потрібно вказати URL." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "Потрібно вказати URL." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Використання" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Виконується…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Робоча область" diff --git a/src/renderer/locales/vi/messages.po b/src/renderer/locales/vi/messages.po index 70b89863..aa34d759 100644 --- a/src/renderer/locales/vi/messages.po +++ b/src/renderer/locales/vi/messages.po @@ -897,13 +897,12 @@ msgstr "Tác nhân" msgid "Agents · General" msgstr "Tác nhân · Chung" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "Trình điều phối tác nhân AI - quản lý các tác nhân mã hó msgid "AI git actions" msgstr "Thao tác git bằng AI" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "Trợ lý AI" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "Đã phát hiện <0>{0}" msgid "Detecting agents…" msgstr "Đang phát hiện tác nhân…" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7101,6 +7104,10 @@ msgstr "Đang chờ chỉ đạo" msgid "permission" msgstr "sự cho phép" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "Cá nhân" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7429,6 +7436,13 @@ msgstr "Nhà cung cấp chưa báo cáo việc sử dụng mã thông báo." msgid "Provider presets" msgstr "Cấu hình nhà cung cấp" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "Mức sử dụng nhà cung cấp" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7732,6 +7746,7 @@ msgid "Reload browser page" msgstr "Tải lại trang trình duyệt" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "Từ xa" @@ -10709,7 +10724,6 @@ msgstr "Bắt buộc phải có URL." #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10717,8 +10731,6 @@ msgstr "Bắt buộc phải có URL." #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "Mức sử dụng" @@ -11176,6 +11188,7 @@ msgid "Working…" msgstr "Đang làm việc…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "Không gian làm việc" diff --git a/src/renderer/locales/zh-CN/messages.po b/src/renderer/locales/zh-CN/messages.po index 24554cb0..73bfe79c 100644 --- a/src/renderer/locales/zh-CN/messages.po +++ b/src/renderer/locales/zh-CN/messages.po @@ -897,13 +897,12 @@ msgstr "智能体" msgid "Agents · General" msgstr "代理·一般" -#. Settings section: AI / assistant configuration #. Settings section: AI / assistant configuration #: src/mobile/settingsSections.ts #: src/renderer/views/SettingsOverlay/parts/AISettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -msgid "AI" -msgstr "AI" +#~ msgid "AI" +#~ msgstr "AI" #: src/renderer/views/SettingsOverlay/parts/AboutSettings.tsx msgid "AI agent orchestrator — manage coding agents via Terminal and Native ACP." @@ -913,6 +912,13 @@ msgstr "AI 代理协调器 — 通过终端和本机 ACP 管理编码代理。" msgid "AI git actions" msgstr "AI git操作" +#. Settings section: AI helper features (commit messages, thread titles, conflict resolution) +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/AISettings.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "AI Helpers" +msgstr "AI 助手" + #: src/renderer/views/ExperimentView/parts/ExperimentJudgeDialog.tsx #: src/renderer/views/ExperimentView/parts/ExperimentJudgeRunDialog.tsx msgid "AI judge" @@ -3270,9 +3276,6 @@ msgstr "检测到 <0>{0}" msgid "Detecting agents…" msgstr "正在检测代理……" -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools -#. Settings section: developer/debug tools #. Settings section: developer/debug tools #: src/renderer/views/SettingsOverlay/parts/DevSettings.tsx #: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx @@ -7100,6 +7103,10 @@ msgstr "等待引导" msgid "permission" msgstr "权限" +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +msgid "Personal" +msgstr "个人" + #: src/renderer/components/providers/pi/manifest.ts msgid "Pi" msgstr "Pi" @@ -7428,6 +7435,13 @@ msgstr "提供商尚未报告令牌使用情况。" msgid "Provider presets" msgstr "服务商预设" +#. Settings section: provider usage and quota dashboard +#: src/mobile/settingsSections.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx +#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +msgid "Provider Usage" +msgstr "提供商用量" + #. plural #: src/renderer/views/SettingsOverlay/parts/SingleAgentSettings/parts/authHelpers.ts msgid "providers" @@ -7731,6 +7745,7 @@ msgid "Reload browser page" msgstr "重新加载浏览器页面" #: src/renderer/components/common/BranchSelector/parts/useBranchList.ts +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Remote" msgstr "远程" @@ -10708,7 +10723,6 @@ msgstr "URL 为必填项。" #: src/mobile/chrome.ts #: src/mobile/NarrowShell.tsx -#: src/mobile/settingsSections.ts #: src/mobile/ThreadUsageIndicator.tsx #: src/mobile/views/DesktopWorkspacePanel.tsx #: src/mobile/WideShell.tsx @@ -10716,8 +10730,6 @@ msgstr "URL 为必填项。" #: src/renderer/components/providers/ProviderUsageRail.tsx #: src/renderer/components/thread/ThreadContextDock.tsx #: src/renderer/views/MainView/parts/ProjectAuxiliaryPanel.tsx -#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx -#: src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx msgid "Usage" msgstr "用量" @@ -11175,6 +11187,7 @@ msgid "Working…" msgstr "工作…" #: src/renderer/components/mcp/McpServersManager.tsx +#: src/renderer/views/SettingsOverlay/parts/SettingsSidebar.tsx msgid "Workspace" msgstr "工作区" diff --git a/src/renderer/views/SettingsOverlay/SettingsOverlay.test.tsx b/src/renderer/views/SettingsOverlay/SettingsOverlay.test.tsx index 31b40f49..f7506c98 100644 --- a/src/renderer/views/SettingsOverlay/SettingsOverlay.test.tsx +++ b/src/renderer/views/SettingsOverlay/SettingsOverlay.test.tsx @@ -17,6 +17,10 @@ const appState = { projects: [] as Project[], }; +const bridgeState = { + remote: false, +}; + vi.mock("@/renderer/state/agentStatusesStore", () => { const useAgentStatusesStore = ( selector: (state: { @@ -88,7 +92,7 @@ vi.mock("@/renderer/views/MainView/parts/AppShell/AppShell", () => ({ vi.mock("@/renderer/bridge", () => ({ isDevApp: () => false, - isRemoteSession: () => false, + isRemoteSession: () => bridgeState.remote, isWindows: () => false, readBridge: () => ({ refreshAgentStatuses: refreshAgentStatusesMock, @@ -133,7 +137,7 @@ vi.mock("./parts/NotificationSettings", () => ({ })); vi.mock("./parts/AISettings", () => ({ - AISettings: () =>
AI
, + AISettings: () =>
AI Helpers
, })); vi.mock("./parts/AcpRegistrySettings", () => ({ @@ -153,7 +157,7 @@ vi.mock("./parts/ShortcutsSettings", () => ({ })); vi.mock("./parts/UsageSettings", () => ({ - UsageSettings: () =>
Usage
, + UsageSettings: () =>
Provider Usage
, })); vi.mock("./parts/ArchivedThreadsSettings", () => ({ @@ -205,12 +209,37 @@ describe("SettingsOverlay", () => { statusesState.agentStatuses = []; statusesState.wslAgentStatuses = []; appState.projects = []; + bridgeState.remote = false; beginFirstLaunchDiscoveryMock.mockReset(); resetDiscoveredAgentsMock.mockReset(); refreshAgentStatusesMock.mockReset(); refreshAgentStatusesMock.mockResolvedValue(undefined); }); + it("groups sidebar sections under labeled headers", () => { + const { container } = render( undefined} />); + + const headers = [...container.querySelectorAll("aside p")].map((el) => el.textContent); + expect(headers).toEqual(["Personal", "Workspace", "Agents", "Remote", "About"]); + + const labels = screen.getAllByRole("button").map((button) => button.textContent); + expect(labels.indexOf("Notifications")).toBeLessThan(labels.indexOf("Terminal")); + expect(labels.indexOf("Archived Threads")).toBeLessThan(labels.indexOf("Agents")); + expect(labels.indexOf("Provider Usage")).toBeGreaterThan(labels.indexOf("MCP Servers")); + expect(labels.indexOf("Changelog")).toBeGreaterThan(labels.indexOf("Remote Environments")); + }); + + it("hides groups whose sections are all desktop-only on remote sessions", () => { + bridgeState.remote = true; + const { container } = render( undefined} />); + + const headers = [...container.querySelectorAll("aside p")].map((el) => el.textContent); + expect(headers).toEqual(["Personal", "Workspace", "Agents", "About"]); + expect(screen.getByRole("button", { name: "Models" })).toBeInTheDocument(); + expect(screen.queryByRole("button", { name: "Remote Access" })).not.toBeInTheDocument(); + expect(screen.queryByRole("button", { name: "Browser" })).not.toBeInTheDocument(); + }); + it("keeps WSL-only installed agents reachable from the sidebar", () => { statusesState.wslAgentStatuses = [ makeStatus("gemini", { @@ -330,13 +359,13 @@ describe("SettingsOverlay", () => { expect(firstScroller).not.toBeNull(); firstScroller!.scrollTop = 240; - fireEvent.click(screen.getByRole("button", { name: "Usage" })); + fireEvent.click(screen.getByRole("button", { name: "Provider Usage" })); const nextScroller = container.querySelector("[data-settings-scroll-area]"); expect(nextScroller).not.toBeNull(); expect(nextScroller).not.toBe(firstScroller); expect(nextScroller!.scrollTop).toBe(0); - expect(within(screen.getByRole("main")).getByText("Usage")).toBeInTheDocument(); + expect(within(screen.getByRole("main")).getByText("Provider Usage")).toBeInTheDocument(); }); it("marks agents that need attention in the sidebar", () => { diff --git a/src/renderer/views/SettingsOverlay/parts/AISettings.tsx b/src/renderer/views/SettingsOverlay/parts/AISettings.tsx index 3ae9f6ba..46181680 100644 --- a/src/renderer/views/SettingsOverlay/parts/AISettings.tsx +++ b/src/renderer/views/SettingsOverlay/parts/AISettings.tsx @@ -357,7 +357,7 @@ export function AISettings() { return ( !remoteSession || !DESKTOP_ONLY_SECTIONS.has(id); - const sectionsBeforeAgents: { id: SettingsSection; icon: ReactNode; label: string }[] = [ - { id: "profile", icon: , label: t`Profile` }, - { id: "general", icon: , label: t`General` }, - { id: "audio", icon: , label: t`Audio` }, - { id: "appearance", icon: , label: t`Appearance` }, - { id: "terminal", icon: , label: t`Terminal` }, - { id: "threads", icon: , label: t`Threads` }, - { id: "git", icon: , label: t`Git` }, - { id: "worktrees", icon: , label: t`Worktrees` }, - { id: "notifications", icon: , label: t`Notifications` }, + // Grouped section model — single source of truth for sidebar order in both + // the expanded list (with group headers) and the collapsed icon rail. The + // "agents" group is special: its first row is the expandable agents tree + // (the "Models" stand-in on remote), followed by its plain sections. + const sectionGroups: { id: string; label: string; sections: SectionMeta[] }[] = [ { - id: "ai", - icon: , - label: t({ message: "AI", comment: "Settings section: AI / assistant configuration" }), + id: "personal", + label: t`Personal`, + sections: [ + { id: "profile", icon: , label: t`Profile` }, + { id: "general", icon: , label: t`General` }, + { id: "appearance", icon: , label: t`Appearance` }, + { id: "audio", icon: , label: t`Audio` }, + { id: "notifications", icon: , label: t`Notifications` }, + { id: "shortcuts", icon: , label: t`Shortcuts` }, + ], + }, + { + id: "workspace", + label: t`Workspace`, + sections: [ + { id: "terminal", icon: , label: t`Terminal` }, + { id: "threads", icon: , label: t`Threads` }, + { id: "git", icon: , label: t`Git` }, + { id: "worktrees", icon: , label: t`Worktrees` }, + { id: "search", icon: , label: t`Search` }, + { id: "browser", icon: , label: t`Browser` }, + { id: "archived", icon: , label: t`Archived Threads` }, + ], + }, + { + id: "agents", + label: t`Agents`, + sections: [ + { + id: "ai", + icon: , + label: t({ + message: "AI Helpers", + comment: + "Settings section: AI helper features (commit messages, thread titles, conflict resolution)", + }), + }, + { id: "skills", icon: , label: t`Skills` }, + { id: "mcpServers", icon: , label: t`MCP Servers` }, + { + id: "usage", + icon: , + label: t({ + message: "Provider Usage", + comment: "Settings section: provider usage and quota dashboard", + }), + }, + ], + }, + { + id: "remote", + label: t`Remote`, + sections: [ + { id: "remoteAccess", icon: , label: t`Remote Access` }, + { id: "remoteServers", icon: , label: t`Remote Environments` }, + ], + }, + { + id: "about", + label: t`About`, + sections: [ + { id: "changelog", icon: , label: t`Changelog` }, + { id: "about", icon: , label: t`About` }, + ...(devMode + ? [ + { + id: "dev" as SettingsSection, + icon: , + label: t({ message: "Dev", comment: "Settings section: developer/debug tools" }), + }, + ] + : []), + ], }, - { id: "search", icon: , label: t`Search` }, - { id: "shortcuts", icon: , label: t`Shortcuts` }, - { id: "remoteAccess", icon: , label: t`Remote Access` }, - { id: "remoteServers", icon: , label: t`Remote Environments` }, - ]; - const sectionsAfterAgents: { id: SettingsSection; icon: ReactNode; label: string }[] = [ - { id: "skills", icon: , label: t`Skills` }, - { id: "mcpServers", icon: , label: t`MCP Servers` }, - { id: "browser", icon: , label: t`Browser` }, - { id: "usage", icon: , label: t`Usage` }, - { id: "archived", icon: , label: t`Archived Threads` }, - { id: "changelog", icon: , label: t`Changelog` }, - { id: "about", icon: , label: t`About` }, ]; + // Desktop-only sections drop out of their group on remote sessions; a group + // whose rows are all hidden renders nothing at all, header included. + const visibleGroups = sectionGroups + .map((group) => ({ + ...group, + hasTree: group.id === "agents", + sections: group.sections.filter((section) => isSectionVisible(section.id)), + })) + .filter((group) => group.hasTree || group.sections.length > 0); + // When the filter has a query, the section list is replaced by a flat results // list that also surfaces individual settings (see ./settingsSearchIndex). Each - // section's label hit and its setting hits are grouped together, in section - // order, with the section icon/label reused as the result "eyebrow". + // section's label hit and its setting hits are grouped together, in sidebar + // group order, with the section icon/label reused as the result "eyebrow". const query = sectionFilter.trim(); - const sectionMetaList: { id: SettingsSection; icon: ReactNode; label: string }[] = [ - ...sectionsBeforeAgents, - { id: "agents", icon: , label: t`Agents` }, - { id: "agentsGeneral", icon: , label: t`Agents · General` }, - ...sectionsAfterAgents, - ...(devMode + const sectionMetaList: SectionMeta[] = sectionGroups.flatMap((group) => + group.id === "agents" ? [ + { id: "agents" as SettingsSection, icon: , label: t`Agents` }, { - id: "dev" as SettingsSection, - icon: , - label: t({ message: "Dev", comment: "Settings section: developer/debug tools" }), + id: "agentsGeneral" as SettingsSection, + icon: , + label: t`Agents · General`, }, + ...group.sections, ] - : []), - ]; + : group.sections, + ); const settingMatches = query === "" ? [] : searchSettings(query, t, { devMode, remoteSession }); const matchesBySection = new Map(); for (const match of settingMatches) { @@ -291,267 +353,121 @@ export function SettingsSidebar(props: { {isCollapsed && (
- } - label={t`Profile`} - isActive={activeSection === "profile"} - onPress={() => onSectionChange("profile")} - /> - } - label={t`General`} - isActive={activeSection === "general"} - onPress={() => onSectionChange("general")} - /> - } - label={t`Audio`} - isActive={activeSection === "audio"} - onPress={() => onSectionChange("audio")} - /> - } - label={t`Appearance`} - isActive={activeSection === "appearance"} - onPress={() => onSectionChange("appearance")} - /> - } - label={t`Terminal`} - isActive={activeSection === "terminal"} - onPress={() => onSectionChange("terminal")} - /> - } - label={t`Threads`} - isActive={activeSection === "threads"} - onPress={() => onSectionChange("threads")} - /> - } - label={t`Git`} - isActive={activeSection === "git"} - onPress={() => onSectionChange("git")} - /> - } - label={t`Worktrees`} - isActive={activeSection === "worktrees"} - onPress={() => onSectionChange("worktrees")} - /> - } - label={t`Notifications`} - isActive={activeSection === "notifications"} - onPress={() => onSectionChange("notifications")} - /> - } - label={t({ - message: "AI", - comment: "Settings section: AI / assistant configuration", - })} - isActive={activeSection === "ai"} - onPress={() => onSectionChange("ai")} - /> - {!remoteSession && ( - } - label={t`Skills`} - isActive={activeSection === "skills"} - onPress={() => onSectionChange("skills")} - /> - )} - {!remoteSession && ( - } - label={t`Search`} - isActive={activeSection === "search"} - onPress={() => onSectionChange("search")} - /> - )} - {!remoteSession && ( - } - label={t`Shortcuts`} - isActive={activeSection === "shortcuts"} - onPress={() => onSectionChange("shortcuts")} - /> - )} - {!remoteSession && ( - } - label={t`Remote Access`} - isActive={activeSection === "remoteAccess"} - onPress={() => onSectionChange("remoteAccess")} - /> - )} - {remoteSession ? ( - } - label={t`Models`} - isActive={activeSection === "agentsGeneral"} - onPress={() => onSectionChange("agentsGeneral")} - /> - ) : ( - } - label={t`Agents`} - isActive={isAgentsActive} - onPress={openAgents} - /> - )} - {!remoteSession && isAgentsActive && ( - : - } - label={t`Refresh detected agents`} - isDisabled={isRefreshingAgents} - onPress={onRefreshAgents} - /> - )} - {!remoteSession && isAgentsActive && ( - } - label={t`Agents · General`} - isActive={activeSection === "agentsGeneral"} - onPress={() => onSectionChange("agentsGeneral")} - /> - )} - {!remoteSession && isAgentsActive && ( - } - label={t`Agent Registry`} - isActive={activeSection === "acpRegistry"} - onPress={() => onSectionChange("acpRegistry")} - /> - )} - {!remoteSession && - isAgentsActive && - primaryAgents.map((agent) => { - const needsAttention = attentionAgentKinds.has(agent.kind); - return ( -
+ {visibleGroups.map((group, groupIndex) => ( +
0 ? "space-y-0.5 pt-2" : "space-y-0.5"}> + {group.hasTree && + (remoteSession ? ( - {renderAgentIcon(agent, { - disabled: disabledAgents.includes(agent.kind), - })} - {needsAttention ? ( - - ) : null} - - } - label={agent.label} - isActive={activeSection === `agents:${agent.kind}`} - onPress={() => onSectionChange(`agents:${agent.kind}`)} + icon={} + label={t`Models`} + isActive={activeSection === "agentsGeneral"} + onPress={() => onSectionChange("agentsGeneral")} /> - {instanceAgentsFor(agent.kind).map((profile) => { - const profileNeedsAttention = attentionAgentKinds.has(profile.kind); - return ( + ) : ( + <> + } + label={t`Agents`} + isActive={isAgentsActive} + onPress={openAgents} + /> + {isAgentsActive && ( - {renderAgentIcon(profile, { - disabled: disabledAgents.includes(profile.kind), - className: "size-3.5", - })} - {profileNeedsAttention ? ( - - ) : null} - + isRefreshingAgents ? ( + + ) : ( + + ) } - label={profile.label} - isActive={activeSection === `agents:${profile.kind}`} - onPress={() => onSectionChange(`agents:${profile.kind}`)} + label={t`Refresh detected agents`} + isDisabled={isRefreshingAgents} + onPress={onRefreshAgents} /> - ); - })} -
- ); - })} - {!remoteSession && ( - } - label={t`MCP Servers`} - isActive={activeSection === "mcpServers"} - onPress={() => onSectionChange("mcpServers")} - /> - )} - } - label={t`Browser`} - isActive={activeSection === "browser"} - onPress={() => onSectionChange("browser")} - /> - } - label={t`Usage`} - isActive={activeSection === "usage"} - onPress={() => onSectionChange("usage")} - /> - {!remoteSession && ( - } - label={t`Archived Threads`} - isActive={activeSection === "archived"} - onPress={() => onSectionChange("archived")} - /> - )} - } - label={t`Changelog`} - isActive={activeSection === "changelog"} - onPress={() => onSectionChange("changelog")} - /> - {!remoteSession && ( - } - label={t`About`} - isActive={activeSection === "about"} - onPress={() => onSectionChange("about")} - /> - )} - {devMode && ( - } - label={t({ message: "Dev", comment: "Settings section: developer/debug tools" })} - isActive={activeSection === "dev"} - onPress={() => onSectionChange("dev")} - /> - )} + )} + {isAgentsActive && ( + } + label={t`Agents · General`} + isActive={activeSection === "agentsGeneral"} + onPress={() => onSectionChange("agentsGeneral")} + /> + )} + {isAgentsActive && ( + } + label={t`Agent Registry`} + isActive={activeSection === "acpRegistry"} + onPress={() => onSectionChange("acpRegistry")} + /> + )} + {isAgentsActive && + primaryAgents.map((agent) => { + const needsAttention = attentionAgentKinds.has(agent.kind); + return ( +
+ + {renderAgentIcon(agent, { + disabled: disabledAgents.includes(agent.kind), + })} + {needsAttention ? ( + + ) : null} + + } + label={agent.label} + isActive={activeSection === `agents:${agent.kind}`} + onPress={() => onSectionChange(`agents:${agent.kind}`)} + /> + {instanceAgentsFor(agent.kind).map((profile) => { + const profileNeedsAttention = attentionAgentKinds.has(profile.kind); + return ( + + {renderAgentIcon(profile, { + disabled: disabledAgents.includes(profile.kind), + className: "size-3.5", + })} + {profileNeedsAttention ? ( + + ) : null} + + } + label={profile.label} + isActive={activeSection === `agents:${profile.kind}`} + onPress={() => onSectionChange(`agents:${profile.kind}`)} + /> + ); + })} +
+ ); + })} + + ))} + {group.sections.map((section) => ( + onSectionChange(section.id)} + /> + ))} +
+ ))}
) : (
- {sectionsBeforeAgents - .filter((section) => isSectionVisible(section.id) && matchesFilter(section.label)) - .map((section) => ( - onSectionChange(section.id)} - /> - ))} - {remoteSession && matchesFilter(t`Models`) && ( - } - label={t`Models`} - isActive={activeSection === "agentsGeneral"} - onPress={() => onSectionChange("agentsGeneral")} - /> - )} - {!remoteSession && matchesFilter(t`Agents`) && ( - <> - } - label={t`Agents`} - isActive={activeSection === "agents"} - onPress={openAgents} - suffix={ - - } - /> - {isAgentsActive && ( -
+ {visibleGroups.map((group, groupIndex) => ( +
0 ? "space-y-0.5 pt-3" : "space-y-0.5"}> +

+ {group.label} +

+ {group.hasTree && + (remoteSession ? ( } - label={t`General`} + icon={} + label={t`Models`} isActive={activeSection === "agentsGeneral"} onPress={() => onSectionChange("agentsGeneral")} /> - } - label={t`Agent Registry`} - isActive={activeSection === "acpRegistry"} - onPress={() => onSectionChange("acpRegistry")} - /> - {primaryAgents.map((agent) => { - const agentDisabled = disabledAgents.includes(agent.kind); - const needsAttention = attentionAgentKinds.has(agent.kind); - return ( -
+ ) : ( + <> + } + label={t`Agents`} + isActive={activeSection === "agents"} + onPress={openAgents} + suffix={ + + } + /> + {isAgentsActive && ( +
- ); - })} -
- )} - - )} - {sectionsAfterAgents - .filter((section) => isSectionVisible(section.id) && matchesFilter(section.label)) - .map((section) => ( - onSectionChange(section.id)} - /> - ))} - {devMode && - matchesFilter( - t({ message: "Dev", comment: "Settings section: developer/debug tools" }), - ) && ( - } - label={t({ - message: "Dev", - comment: "Settings section: developer/debug tools", - })} - isActive={activeSection === "dev"} - onPress={() => onSectionChange("dev")} - /> - )} + )} + + ))} + {group.sections.map((section) => ( + onSectionChange(section.id)} + /> + ))} +
+ ))}
)}
diff --git a/src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx b/src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx index 7a0d95fe..59b3bb6f 100644 --- a/src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx +++ b/src/renderer/views/SettingsOverlay/parts/UsageSettings.tsx @@ -304,7 +304,7 @@ export function UsageSettings() { return (