From 4f5cb7d1e421a593cc54d9d1d0aab34870c12a35 Mon Sep 17 00:00:00 2001 From: Re-bin Date: Sat, 21 Feb 2026 06:39:04 +0000 Subject: [PATCH] style(filesystem): simplify best-match loop --- nanobot/agent/tools/filesystem.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/nanobot/agent/tools/filesystem.py b/nanobot/agent/tools/filesystem.py index e6c407e..9c169e4 100644 --- a/nanobot/agent/tools/filesystem.py +++ b/nanobot/agent/tools/filesystem.py @@ -172,30 +172,21 @@ class EditFileTool(Tool): """Build a helpful error when old_text is not found.""" lines = content.splitlines(keepends=True) old_lines = old_text.splitlines(keepends=True) - - best_ratio = 0.0 - best_start = 0 window = len(old_lines) + best_ratio, best_start = 0.0, 0 for i in range(max(1, len(lines) - window + 1)): - chunk = lines[i : i + window] - ratio = difflib.SequenceMatcher(None, old_lines, chunk).ratio() + ratio = difflib.SequenceMatcher(None, old_lines, lines[i : i + window]).ratio() if ratio > best_ratio: - best_ratio = ratio - best_start = i + best_ratio, best_start = ratio, i if best_ratio > 0.5: - best_chunk = lines[best_start : best_start + window] - diff = difflib.unified_diff( - old_lines, best_chunk, + diff = "\n".join(difflib.unified_diff( + old_lines, lines[best_start : best_start + window], fromfile="old_text (provided)", tofile=f"{path} (actual, line {best_start + 1})", lineterm="", - ) - diff_str = "\n".join(diff) - return ( - f"Error: old_text not found in {path}.\n" - f"Best match ({best_ratio:.0%} similar) at line {best_start + 1}:\n{diff_str}" - ) + )) + return f"Error: old_text not found in {path}.\nBest match ({best_ratio:.0%} similar) at line {best_start + 1}:\n{diff}" return f"Error: old_text not found in {path}. No similar text found. Verify the file content."