Commit 2f2561b
committed
edit_file: whitespace-tolerant fallback so small-model edits land (root fix)
The whole V3/Lens/ASA stack runs only AFTER a successful edit
(improveContentWithV3 fires post-edit), but small models can't reproduce
old_str byte-for-byte — indentation width, tabs vs spaces, trailing
spaces drift every time — so edit_file fails, the model loops on
re-reads/re-runs, and the smart machinery is never reached (observed:
10 reads / 9 run_commands / 1 failed edit / 0 successful edits in one
session). GH #39 names this 'literal-match brittleness on whitespace
mismatches'.
findFuzzyLineMatch runs ONLY when exact + quote-normalized + entity-
decoded matching all miss: it compares old_str to the file line-by-line
with each line whitespace-stripped and accepts ONLY a unique match,
returning the file's exact span (original indentation preserved) so the
existing uniqueness/replace logic is unchanged. Ambiguous or content-
different old_str still fails (verified) — it can't edit a guessed
location. Exact-matching models never reach this path, so it can't
regress them. This makes edits land → the downstream stack becomes
reachable. Kept the first-miss ast_edit steer as the backstop for the
residual cases fuzzy can't safely rescue.1 parent 001b9af commit 2f2561b
2 files changed
Lines changed: 97 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
895 | 895 | | |
896 | 896 | | |
897 | 897 | | |
898 | | - | |
899 | | - | |
900 | | - | |
901 | | - | |
902 | | - | |
903 | | - | |
904 | | - | |
905 | | - | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
906 | 912 | | |
907 | 913 | | |
908 | 914 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
963 | 963 | | |
964 | 964 | | |
965 | 965 | | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
966 | 983 | | |
967 | 984 | | |
968 | 985 | | |
| |||
1455 | 1472 | | |
1456 | 1473 | | |
1457 | 1474 | | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
1458 | 1541 | | |
1459 | 1542 | | |
1460 | 1543 | | |
| |||
0 commit comments