feat: implement Watcher subagent for periodic progress monitoring

This commit is contained in:
Aishanee Shah
2026-04-07 15:04:57 +00:00
parent 6b6ea56437
commit f87447e2b4
16 changed files with 752 additions and 6 deletions
+2
View File
@@ -990,6 +990,8 @@ export async function loadCliConfig(
disabledSkills: settings.skills?.disabled,
experimentalJitContext: settings.experimental?.jitContext,
experimentalMemoryManager: settings.experimental?.memoryManager,
experimentalWatcher: settings.experimental?.watcher,
experimentalWatcherInterval: settings.experimental?.watcherInterval,
contextManagement,
modelSteering: settings.experimental?.modelSteering,
topicUpdateNarration: settings.experimental?.topicUpdateNarration,
+20
View File
@@ -2217,6 +2217,26 @@ const SETTINGS_SCHEMA = {
'Enable the experimental Topic & Update communication model for reduced chattiness and structured progress reporting.',
showInDialog: true,
},
watcher: {
type: 'boolean',
label: 'Watcher Subagent',
category: 'Experimental',
requiresRestart: true,
default: false,
description:
'Enable the specialized Watcher subagent for periodic progress monitoring and strategic feedback.',
showInDialog: true,
},
watcherInterval: {
type: 'number',
label: 'Watcher Interval',
category: 'Experimental',
requiresRestart: true,
default: 20,
description:
'The number of turns between each Watcher subagent progress review.',
showInDialog: true,
},
},
},
extensions: {
@@ -21,6 +21,12 @@ exports[`ToolResultDisplay > renders file diff result 1`] = `
"
`;
exports[`ToolResultDisplay > renders file diff result 2`] = `
"
No changes detected.
"
`;
exports[`ToolResultDisplay > renders nothing for todos result 1`] = `""`;
exports[`ToolResultDisplay > renders string result as markdown by default 1`] = `