diff --git a/README.md b/README.md index f916877e2..77c9407ae 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,7 @@ | Computer Use / Chrome Use | 截图、键鼠控制、浏览器操控 | [Computer Use](https://ccb.agent-aura.top/docs/features/computer-use)
[Chrome Use](https://ccb.agent-aura.top/docs/features/claude-in-chrome-mcp) | | Sentry / GrowthBook 企业监控 | 企业级错误追踪与特性开关 | [Sentry](https://ccb.agent-aura.top/docs/internals/sentry-setup)
[GrowthBook](https://ccb.agent-aura.top/docs/internals/growthbook-adapter) | | Langfuse 监控 | LLM 调用/工具执行/多 Agent 全链路追踪 | [文档](https://ccb.agent-aura.top/docs/features/langfuse-monitoring) | +| Poor Mode | 穷鬼模式,关闭记忆提取和键入建议 | /poor 可以开关 | - 🔮 [ ] V6 — 大规模重构石山代码,全面模块分包(全新分支,main 封存为历史版本) diff --git a/src/commands/poor/poorMode.ts b/src/commands/poor/poorMode.ts index 533d9700f..84f4ab857 100644 --- a/src/commands/poor/poorMode.ts +++ b/src/commands/poor/poorMode.ts @@ -1,14 +1,24 @@ /** * Poor mode state — when active, skips extract_memories and prompt_suggestion * to reduce token consumption. + * + * Persisted to settings.json so it survives session restarts. */ -let poorModeActive = false +import { getInitialSettings, updateSettingsForSource } from '../../utils/settings/settings.js' + +let poorModeActive: boolean | null = null export function isPoorModeActive(): boolean { + if (poorModeActive === null) { + poorModeActive = getInitialSettings().poorMode === true + } return poorModeActive } export function setPoorMode(active: boolean): void { poorModeActive = active + updateSettingsForSource('userSettings', { + poorMode: active || undefined, + }) } diff --git a/src/components/Settings/Config.tsx b/src/components/Settings/Config.tsx index 0d0f36098..3461b556d 100644 --- a/src/components/Settings/Config.tsx +++ b/src/components/Settings/Config.tsx @@ -470,6 +470,27 @@ export function Config({ }, ] : []), + ...(feature('POOR') + ? [ + { + id: 'poorMode', + label: 'Poor mode (save tokens)', + value: (() => { + const PoorMode = require('../../commands/poor/poorMode.js') as typeof import('../../commands/poor/poorMode.js') + return PoorMode.isPoorModeActive() + })(), + type: 'boolean' as const, + onChange(enabled: boolean) { + const PoorMode = require('../../commands/poor/poorMode.js') as typeof import('../../commands/poor/poorMode.js') + PoorMode.setPoorMode(enabled) + setAppState(prev => ({ + ...prev, + promptSuggestionEnabled: !enabled, + })) + }, + }, + ] + : []), // Speculation toggle (ant-only) ...(process.env.USER_TYPE === 'ant' ? [ diff --git a/src/utils/settings/types.ts b/src/utils/settings/types.ts index edeecb190..127880c1a 100644 --- a/src/utils/settings/types.ts +++ b/src/utils/settings/types.ts @@ -739,6 +739,12 @@ export const SettingsSchema = lazySchema(() => 'When false, prompt suggestions are disabled. When absent or true, ' + 'prompt suggestions are enabled.', ), + poorMode: z + .boolean() + .optional() + .describe( + 'When true, poor mode is active — extract_memories and prompt_suggestion are disabled to save tokens.', + ), showClearContextOnPlanAccept: z .boolean() .optional()