From b528d378dbebf32526faff4e0023987cdf66bb03 Mon Sep 17 00:00:00 2001 From: IronRookieCoder Date: Thu, 14 May 2026 17:41:13 +0800 Subject: [PATCH] feat(config): add showMemoryPid setting to toggle footer memory/PID display MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 实现要点 新增全局配置项 showMemoryPid,允许用户通过 /config 面板关闭底部状态栏的内存值和 PID 显示(默认开启,行为不变)。 ## 变更要点 - src/utils/config.ts:新增 showMemoryPid?: boolean 类型声明 + GLOBAL_CONFIG_KEYS 注册 - src/components/PromptInput/PromptInputFooterLeftSide.tsx:新增 isMemoryPidEnabled() 函数,RSS/PID 渲染受配置控制 - src/components/Settings/Config.tsx:/config UI 面板注册配置项,含 logEvent 埋点 - packages/builtin-tools/src/tools/ConfigTool/supportedSettings.ts:SUPPORTED_SETTINGS 注册 --- .../src/tools/ConfigTool/supportedSettings.ts | 5 +++++ .../PromptInput/PromptInputFooterLeftSide.tsx | 8 +++++-- src/components/Settings/Config.tsx | 22 +++++++++++++++++++ src/utils/config.ts | 4 ++++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/packages/builtin-tools/src/tools/ConfigTool/supportedSettings.ts b/packages/builtin-tools/src/tools/ConfigTool/supportedSettings.ts index 683cfe4d6..53ff849c7 100644 --- a/packages/builtin-tools/src/tools/ConfigTool/supportedSettings.ts +++ b/packages/builtin-tools/src/tools/ConfigTool/supportedSettings.ts @@ -131,6 +131,11 @@ export const SUPPORTED_SETTINGS: Record = { 'How to spawn teammates: "tmux" for traditional tmux, "in-process" for same process, "auto" to choose automatically', options: TEAMMATE_MODES, }, + showMemoryPid: { + source: 'global', + type: 'boolean', + description: 'Show memory usage and PID in the footer status bar', + }, ...(process.env.USER_TYPE === 'ant' ? { classifierPermissionsEnabled: { diff --git a/src/components/PromptInput/PromptInputFooterLeftSide.tsx b/src/components/PromptInput/PromptInputFooterLeftSide.tsx index 0f9fa266d..dc175ec64 100644 --- a/src/components/PromptInput/PromptInputFooterLeftSide.tsx +++ b/src/components/PromptInput/PromptInputFooterLeftSide.tsx @@ -365,8 +365,8 @@ function ModeIndicator({ ...(shouldShowPrStatus ? [] : []), - // RSS memory indicator — always visible - ...(rssState + // RSS memory indicator — configurable via showMemoryPid + ...(isMemoryPidEnabled() && rssState ? [ { + if (current.showMemoryPid === enabled) return current; + return { + ...current, + showMemoryPid: enabled, + }; + }); + setGlobalConfig({ + ...getGlobalConfig(), + showMemoryPid: enabled, + }); + logEvent('tengu_show_memory_pid_setting_changed', { + enabled, + }); + }, + }, { id: 'model', label: 'Model', diff --git a/src/utils/config.ts b/src/utils/config.ts index 7e5425ad5..f7631e3cc 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -544,6 +544,9 @@ export type GlobalConfig = { // PR status footer configuration (feature-flagged via GrowthBook) prStatusFooterEnabled?: boolean // Show PR review status in footer (default: true) + // RSS memory + PID footer display + showMemoryPid?: boolean // Show memory usage and PID in footer (default: true) + // Tmux live panel visibility (ant-only, toggled via Enter on tmux pill) tungstenPanelVisible?: boolean @@ -673,6 +676,7 @@ export const GLOBAL_CONFIG_KEYS = [ 'copyOnSelect', 'permissionExplainerEnabled', 'prStatusFooterEnabled', + 'showMemoryPid', 'remoteControlAtStartup', 'remoteDialogSeen', ] as const