Browse Source

fix(preset): address greptile review findings

- Add async/await to factory sync test callback
- Guard empty-preset check on agentUpdates not allUpdates,
  so empty presets show correct message even when previous
  preset has agents to reset
ReqX 3 months ago
parent
commit
01218b036f
2 changed files with 4 additions and 3 deletions
  1. 2 2
      src/tools/preset-manager.test.ts
  2. 2 1
      src/tools/preset-manager.ts

+ 2 - 2
src/tools/preset-manager.test.ts

@@ -731,7 +731,7 @@ describe('createPresetManager', () => {
       setActiveRuntimePreset(null);
     });
 
-    test('activePreset syncs from runtime-preset state on factory creation', () => {
+    test('activePreset syncs from runtime-preset state on factory creation', async () => {
       // Set runtime preset before creating manager
       setActiveRuntimePreset('cheap');
 
@@ -752,7 +752,7 @@ describe('createPresetManager', () => {
 
       // List presets should show cheap as active
       const output = createOutput();
-      manager.handleCommandExecuteBefore(
+      await manager.handleCommandExecuteBefore(
         { command: 'preset', sessionID: 's1', arguments: '' },
         output,
       );

+ 2 - 1
src/tools/preset-manager.ts

@@ -166,8 +166,9 @@ export function createPresetManager(ctx: PluginInput, config: PluginConfig) {
       }
     }
 
+    const hasAgentUpdates = Object.keys(agentUpdates).length > 0;
     const allUpdates = { ...resetUpdates, ...agentUpdates };
-    if (Object.keys(allUpdates).length === 0) {
+    if (!hasAgentUpdates) {
       output.parts.push(
         createInternalAgentTextPart(
           `Preset "${presetName}" is empty (no agent overrides defined).`,