diff --git a/packages/core/src/tools/diffOptions.test.ts b/packages/core/src/tools/diffOptions.test.ts index cf6fe89b23..3df300181c 100644 --- a/packages/core/src/tools/diffOptions.test.ts +++ b/packages/core/src/tools/diffOptions.test.ts @@ -162,4 +162,21 @@ describe('getDiffStat', () => { user_removed_chars: 0, }); }); + it('should correctly report whitespace-only changes', () => { + const fileName = 'test.py'; + const oldStr = 'def hello():\n print("world")'; + const aiStr = 'def hello():\n print("world")'; + const userStr = aiStr; + const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr); + expect(diffStat).toEqual({ + model_added_lines: 1, + model_removed_lines: 1, + model_added_chars: 18, + model_removed_chars: 15, + user_added_lines: 0, + user_removed_lines: 0, + user_added_chars: 0, + user_removed_chars: 0, + }); + }); }); diff --git a/packages/core/src/tools/diffOptions.ts b/packages/core/src/tools/diffOptions.ts index ad0738ba04..9bd6eab793 100644 --- a/packages/core/src/tools/diffOptions.ts +++ b/packages/core/src/tools/diffOptions.ts @@ -9,7 +9,7 @@ import type { DiffStat } from './tools.js'; export const DEFAULT_DIFF_OPTIONS: Diff.PatchOptions = { context: 3, - ignoreWhitespace: true, + ignoreWhitespace: false, }; export function getDiffStat( diff --git a/packages/core/src/tools/modifiable-tool.test.ts b/packages/core/src/tools/modifiable-tool.test.ts index 3cecccf554..4f34b20b57 100644 --- a/packages/core/src/tools/modifiable-tool.test.ts +++ b/packages/core/src/tools/modifiable-tool.test.ts @@ -136,7 +136,7 @@ describe('modifyWithEditor', () => { 'Proposed', expect.objectContaining({ context: 3, - ignoreWhitespace: true, + ignoreWhitespace: false, }), ); @@ -205,7 +205,7 @@ describe('modifyWithEditor', () => { 'Proposed', expect.objectContaining({ context: 3, - ignoreWhitespace: true, + ignoreWhitespace: false, }), ); @@ -233,7 +233,7 @@ describe('modifyWithEditor', () => { 'Proposed', expect.objectContaining({ context: 3, - ignoreWhitespace: true, + ignoreWhitespace: false, }), );