diff --git a/.gemini/settings.json b/.gemini/settings.json index 38707a8a494..c4deb2c10f0 100644 --- a/.gemini/settings.json +++ b/.gemini/settings.json @@ -1,8 +1,5 @@ { "experimental": { - "toolOutputMasking": { - "enabled": true - }, "plan": true }, "general": { diff --git a/docs/cli/settings.md b/docs/cli/settings.md index 07e8c986c6d..6661e7d8081 100644 --- a/docs/cli/settings.md +++ b/docs/cli/settings.md @@ -118,10 +118,11 @@ they appear in the UI. ### Experimental -| UI Label | Setting | Description | Default | -| ---------------- | ---------------------------- | ----------------------------------------------------------------------------------- | ------- | -| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` | -| Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` | +| UI Label | Setting | Description | Default | +| -------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------- | ------- | +| Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` | +| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` | +| Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` | ### Skills diff --git a/docs/get-started/configuration.md b/docs/get-started/configuration.md index 33016840c75..8ecedcfdb71 100644 --- a/docs/get-started/configuration.md +++ b/docs/get-started/configuration.md @@ -848,6 +848,28 @@ their corresponding top-level category object in your `settings.json` file. #### `experimental` +- **`experimental.toolOutputMasking.enabled`** (boolean): + - **Description:** Enables tool output masking to save tokens. + - **Default:** `true` + - **Requires restart:** Yes + +- **`experimental.toolOutputMasking.toolProtectionThreshold`** (number): + - **Description:** Minimum number of tokens to protect from masking (most + recent tool outputs). + - **Default:** `50000` + - **Requires restart:** Yes + +- **`experimental.toolOutputMasking.minPrunableTokensThreshold`** (number): + - **Description:** Minimum prunable tokens required to trigger a masking pass. + - **Default:** `30000` + - **Requires restart:** Yes + +- **`experimental.toolOutputMasking.protectLatestTurn`** (boolean): + - **Description:** Ensures the absolute latest turn is never masked, + regardless of token count. + - **Default:** `true` + - **Requires restart:** Yes + - **`experimental.enableAgents`** (boolean): - **Description:** Enable local and remote subagents. Warning: Experimental feature, uses YOLO mode for subagents diff --git a/packages/cli/src/config/settingsSchema.ts b/packages/cli/src/config/settingsSchema.ts index 1948960ac34..72f7c7ad6f1 100644 --- a/packages/cli/src/config/settingsSchema.ts +++ b/packages/cli/src/config/settingsSchema.ts @@ -1461,7 +1461,7 @@ const SETTINGS_SCHEMA = { label: 'Tool Output Masking', category: 'Experimental', requiresRestart: true, - ignoreInDocs: true, + ignoreInDocs: false, default: {}, description: 'Advanced settings for tool output masking to manage context window efficiency.', @@ -1472,9 +1472,9 @@ const SETTINGS_SCHEMA = { label: 'Enable Tool Output Masking', category: 'Experimental', requiresRestart: true, - default: false, + default: true, description: 'Enables tool output masking to save tokens.', - showInDialog: false, + showInDialog: true, }, toolProtectionThreshold: { type: 'number', diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 45a3a953b5c..1570339010f 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -758,7 +758,7 @@ export class Config { this.modelAvailabilityService = new ModelAvailabilityService(); this.experimentalJitContext = params.experimentalJitContext ?? false; this.toolOutputMasking = { - enabled: params.toolOutputMasking?.enabled ?? false, + enabled: params.toolOutputMasking?.enabled ?? true, toolProtectionThreshold: params.toolOutputMasking?.toolProtectionThreshold ?? DEFAULT_TOOL_PROTECTION_THRESHOLD, diff --git a/schemas/settings.schema.json b/schemas/settings.schema.json index 8434b618676..0ca5e46fdde 100644 --- a/schemas/settings.schema.json +++ b/schemas/settings.schema.json @@ -1432,8 +1432,8 @@ "enabled": { "title": "Enable Tool Output Masking", "description": "Enables tool output masking to save tokens.", - "markdownDescription": "Enables tool output masking to save tokens.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `false`", - "default": false, + "markdownDescription": "Enables tool output masking to save tokens.\n\n- Category: `Experimental`\n- Requires restart: `yes`\n- Default: `true`", + "default": true, "type": "boolean" }, "toolProtectionThreshold": {