Restore apply_diff tool, correctly hidden behind Diff Enabled Advanced setting (default off) #4102
+37
−89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
In #3915, the apply_diff tool was summarily removed from most models, except when using models that contain the word 'claude'. This negatively impacts the success of tooling calling in other models/providers that implement it better (m2 on synthetic, codex-* on openai, etc), replacing it with an less effective (but simpler search and replace), and also prevents to use of the tool when using proxies like LiteLLM (where models might be renamed to not include the 'claude' term.
Unforuntately, this also removed signficant user choice with little to no clear evals or testing, reducing the usefulness of Kilo Code.
This PR restores
apply_diff, controlled by the diffEnabled apiConfiguration in Advanced options, allowing users to opt in to diff based editing should they chose to do so.Implementation
Get in Touch
mcowger