fix(hooks): deduplicate WebSearch hooks when saving via Dashboard

Add deduplicateCcsHooks() call to PUT /api/settings/:profile endpoint.
This prevents WebSearch hooks from accumulating when users save settings
via the Dashboard UI.

Fixes #450
This commit is contained in:
kaitranntt
2026-02-04 11:36:31 -05:00
parent e653be06b1
commit 57d4b04c68
+5
View File
@@ -18,6 +18,7 @@ import {
resetAuthToDefaults,
} from '../../cliproxy';
import { regenerateConfig } from '../../cliproxy/config-generator';
import { deduplicateCcsHooks } from '../../utils/websearch/hook-utils';
import type { Settings } from '../../types/config';
const router = Router();
@@ -136,6 +137,10 @@ router.put('/:profile', (req: Request, res: Response): void => {
return;
}
// Deduplicate CCS hooks to prevent accumulation (fixes #450)
// This handles cases where duplicate hooks were added by previous versions
deduplicateCcsHooks(settings as Record<string, unknown>);
const ccsDir = getCcsDir();
// Check for missing required fields (warning, not blocking - runtime fills defaults)