From 68c388588f44074f441bd09a8753ecfab1cfbff4 Mon Sep 17 00:00:00 2001 From: Shivangi Sharma Date: Sun, 22 Feb 2026 14:37:28 +0530 Subject: [PATCH] fix(core): add uniqueness guard to edit tool This adds a check in `calculateExactReplacement` to prevent multiple occurrences from being incorrectly replaced if they exceed 'expectedReplacements'. Fixes #18917 --- packages/core/src/tools/edit.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/core/src/tools/edit.ts b/packages/core/src/tools/edit.ts index d758e032295..445fcbb577a 100644 --- a/packages/core/src/tools/edit.ts +++ b/packages/core/src/tools/edit.ts @@ -137,6 +137,17 @@ async function calculateExactReplacement( const normalizedReplace = new_string.replace(/\r\n/g, '\n'); const exactOccurrences = normalizedCode.split(normalizedSearch).length - 1; + const expectedReplacements = params.expected_replacements ?? 1; + + if (exactOccurrences > expectedReplacements) { + return { + newContent: currentContent, + occurrences: exactOccurrences, + finalOldString: normalizedSearch, + finalNewString: normalizedReplace, + }; + } + if (exactOccurrences > 0) { let modifiedCode = safeLiteralReplace( normalizedCode,