From 7f248914b1279af57fbebb922005492597f75b8e Mon Sep 17 00:00:00 2001 From: Ammar Date: Mon, 13 Oct 2025 10:41:44 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Disable=20file=5Fedit=5Freplace?= =?UTF-8?q?=5Flines=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This tool frequently causes models (particularly GPT-5-Codex) to leave the repository in a broken state. Models struggle with line-based edits when files are modified concurrently or when they miscalculate line numbers. Changes: - Commented out tool creation in getToolsForModel() baseTools - Commented out tool name in getAvailableTools() list - Commented out import (no longer used) Tool definition and implementation remain intact for backwards compatibility with old history messages. Models should use file_edit_replace_string or file_edit_insert instead. --- src/utils/tools/toolDefinitions.ts | 2 +- src/utils/tools/tools.ts | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/utils/tools/toolDefinitions.ts b/src/utils/tools/toolDefinitions.ts index 9e6eecfe2..efcd725e3 100644 --- a/src/utils/tools/toolDefinitions.ts +++ b/src/utils/tools/toolDefinitions.ts @@ -186,7 +186,7 @@ export function getAvailableTools(modelString: string): string[] { "bash", "file_read", "file_edit_replace_string", - "file_edit_replace_lines", + // "file_edit_replace_lines", // DISABLED: causes models to break repo state "file_edit_insert", "propose_plan", "compact_summary", diff --git a/src/utils/tools/tools.ts b/src/utils/tools/tools.ts index b290bdb5c..a3494aa69 100644 --- a/src/utils/tools/tools.ts +++ b/src/utils/tools/tools.ts @@ -5,7 +5,7 @@ import { google } from "@ai-sdk/google"; import { createFileReadTool } from "@/services/tools/file_read"; import { createBashTool } from "@/services/tools/bash"; import { createFileEditReplaceStringTool } from "@/services/tools/file_edit_replace_string"; -import { createFileEditReplaceLinesTool } from "@/services/tools/file_edit_replace_lines"; +// DISABLED: import { createFileEditReplaceLinesTool } from "@/services/tools/file_edit_replace_lines"; import { createFileEditInsertTool } from "@/services/tools/file_edit_insert"; import { createProposePlanTool } from "@/services/tools/propose_plan"; import { createCompactSummaryTool } from "@/services/tools/compact_summary"; @@ -45,7 +45,10 @@ export function getToolsForModel( // Use snake_case for tool names to match what seems to be the convention. file_read: createFileReadTool(config), file_edit_replace_string: createFileEditReplaceStringTool(config), - file_edit_replace_lines: createFileEditReplaceLinesTool(config), + // DISABLED: file_edit_replace_lines - causes models (particularly GPT-5-Codex) + // to leave repository in broken state due to issues with concurrent file modifications + // and line number miscalculations. Use file_edit_replace_string or file_edit_insert instead. + // file_edit_replace_lines: createFileEditReplaceLinesTool(config), file_edit_insert: createFileEditInsertTool(config), bash: createBashTool(config), propose_plan: createProposePlanTool(config),