From 306e697be3d818904eb97063ce2c1c3173111b6f Mon Sep 17 00:00:00 2001 From: Nicolas Date: Wed, 13 Aug 2025 21:44:39 -0400 Subject: [PATCH] Update crawl.ts --- apps/api/src/controllers/v2/crawl.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/api/src/controllers/v2/crawl.ts b/apps/api/src/controllers/v2/crawl.ts index 52215fe46..9e68a5099 100644 --- a/apps/api/src/controllers/v2/crawl.ts +++ b/apps/api/src/controllers/v2/crawl.ts @@ -86,10 +86,18 @@ export async function crawlController( } } - const finalCrawlerOptions = { - ...promptGeneratedOptions, - ...crawlerOptions, - }; + // Merge behavior: + // - Start with parsed crawlerOptions (which contains schema defaults) + // - Overlay promptGeneratedOptions ONLY for fields the user did not explicitly provide + // in the original request (preNormalizedBody) or provided as null/undefined. + // This prevents empty defaults like [] from overwriting meaningful prompt-generated values. + const finalCrawlerOptions: any = { ...crawlerOptions }; + for (const [key, value] of Object.entries(promptGeneratedOptions)) { + const userProvided = Object.prototype.hasOwnProperty.call(preNormalizedBody, key); + if (!userProvided || preNormalizedBody[key] === undefined || preNormalizedBody[key] === null) { + finalCrawlerOptions[key] = value; + } + } if (Array.isArray(finalCrawlerOptions.includePaths)) { for (const x of finalCrawlerOptions.includePaths) {