diff --git a/tools/ui/src/lib/constants/settings.constants.ts b/tools/ui/src/lib/constants/settings.constants.ts index f6596bfb6..9d01f3ad0 100644 --- a/tools/ui/src/lib/constants/settings.constants.ts +++ b/tools/ui/src/lib/constants/settings.constants.ts @@ -1,3 +1,4 @@ +import { DEFAULT_AGENTIC_CONFIG } from './agentic.constants'; import { CLI_FLAGS } from './cli-flags.constants'; import { DEFAULT_MCP_CONFIG } from './mcp.constants'; import { SETTINGS_KEYS } from './settings-keys.constants'; @@ -351,7 +352,7 @@ export const SETTINGS_REGISTRY: SettingsSectionEntry[] = [ icon: ListRestart, settings: [ { - defaultValue: 10, + defaultValue: DEFAULT_AGENTIC_CONFIG.maxTurns, help: 'Maximum number of tool execution cycles before stopping (prevents infinite loops).', isPositiveInteger: true, key: SETTINGS_KEYS.AGENTIC_MAX_TURNS, diff --git a/tools/ui/tests/unit/agentic-max-turns-default.test.ts b/tools/ui/tests/unit/agentic-max-turns-default.test.ts new file mode 100644 index 000000000..91475231b --- /dev/null +++ b/tools/ui/tests/unit/agentic-max-turns-default.test.ts @@ -0,0 +1,18 @@ +import { DEFAULT_AGENTIC_CONFIG, SETTINGS_KEYS } from '$lib/constants'; +import { describe, expect, it } from 'vitest'; + +/** + * The registry `defaultValue` is the effective default: the store seeds its + * config from SETTING_CONFIG_DEFAULT, so the loop's + * `Number(setting) || DEFAULT_AGENTIC_CONFIG.maxTurns` fallback never fires. + * Once these disagreed (10 vs 100) and the loop silently stopped early. + */ +describe('AGENTIC_MAX_TURNS default value', () => { + it('sources the settings default from DEFAULT_AGENTIC_CONFIG.maxTurns', async () => { + const { SETTING_CONFIG_DEFAULT } = await import('$lib/constants'); + + expect(SETTING_CONFIG_DEFAULT[SETTINGS_KEYS.AGENTIC_MAX_TURNS]).toBe( + DEFAULT_AGENTIC_CONFIG.maxTurns + ); + }, 15000); +});