From 8df4d89d412f40129c2f765c0c2508dc517bf16a Mon Sep 17 00:00:00 2001 From: wsp Date: Fri, 18 Sep 2026 17:12:37 +0800 Subject: [PATCH] refactor(config): Remove inactive terminal position setting Remove the terminal panel position control because current workbench routing no longer honors it. Simplify settings descriptions to cover only the remaining default shell option. Keep the persisted configuration and bottom terminal implementation, and document the inactive preference on the backend config field. --- .../contracts/config-contracts/src/types.rs | 3 +- .../components/ApplicationSettingsPages.tsx | 53 +------------------ src/web-ui/src/locales/en-US/settings.json | 2 +- .../locales/en-US/settings/application.json | 2 +- src/web-ui/src/locales/zh-CN/settings.json | 2 +- .../locales/zh-CN/settings/application.json | 2 +- src/web-ui/src/locales/zh-TW/settings.json | 2 +- .../locales/zh-TW/settings/application.json | 2 +- 8 files changed, 9 insertions(+), 59 deletions(-) diff --git a/src/crates/contracts/config-contracts/src/types.rs b/src/crates/contracts/config-contracts/src/types.rs index b89b888794..be90d16878 100644 --- a/src/crates/contracts/config-contracts/src/types.rs +++ b/src/crates/contracts/config-contracts/src/types.rs @@ -659,7 +659,8 @@ pub struct MinimapConfig { pub struct TerminalConfig { /// Empty string means "auto-detect". pub default_shell: String, - /// Terminal panel placement in the session layout: "right" or "bottom". + /// Persisted for compatibility; the current terminal routing no longer honors this + /// setting after the workbench UI restructuring. Values remain "right" or "bottom". pub terminal_panel_position: String, pub font_size: u32, pub font_family: String, diff --git a/src/web-ui/src/infrastructure/config/components/ApplicationSettingsPages.tsx b/src/web-ui/src/infrastructure/config/components/ApplicationSettingsPages.tsx index 0ad844143c..15b7e12602 100644 --- a/src/web-ui/src/infrastructure/config/components/ApplicationSettingsPages.tsx +++ b/src/web-ui/src/infrastructure/config/components/ApplicationSettingsPages.tsx @@ -6,11 +6,7 @@ import { ConfigLoadingState, ConfigMessage, ConfigRetryState } from '@/infrastru import { configAPI, workspaceAPI } from '@/infrastructure/api'; import { systemAPI } from '@/infrastructure/api/service-api/SystemAPI'; import type { CloseBehavior } from '@/infrastructure/api/service-api/SystemAPI'; -import { - getTerminalService, - refreshTerminalPanelPosition, - setTerminalPanelPosition, -} from '@/tools/terminal/services'; +import { getTerminalService } from '@/tools/terminal/services'; import type { ShellInfo } from '@/tools/terminal/types/session'; import { ConfigPageContent, @@ -25,7 +21,6 @@ import type { BackendLogLevel, RuntimeLoggingInfo, TerminalConfig as TerminalSettings, - TerminalPanelPosition, } from '../types'; import './ApplicationSettingsPages.scss'; @@ -598,7 +593,6 @@ function LoggingSection() { function TerminalSection() { const { t } = useTranslation('settings/application'); const [defaultShell, setDefaultShell] = useState(''); - const [terminalPanelPosition, setTerminalPanelPositionState] = useState('right'); const [availableShells, setAvailableShells] = useState([]); const [loading, setLoading] = useState(true); const [loadFailed, setLoadFailed] = useState(false); @@ -621,8 +615,6 @@ function TerminalSection() { ]); setDefaultShell(terminalConfig?.default_shell || ''); - setTerminalPanelPositionState(terminalConfig?.terminal_panel_position === 'bottom' ? 'bottom' : 'right'); - void refreshTerminalPanelPosition(); const availableOnly = shells.filter((s) => s.available); setAvailableShells(availableOnly); @@ -661,28 +653,6 @@ function TerminalSection() { [defaultShell, showMessage, t] ); - const handleTerminalPanelPositionChange = useCallback( - async (value: TerminalPanelPosition) => { - const previous = terminalPanelPosition; - try { - setSaving(true); - setTerminalPanelPositionState(value); - - await setTerminalPanelPosition(value); - configManager.clearCache(); - - showMessage('success', t('terminal.messages.panelPositionUpdated')); - } catch (error) { - setTerminalPanelPositionState(previous); - log.error('Failed to save terminal panel position', { value, error }); - showMessage('error', t('terminal.messages.saveFailed')); - } finally { - setSaving(false); - } - }, - [showMessage, t, terminalPanelPosition], - ); - const shellOptions = useMemo( () => [ { value: AUTO_DETECT_SHELL_VALUE, label: t('terminal.controls.autoDetect') }, @@ -704,13 +674,6 @@ function TerminalSection() { ); const selectedShellValue = selectedShell?.path ?? (defaultShell || AUTO_DETECT_SHELL_VALUE); - const terminalPanelPositionOptions = useMemo( - () => [ - { value: 'right', label: t('terminal.panelPosition.options.right') }, - { value: 'bottom', label: t('terminal.panelPosition.options.bottom') }, - ], - [t], - ); const shouldShowCmdFallbackNotice = selectedShell?.shellType === 'Cmd' || defaultShell === 'Cmd'; if (loading) { @@ -762,20 +725,6 @@ function TerminalSection() { )} - -