Commit graph

48 commits

Author SHA1 Message Date
roomote[bot]
93930643c6
feat: Add experimental setting to prevent editor focus disruption (#6214)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-28 23:14:53 -04:00
Hannes Rudolph
0323256006
feat: Add settings to control diagnostic messages (#5524) (#5582)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-23 14:49:41 -04:00
roomote[bot]
b6bded9818
feat: add configurable delay for Go diagnostics to prevent premature error reporting (#5863)
* feat: add configurable delay for Go diagnostics to prevent premature error reporting

- Add diagnosticsDelayMs setting (default: 2000ms) to allow linters time to process
- Add diagnosticsEnabled setting to optionally disable diagnostic checking entirely
- Update DiffViewProvider.saveChanges() to use configurable delay before checking diagnostics
- Update all tool files (writeToFile, searchAndReplace, insertContent, applyDiff, multiApplyDiff) to pass diagnostic settings
- Add comprehensive tests for new diagnostic functionality
- Fixes issue where Go diagnostics errors were submitted to LLM before linter could clean up unused imports

Resolves #5859

* fix: add missing TypeScript type definitions for diagnostic settings

- Add diagnosticsDelayMs and diagnosticsEnabled to globalSettingsSchema
- Include properties in ExtensionState Pick type
- Add default values to EVALS_SETTINGS
- Fix VSCode mock to include DiagnosticSeverity for tests
- Resolves compilation errors in ClineProvider and webviewMessageHandler

* fix: update test mocks to support diagnostic settings in tool tests

- Add providerRef mock to insertContentTool and writeToFileTool tests
- Update mocks to include diagnosticsEnabled and diagnosticsDelayMs settings
- Fix test expectations to match new implementation with diagnostic configuration
- Resolves failing unit tests for insertContentTool.spec.ts and writeToFileTool.spec.ts

* fix: remove package-lock.json file (project uses pnpm)

* refactor: use existing writeDelayMs instead of diagnosticsDelayMs

- Remove diagnosticsDelayMs setting in favor of existing writeDelayMs
- Add min(0) validation for writeDelayMs in global settings schema
- Add error handling around delay function calls in DiffViewProvider
- Create DEFAULT_WRITE_DELAY_MS constant (1000ms) to replace repeated defaults
- Update all tool files to pass writeDelayMs instead of diagnosticsDelayMs
- Remove diagnosticsDelayMs from webview message handlers and types
- Update test files to use writeDelayMs instead of diagnosticsDelayMs

This refactoring consolidates diagnostic delay functionality to use the
existing writeDelayMs setting as requested in PR feedback.

* fix: resolve failing unit tests and TypeScript compilation errors

- Fix DiffViewProvider test to expect correct default delay (1000ms instead of 2000ms)
- Fix TypeScript type errors in ClineProvider test mock state object
- Correct terminalPowershellCounter and terminalZdotdir types to boolean
- Fix pinnedApiConfigs type from array to Record<string, boolean>

* fix: remove unrelated changes from ClineProvider.spec.ts

- Removed extensive unrelated property additions to mock state
- Kept only diagnosticsEnabled property which is related to Go diagnostics delay feature
- Removed unused DEFAULT_WRITE_DELAY_MS import
- Restored original structure and organization of mock state object

This addresses the feedback to remove unrelated changes while preserving
the necessary diagnostic functionality for the Go diagnostics delay feature.

* refactor: move DEFAULT_WRITE_DELAY_MS to packages/types/src/global-settings.ts

- Move DEFAULT_WRITE_DELAY_MS constant from src/shared/constants.ts to packages/types/src/global-settings.ts
- Update all import statements in affected files to use @roo-code/types
- Delete src/shared/constants.ts file as it is no longer needed
- Files updated:
  - src/integrations/editor/DiffViewProvider.ts
  - src/core/webview/ClineProvider.ts
  - src/core/tools/multiApplyDiffTool.ts
  - src/core/tools/applyDiffTool.ts
  - src/core/tools/searchAndReplaceTool.ts
  - src/core/tools/insertContentTool.ts
  - src/core/tools/writeToFileTool.ts

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-18 16:12:00 -04:00
Hannes Rudolph
ede228e152
fix: prevent chatbox focus loss during automated file editing (#4574) (#5349)
* fix: prevent chatbox focus loss during automated file editing (#4574)

- Add preserveFocus: true to DiffViewProvider openDiffEditor method
- Implement comprehensive focus preservation during cursor positioning and scrolling
- Make scrollToFirstDiff async with focus restoration capabilities
- Update all tool files to use async scrollToFirstDiff
- Add comprehensive unit and E2E tests for focus preservation

Fixes #4574

* refactor: extract focus restoration logic and improve consistency

- Created restoreEditorFocus() helper method to eliminate code duplication
- Changed preserveFocus from false to true for consistent behavior
- Added error handling with silent logging for focus restoration failures
- Added null checks for undefined activeTextEditor cases

* Delete apps/vscode-e2e/src/suite/tools/focus-preservation.test.ts

It doesn't seem to be testing anything

* refactor: remove focus restoration logic to simplify diff editor interactions

* refactor: remove unnecessary await from scrollToFirstDiff calls

---------

Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-03 20:43:06 -04:00
Thomas Brugman
245c8f3269
Fix: Allow write_to_file to handle newline-only and empty content (#3550)
* Fix: Allow write_to_file to handle newline-only and empty content

* fix: update writeToFileTool to return early without error on missing or empty parameters

* fix: preserve newlines in content parameters and update error handling in writeToFileTool tests

* fix: update parseAssistantMessage and parseAssistantMessageV2 to preserve newlines in content parameters while stripping leading and trailing newlines

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:43:49 -04:00
Daniel
8eb147346d
fix: resolve diff editor issues with markdown preview associations (#4946) (#4980)
* fix: resolve diff editor issues with markdown preview associations (#4946)

- Pre-open files as text documents before executing diff command to avoid preview mode
- Update closeAllDiffViews to identify diff tabs by label pattern
- Add comprehensive tests for the new behavior

This ensures that files with custom editor associations (like markdown preview)
can be properly edited using Roo Code's diff editor tools.

* refactor: extract diff view label separator as shared constant

- Add DIFF_VIEW_LABEL_SEPARATOR constant to prevent breaking logic if string changes
- Update all usages in DiffViewProvider.ts and test file
- Addresses PR review feedback for better maintainability

* refactor: improve diff view label constant to include full text

- Rename DIFF_VIEW_LABEL_SEPARATOR to DIFF_VIEW_LABEL_CHANGES
- Include full 'Original ↔ Roo's Changes' text in constant for better maintainability
- Update all usages in DiffViewProvider.ts and test file
- Addresses feedback to make constant changes less awkward
2025-06-22 17:44:53 -04:00
Chris Estreich
62c3914034
Farewell jest (#4607)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-06-16 21:39:45 -07:00
Daniel
ec9b27d587
Resolve diff editor race condition in multi-monitor setups (#4578)
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Mnehmos <Mnehmos@gmail.com>
2025-06-13 16:54:14 -04:00
Matt Rubens
0f00982a2b
Revert "Revert "fix: prevent dump of an entire file into the context on user edit "" (#4219)
Revert "Revert "fix: prevent dump of an entire file into the context on user …"

This reverts commit 98f5542021.
2025-06-01 22:05:20 -04:00
Matt Rubens
98f5542021
Revert "fix: prevent dump of an entire file into the context on user edit " (#4211)
Revert "fix: prevent dump of an entire file into the context on user edit  (#…"

This reverts commit 5e50c5543b.
2025-06-01 16:51:32 -04:00
KJ7LNW
5e50c5543b
fix: prevent dump of an entire file into the context on user edit (#3654)
* refactor: Add pushToolWriteResult method to DiffViewProvider

Previously, each tool file contained duplicate code for formatting file write
responses and conditionally sending user_feedback_diff messages. This led to
inconsistent implementations and made changes difficult to maintain.

This refactoring centralizes the response formatting and messaging logic in the
DiffViewProvider class, which now:
- Stores results from saveChanges() in class properties
- Only sends user_feedback_diff when user edits exist
- Configures XMLBuilder with no indentation for cleaner output

Tool files now make a single method call instead of duplicating logic.

Fixes: #3647
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* fix: conditionally show user edits message in file write response

Make the 'If the user's edits have addressed part of the task...' message
conditional based on whether there are actual user edits. This prevents
showing irrelevant guidance when no user edits were made to the file.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-06-01 09:55:40 -04:00
avtc
ad2ff932fa
Fix handling BOM when user Rejects apply_diff (#3960)
Related issue is #1483, related pull request is #1500 - but it looks like it missed the revert of proposed diff case
2025-05-25 09:14:54 -04:00
Chris Estreich
39cd50b989
Fix linter errors (#3821) 2025-05-21 23:16:43 -07:00
axb
3c73684729
fix: fix diffview scoll display (#3783) 2025-05-21 09:32:17 -04:00
xyOz
ad9c87a04f
Another grey screen fix. (#3644)
Memory memory memory
2025-05-20 22:27:46 -04:00
Chris Estreich
9a358ab0f5
Focus improvements (#3539) 2025-05-13 09:41:03 -07:00
Chris Estreich
72358f2742
Add tests + benchmark for parseAssistantMessage V1 + 2 (#3538) 2025-05-13 08:05:41 -07:00
xyOz
86a03798d5
Greyscreen fix (#3474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-12 22:39:07 -04:00
Chris Estreich
7cea2e8bc4
Move presentAssistantMessage into its own module (#3345) 2025-05-08 11:59:03 -07:00
Matt Rubens
547874eed7
Revert "Fix: Preserve editor state and prevent tab unpinning during diffs" (#2956)
Revert "Fix: Preserve editor state and prevent tab unpinning during diffs (#2…"

This reverts commit c2dd743aeb.
2025-04-25 16:04:38 -04:00
seedlord
c2dd743aeb
Fix: Preserve editor state and prevent tab unpinning during diffs (#2857)
- Maintains editor view column state when closing and reopening files during diff operations, ensuring tabs stay opened in their original position.

- Prevents closing the original editor tab when opening the diff view, preserving pinned status when applying changes via write_to_file or apply_diff.

- Updates VSCode workspace launch flag from -n to -W for compatibility.
2025-04-23 02:45:35 -04:00
Matt Rubens
e5ac33a146
Merge pull request #996 from qdaxb/optimize_diagnostics
Reduce the probability of errors when the model tries to fix the problems
2025-03-09 21:38:03 -04:00
Matt Rubens
585d5aba5a Strip all BOMs 2025-03-08 18:44:03 -05:00
Matt Rubens
4cf7754e65 Strip BOM when applying diffs 2025-03-08 17:50:49 -05:00
axb
fbf65bfc6c Reduce the probability of errors when the model tries to fix the problem due to mismatched line numbers after applying diff 2025-02-15 00:04:17 +08:00
Matt Rubens
2ffb009e6a Speed up diff edits 2025-01-27 02:52:05 -05:00
Matt Rubens
b8e0aa0cde Custom modes 2025-01-21 09:39:54 -05:00
Matt Rubens
60a0a824b9 Prettier backfill 2025-01-17 14:11:28 -05:00
Matt Rubens
5d930981a4 More flexibility for LLMs not being great at this 2024-12-19 09:50:34 -05:00
Matt Rubens
ef9c468f17 Use predicted length as input for detecting omissions 2024-12-19 00:54:06 -05:00
Matt Rubens
8159c51b03 Update omission format and keywords 2024-12-15 15:42:37 -05:00
Matt Rubens
413f10650f Stop appending newlines to files when applying diffs 2024-12-11 12:42:14 -05:00
Matt Rubens
c0b070e6f0
Improvements to apply_diff (#52) 2024-12-08 10:51:40 -05:00
Mark Percival
93e70c62f1
Chore: Prettier for consistant formatting (#794)
* Chore: Pretier for consistant formatting

- TODO: This PR needs to be updated by Saoud after he runs `npm install` & `npm format:fix` and commits the results of the prettier changes.

* Revert prettier config

* Run npm install

* Fix prettier config and ignore package lock

* Run format

---------

Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
2024-11-21 13:13:54 -08:00
Saoud Rizwan
cbf942e700 Return updated file content when user makes edits to cline's suggestions 2024-10-18 07:43:09 -04:00
Saoud Rizwan
364f0921ba Fixes 2024-10-17 06:07:04 -04:00
Saoud Rizwan
717d83b5cb Only show warning if truncation comment is in new content 2024-10-17 06:02:16 -04:00
Saoud Rizwan
0d09897aa6 Fixes 2024-10-17 05:45:07 -04:00
Saoud Rizwan
b33abaa8b5 Detect code omission and show warning with troubleshooting link 2024-10-17 05:31:48 -04:00
Saoud Rizwan
24292759b3 Move cursor to beginning of file during stream animation 2024-10-17 03:46:34 -04:00
Saoud Rizwan
5a94f6434b Fix diff editor not opening on slow machines 2024-10-16 10:02:35 -04:00
Saoud Rizwan
cc4825efc3 Fix issue where cline's edits would stream into active editor instead of diff view editor 2024-10-11 01:22:50 -04:00
Saoud Rizwan
31f5fabc54 Refactor cline-diff 2024-10-09 01:49:59 -04:00
Saoud Rizwan
c04dfc76cb Misc refactor cline 2024-10-09 01:49:59 -04:00
Saoud Rizwan
c2a2e1b54c Add text decorations based edit streaming 2024-10-09 01:49:55 -04:00
Saoud Rizwan
20c1984fb0 Refactor DiffViewProvider 2024-10-09 01:49:55 -04:00
Saoud Rizwan
8b243fa536 Refactor file editing to DiffViewProvider 2024-10-09 01:49:55 -04:00
Saoud Rizwan
912ae07cbc Get write_to_file streaming working 2024-10-09 01:49:54 -04:00