mirror of
https://github.com/google-gemini/gemini-cli
synced 2026-04-21 13:37:17 +00:00
feat(core): enable topic update narration by default and promote to general (#25586)
Co-authored-by: JAYADITYA <96861162+JayadityaGit@users.noreply.github.com> Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
This commit is contained in:
parent
f7b2632939
commit
b2f775921d
8 changed files with 48 additions and 27 deletions
|
|
@ -2,8 +2,7 @@
|
||||||
"experimental": {
|
"experimental": {
|
||||||
"extensionReloading": true,
|
"extensionReloading": true,
|
||||||
"modelSteering": true,
|
"modelSteering": true,
|
||||||
"memoryManager": true,
|
"memoryManager": true
|
||||||
"topicUpdateNarration": true
|
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"devtools": true
|
"devtools": true
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ they appear in the UI.
|
||||||
| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
|
| Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
|
||||||
| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `true` |
|
| Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `true` |
|
||||||
| Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `"30d"` |
|
| Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `"30d"` |
|
||||||
|
| Topic & Update Narration | `general.topicUpdateNarration` | Enable the Topic & Update communication model for reduced chattiness and structured progress reporting. | `true` |
|
||||||
|
|
||||||
### Output
|
### Output
|
||||||
|
|
||||||
|
|
@ -160,17 +161,16 @@ they appear in the UI.
|
||||||
|
|
||||||
### Experimental
|
### Experimental
|
||||||
|
|
||||||
| UI Label | Setting | Description | Default |
|
| UI Label | Setting | Description | Default |
|
||||||
| ---------------------------------------------------- | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
| ---------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
|
||||||
| Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
|
| Enable Git Worktrees | `experimental.worktrees` | Enable automated Git worktree management for parallel work. | `false` |
|
||||||
| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
| Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
||||||
| Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
| Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
|
||||||
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
|
| Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
|
||||||
| Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
|
| Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
|
||||||
| Memory Manager Agent | `experimental.memoryManager` | Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories. | `false` |
|
| Memory Manager Agent | `experimental.memoryManager` | Replace the built-in save_memory tool with a memory manager subagent that supports adding, removing, de-duplicating, and organizing memories. | `false` |
|
||||||
| Use the generalist profile to manage agent contexts. | `experimental.generalistProfile` | Suitable for general coding and software development tasks. | `false` |
|
| Use the generalist profile to manage agent contexts. | `experimental.generalistProfile` | Suitable for general coding and software development tasks. | `false` |
|
||||||
| Enable Context Management | `experimental.contextManagement` | Enable logic for context management. | `false` |
|
| Enable Context Management | `experimental.contextManagement` | Enable logic for context management. | `false` |
|
||||||
| Topic & Update Narration | `experimental.topicUpdateNarration` | Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting. | `false` |
|
|
||||||
|
|
||||||
### Skills
|
### Skills
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -198,6 +198,11 @@ their corresponding top-level category object in your `settings.json` file.
|
||||||
- **Description:** Minimum retention period (safety limit, defaults to "1d")
|
- **Description:** Minimum retention period (safety limit, defaults to "1d")
|
||||||
- **Default:** `"1d"`
|
- **Default:** `"1d"`
|
||||||
|
|
||||||
|
- **`general.topicUpdateNarration`** (boolean):
|
||||||
|
- **Description:** Enable the Topic & Update communication model for reduced
|
||||||
|
chattiness and structured progress reporting.
|
||||||
|
- **Default:** `true`
|
||||||
|
|
||||||
#### `output`
|
#### `output`
|
||||||
|
|
||||||
- **`output.format`** (enum):
|
- **`output.format`** (enum):
|
||||||
|
|
@ -1735,8 +1740,7 @@ their corresponding top-level category object in your `settings.json` file.
|
||||||
- **Requires restart:** Yes
|
- **Requires restart:** Yes
|
||||||
|
|
||||||
- **`experimental.topicUpdateNarration`** (boolean):
|
- **`experimental.topicUpdateNarration`** (boolean):
|
||||||
- **Description:** Enable the experimental Topic & Update communication model
|
- **Description:** Deprecated: Use general.topicUpdateNarration instead.
|
||||||
for reduced chattiness and structured progress reporting.
|
|
||||||
- **Default:** `false`
|
- **Default:** `false`
|
||||||
|
|
||||||
#### `skills`
|
#### `skills`
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ describe('update_topic_behavior', () => {
|
||||||
2,
|
2,
|
||||||
),
|
),
|
||||||
'.gemini/settings.json': JSON.stringify({
|
'.gemini/settings.json': JSON.stringify({
|
||||||
experimental: {
|
general: {
|
||||||
topicUpdateNarration: true,
|
topicUpdateNarration: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
@ -127,7 +127,7 @@ describe('update_topic_behavior', () => {
|
||||||
'Explain the difference between Map and Object in JavaScript and provide a performance-focused code snippet for each.',
|
'Explain the difference between Map and Object in JavaScript and provide a performance-focused code snippet for each.',
|
||||||
files: {
|
files: {
|
||||||
'.gemini/settings.json': JSON.stringify({
|
'.gemini/settings.json': JSON.stringify({
|
||||||
experimental: {
|
general: {
|
||||||
topicUpdateNarration: true,
|
topicUpdateNarration: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
@ -156,7 +156,7 @@ describe('update_topic_behavior', () => {
|
||||||
'packages/core/src/tools/tool-names.ts':
|
'packages/core/src/tools/tool-names.ts':
|
||||||
"export const UPDATE_TOPIC_TOOL_NAME = 'update_topic';",
|
"export const UPDATE_TOPIC_TOOL_NAME = 'update_topic';",
|
||||||
'.gemini/settings.json': JSON.stringify({
|
'.gemini/settings.json': JSON.stringify({
|
||||||
experimental: {
|
general: {
|
||||||
topicUpdateNarration: true,
|
topicUpdateNarration: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
@ -204,7 +204,7 @@ app.post('/users', (req, res) => {
|
||||||
export default app;
|
export default app;
|
||||||
`,
|
`,
|
||||||
'.gemini/settings.json': JSON.stringify({
|
'.gemini/settings.json': JSON.stringify({
|
||||||
experimental: {
|
general: {
|
||||||
topicUpdateNarration: true,
|
topicUpdateNarration: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
@ -249,7 +249,7 @@ export default app;
|
||||||
files: {
|
files: {
|
||||||
'package.json': JSON.stringify({ name: 'test-project' }),
|
'package.json': JSON.stringify({ name: 'test-project' }),
|
||||||
'.gemini/settings.json': JSON.stringify({
|
'.gemini/settings.json': JSON.stringify({
|
||||||
experimental: {
|
general: {
|
||||||
topicUpdateNarration: true,
|
topicUpdateNarration: true,
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
|
|
@ -992,7 +992,9 @@ export async function loadCliConfig(
|
||||||
experimentalMemoryManager: settings.experimental?.memoryManager,
|
experimentalMemoryManager: settings.experimental?.memoryManager,
|
||||||
contextManagement,
|
contextManagement,
|
||||||
modelSteering: settings.experimental?.modelSteering,
|
modelSteering: settings.experimental?.modelSteering,
|
||||||
topicUpdateNarration: settings.experimental?.topicUpdateNarration,
|
topicUpdateNarration:
|
||||||
|
settings.general?.topicUpdateNarration ??
|
||||||
|
settings.experimental?.topicUpdateNarration,
|
||||||
noBrowser: !!process.env['NO_BROWSER'],
|
noBrowser: !!process.env['NO_BROWSER'],
|
||||||
summarizeToolOutput: settings.model?.summarizeToolOutput,
|
summarizeToolOutput: settings.model?.summarizeToolOutput,
|
||||||
ideMode,
|
ideMode,
|
||||||
|
|
|
||||||
|
|
@ -418,6 +418,16 @@ const SETTINGS_SCHEMA = {
|
||||||
},
|
},
|
||||||
description: 'Settings for automatic session cleanup.',
|
description: 'Settings for automatic session cleanup.',
|
||||||
},
|
},
|
||||||
|
topicUpdateNarration: {
|
||||||
|
type: 'boolean',
|
||||||
|
label: 'Topic & Update Narration',
|
||||||
|
category: 'General',
|
||||||
|
requiresRestart: false,
|
||||||
|
default: true,
|
||||||
|
description:
|
||||||
|
'Enable the Topic & Update communication model for reduced chattiness and structured progress reporting.',
|
||||||
|
showInDialog: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
|
|
@ -2228,9 +2238,8 @@ const SETTINGS_SCHEMA = {
|
||||||
category: 'Experimental',
|
category: 'Experimental',
|
||||||
requiresRestart: false,
|
requiresRestart: false,
|
||||||
default: false,
|
default: false,
|
||||||
description:
|
description: 'Deprecated: Use general.topicUpdateNarration instead.',
|
||||||
'Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting.',
|
showInDialog: false,
|
||||||
showInDialog: true,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1196,7 +1196,7 @@ export class Config implements McpContext, AgentLoopContext {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
this.topicUpdateNarration = params.topicUpdateNarration ?? false;
|
this.topicUpdateNarration = params.topicUpdateNarration ?? true;
|
||||||
this.modelSteering = params.modelSteering ?? false;
|
this.modelSteering = params.modelSteering ?? false;
|
||||||
this.injectionService = new InjectionService(() =>
|
this.injectionService = new InjectionService(() =>
|
||||||
this.isModelSteeringEnabled(),
|
this.isModelSteeringEnabled(),
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
},
|
||||||
|
"topicUpdateNarration": {
|
||||||
|
"title": "Topic & Update Narration",
|
||||||
|
"description": "Enable the Topic & Update communication model for reduced chattiness and structured progress reporting.",
|
||||||
|
"markdownDescription": "Enable the Topic & Update communication model for reduced chattiness and structured progress reporting.\n\n- Category: `General`\n- Requires restart: `no`\n- Default: `true`",
|
||||||
|
"default": true,
|
||||||
|
"type": "boolean"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
|
@ -2963,8 +2970,8 @@
|
||||||
},
|
},
|
||||||
"topicUpdateNarration": {
|
"topicUpdateNarration": {
|
||||||
"title": "Topic & Update Narration",
|
"title": "Topic & Update Narration",
|
||||||
"description": "Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting.",
|
"description": "Deprecated: Use general.topicUpdateNarration instead.",
|
||||||
"markdownDescription": "Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting.\n\n- Category: `Experimental`\n- Requires restart: `no`\n- Default: `false`",
|
"markdownDescription": "Deprecated: Use general.topicUpdateNarration instead.\n\n- Category: `Experimental`\n- Requires restart: `no`\n- Default: `false`",
|
||||||
"default": false,
|
"default": false,
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue